@zanminkian/tsconfig
Version:
Strict shared tsconfig out-of-box.
31 lines (27 loc) • 837 B
JavaScript
import { resolve } from 'node:path'
import fs from 'node:fs'
import process from 'node:process'
import { Command } from 'commander'
const generatingTsconfigContent = `{
"extends": "@zanminkian/tsconfig",
"include": ["src"],
"exclude": ["**/*.spec.ts"],
"compilerOptions": {
"outDir": "dist"
}
}
`
const program = new Command()
program.name('tsconfig')
program.command('init')
.description('init a tsconfig file')
.option('-t, --to <path>', 'directory that generating to', '.')
.option('-n, --name <filename>', 'tsconfig file name', 'tsconfig.json')
.action(({ to, name }) => {
const fullName = resolve(process.cwd(), to, name)
if (fs.existsSync(fullName))
throw new Error(`${fullName} is already existing!`)
else
fs.writeFileSync(fullName, generatingTsconfigContent)
})
program.parse()