fix: template config from CLI

This commit is contained in:
2024-10-26 23:57:03 +03:00
committed by Chen Asraf
parent 78d6bf186d
commit 41f4ca52f1
4 changed files with 749 additions and 4 deletions

18
eslint.config.mjs Normal file
View File

@@ -0,0 +1,18 @@
import eslint from '@eslint/js'
import tseslint from 'typescript-eslint'
export default [
...tseslint.config(eslint.configs.recommended, ...tseslint.configs.recommended),
{
rules: {
'no-unused-vars': ['warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }],
'@typescript-eslint/no-unused-vars': [
'warn',
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
],
},
},
{
ignores: ['node_modules/', 'build/', 'dist/', 'gen/'],
},
]

View File

@@ -45,6 +45,7 @@
"massarg": "2.0.1"
},
"devDependencies": {
"@eslint/js": "^9.13.0",
"@types/jest": "^29.5.13",
"@types/mock-fs": "^4.13.4",
"@types/node": "^22.5.5",
@@ -53,6 +54,7 @@
"rimraf": "^6.0.1",
"ts-jest": "^29.2.5",
"ts-node": "^10.9.2",
"typescript": "^5.6.2"
"typescript": "^5.6.2",
"typescript-eslint": "^8.11.0"
}
}

725
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -39,7 +39,7 @@ export function getOptionValueForFile<T>(
/** @internal */
export function parseAppendData(value: string, options: ScaffoldCmdConfig): unknown {
const data = options.data ?? {}
const [key, val] = value.split(/\:?=/)
const [key, val] = value.split(/:?=/)
// raw
if (value.includes(":=") && !val.includes(":=")) {
return { ...data, [key]: JSON.parse(val) }
@@ -83,7 +83,7 @@ export async function getConfigFile(config: ScaffoldCmdConfig): Promise<Scaffold
export async function parseConfigFile(config: ScaffoldCmdConfig): Promise<ScaffoldConfig> {
let output: ScaffoldConfig = {
name: config.name,
templates: [],
templates: config.templates ?? [],
output: config.output,
logLevel: config.logLevel,
dryRun: config.dryRun,
@@ -212,7 +212,7 @@ function wrapBeforeWrite(
const rawTmpPath = tmpDir.replace(ext, ".raw" + ext)
try {
log(config, LogLevel.debug, "Parsing beforeWrite command", beforeWrite)
let cmd = await prepareBeforeWriteCmd({ beforeWrite, tmpDir, content, rawTmpPath, rawContent })
const cmd = await prepareBeforeWriteCmd({ beforeWrite, tmpDir, content, rawTmpPath, rawContent })
const result = await new Promise<string | undefined>((resolve, reject) => {
log(config, LogLevel.debug, "Running parsed beforeWrite command:", cmd)
const proc = exec(cmd)