-
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8cc6df5
commit 49b6b6b
Showing
11 changed files
with
228 additions
and
316 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
import { defineDownload } from 'pergel/core' | ||
|
||
export default defineDownload({ | ||
branch: 'main', | ||
folder: { | ||
dir: 'packages/nuxt', | ||
output: 'testttsssst', | ||
}, | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
import { defineDownload } from 'pergel/core' | ||
|
||
export default defineDownload({ | ||
branch: 'main', | ||
folder: { | ||
dir: 'packages/nuxt', | ||
output: 'drizzle3', | ||
}, | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
import { join, resolve } from 'node:path' | ||
import { defineCommand } from 'citty' | ||
import { loadConfig } from 'c12' | ||
import consola from 'consola' | ||
import type { ResolvedPergelConfig } from '../types' | ||
|
||
const logger = consola.create({ | ||
defaults: { | ||
tag: 'pergel:download', | ||
}, | ||
}) | ||
|
||
export default defineCommand({ | ||
meta: { | ||
name: 'Pergel Download', | ||
description: 'Download Nuxt Template', | ||
version: '0.0.1', | ||
}, | ||
args: { | ||
template: { | ||
alias: 't', | ||
description: 'Download file', | ||
}, | ||
}, | ||
async run({ args }) { | ||
const template = args.template as string | ||
|
||
// drizzle or drizzle,drizzle2,drizzle3 | ||
const files = template.includes(',') ? template.split(',') : [template] | ||
|
||
const file = await loadConfig<ResolvedPergelConfig>({ | ||
cwd: process.cwd(), | ||
configFile: 'pergel.config.ts', | ||
defaultConfig: { | ||
src: 'pergel', | ||
templateDir: 'pergel/templates', | ||
}, | ||
}) | ||
|
||
if (!file.config) { | ||
logger.error('No config file found') | ||
return | ||
} | ||
|
||
const templateDir = resolve(file.config.templateDir) | ||
|
||
if (!template) { | ||
logger.error('No template provided') | ||
return | ||
} | ||
|
||
for (const file of files) { | ||
try { | ||
await import(join(templateDir, `${file}.mjs`)) | ||
.then(m => m.default) | ||
.catch((error) => { | ||
logger.error(`Error loading template ${file}:`, error) | ||
}) as (options: { | ||
cwd: string | ||
}) => void | ||
} | ||
catch (error) { | ||
logger.error(`Error loading template ${file}:`, error) | ||
} | ||
} | ||
}, | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,72 @@ | ||
import type { PergelConfig } from './types' | ||
import { copyFileSync, rmSync } from 'node:fs' | ||
import { join, resolve } from 'node:path' | ||
import { downloadTemplate } from 'giget' | ||
import { defu } from 'defu' | ||
import { consola } from 'consola' | ||
import type { DefineDownloadOptions, PergelConfig } from './types' | ||
|
||
const logger = consola.create({ | ||
defaults: { | ||
tag: 'pergel:download', | ||
}, | ||
}) | ||
|
||
export function definePergel(config: PergelConfig) { | ||
return config | ||
} | ||
|
||
export function defineDownload(options: DefineDownloadOptions) { | ||
async function setup(data: { | ||
cwd: string | ||
}) { | ||
const { cwd } = data | ||
const githubRepo = 'github:oku-ui/pergel' | ||
|
||
options = defu(options, { | ||
file: { | ||
tempOutput: '.tempPergel', | ||
}, | ||
branch: 'main', | ||
}) as DefineDownloadOptions | ||
|
||
if (options.file?.dir) { | ||
const { source, dir } = await downloadTemplate(join(githubRepo, `${options.file.dir}#${options.branch}`), { | ||
dir: options.file.tempOutput, | ||
cwd, | ||
force: true, | ||
}) | ||
|
||
const output = join(cwd, options.file.output) | ||
|
||
const arrayFile = Array.isArray(options.file.file) ? options.file.file : [options.file.file] | ||
|
||
for (const file of arrayFile) { | ||
copyFileSync( | ||
join(dir, file), | ||
resolve(output), | ||
) | ||
} | ||
|
||
rmSync(dir, { | ||
recursive: true, | ||
force: true, | ||
retryDelay: 100, | ||
}) | ||
|
||
logger.success(`Downloaded template file: ${output}`) | ||
|
||
return { source, dir } | ||
} | ||
if (options.folder) { | ||
const { source, dir } = await downloadTemplate(join(githubRepo, `${options.folder.dir}#${options.branch}`), { | ||
dir: options.folder.output, | ||
cwd, | ||
force: true, | ||
}) | ||
|
||
logger.success(`Downloaded template folder: ${dir}`) | ||
return { source, dir } | ||
} | ||
} | ||
return setup | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.