Skip to content

Commit ab747f5

Browse files
committed
refactor: adjust cmd
Signed-off-by: Vitor Hugo Salgado <vsalgadopb@gmail.com>
1 parent a7a687d commit ab747f5

File tree

3 files changed

+32
-12
lines changed

3 files changed

+32
-12
lines changed

cmd/create-nodejs-ts/index.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ import { fileURLToPath } from 'url'
77
const __dirname = dirname(fileURLToPath(import.meta.url))
88

99
const paramOr = (map, arg, def) => map.get(arg) || def
10+
const valueOr = (value, def) => value || def
1011
const makePath = (...p) => Path.join(...p)
1112
const ignoreContent =
1213
(...values) =>
1314
source =>
1415
!values.some(x => source === x)
1516

16-
const Ignores = [
17+
const FilesToIgnore = [
1718
'.git',
1819
'.idea',
1920
'.vscode',
@@ -38,13 +39,13 @@ const Ignores = [
3839
'CODE_OF_CONDUCT.md',
3940
'LICENSE',
4041
'README.md',
41-
'Makefile',
4242
'package.json',
4343
'package-lock.json',
4444
'yarn.lock',
45+
'tsconfig.build.tsbuildinfo',
4546
]
4647

47-
const NoDeps = ['fs-extra', 'standard-release']
48+
const DepsToIgnore = ['fs-extra', '@types/fs-extra', 'standard-release']
4849

4950
const Templates = [
5051
{ file: 'ci.yml', copyTo: '.github/workflows/ci.yml' },
@@ -54,13 +55,13 @@ const Templates = [
5455
{ file: '.dockerignore.root', copyTo: '.dockerignore' },
5556
]
5657

57-
const PkgFieldsToKeep = ['scripts', 'dependencies', 'devDependencies']
58+
const PkgFieldsToKeep = ['type', 'main', 'types', 'scripts', 'dependencies', 'devDependencies']
5859

5960
function main() {
6061
console.log('NodeJS Starter Kit - Bootstrapping New Project')
6162

6263
const argv = process.argv.slice(2)
63-
const argMap = new Map()
64+
const args = new Map()
6465

6566
for (let i = 0; i < argv.length; i++) {
6667
const arg = argv[i]
@@ -70,18 +71,18 @@ function main() {
7071
const key = match[1]
7172
const value = match[2]
7273

73-
argMap.set(key, value)
74+
args.set(key, value)
7475
} else if (/^--.+/.test(arg)) {
7576
const key = arg.match(/^--(.+)/)[1]
7677
const next = argv[i + 1]
7778

78-
argMap.set(key, next)
79+
args.set(key, next)
7980
}
8081
}
8182

8283
const source = makePath(__dirname, '../..')
83-
const dest = paramOr(argMap, 'destination', process.cwd()).trim()
84-
const app = paramOr(argMap, 'app', 'my-app').trim()
84+
const dest = valueOr(argv[0], process.cwd()).trim()
85+
const app = paramOr(args, 'name', 'my-app').trim()
8586
const destination = makePath(dest, app)
8687

8788
console.log(
@@ -94,7 +95,7 @@ App: ${app}
9495

9596
console.log('Copying Project Files ...')
9697

97-
FsExt.copySync(source, destination, { filter: ignoreContent(...Ignores.map(x => makePath(source, x))) })
98+
FsExt.copySync(source, destination, { filter: ignoreContent(...FilesToIgnore.map(x => makePath(source, x))) })
9899

99100
console.log('Copying Templates ...')
100101

@@ -105,7 +106,6 @@ App: ${app}
105106
const pkg = FsExt.readJsonSync(makePath(source, 'package.json'))
106107
const newPkg = {
107108
name: app,
108-
main: 'dist/main.js',
109109
}
110110

111111
PkgFieldsToKeep.forEach(field => {
@@ -114,7 +114,7 @@ App: ${app}
114114
}
115115
})
116116

117-
NoDeps.forEach(dep => {
117+
DepsToIgnore.forEach(dep => {
118118
if (pkg.dependencies[dep]) {
119119
delete pkg.dependencies[dep]
120120
}

package-lock.json

+19
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"@commitlint/config-conventional": "^16.2.1",
5555
"@jest/globals": "^27.5.1",
5656
"@jest/types": "^27.5.1",
57+
"@types/fs-extra": "^9.0.13",
5758
"@types/jest": "^27.4.1",
5859
"@types/node": "^17.0.23",
5960
"@types/supertest": "^2.0.12",

0 commit comments

Comments
 (0)