diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..bba6ddf --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: wessberg +patreon: wessberg diff --git a/package.json b/package.json index f4bcb18..4d02ba4 100644 --- a/package.json +++ b/package.json @@ -11,12 +11,8 @@ "description": "A virtual Open Source project maintainer", "scripts": { "generate:changelog": "standard-changelog --first-release", - "generate:readme": "bin/scaffold readme --yes", - "generate:license": "bin/scaffold license --yes", - "generate:contributing": "bin/scaffold contributing --yes", - "generate:coc": "bin/scaffold coc --yes", - "generate:funding": "bin/scaffold funding --yes", - "generate:all": "npm run generate:license && npm run generate:contributing && npm run generate:coc && npm run generate:readme && npm run generate:changelog", + "generate:scaffold": "bin/scaffold all --yes", + "generate:all": "npm run generate:scaffold && npm run generate:changelog", "clean:dist": "rm -rf dist", "clean:compiled": "rm -rf compiled", "clean": "npm run clean:dist && npm run clean:compiled", @@ -51,27 +47,27 @@ "@types/json5": "0.0.30", "@types/prettier": "1.18.3", "@types/yaml": "1.2.0", - "chalk": "2.4.2", - "commander": "3.0.2", + "chalk": "3.0.0", + "commander": "4.0.0", "eslint": "6.6.0", "inquirer": "7.0.0", "json5": "2.1.1", "yaml": "1.7.2", "markdown-toc": "1.2.0", - "prettier": "1.18.2", - "tslint": "5.20.0" + "prettier": "1.19.1", + "tslint": "5.20.1" }, "devDependencies": { - "@wessberg/rollup-plugin-ts": "1.1.73", + "@wessberg/rollup-plugin-ts": "1.1.74", "@wessberg/ts-config": "0.0.42", "ava": "2.4.0", "husky": "3.0.9", "magic-string": "^0.25.4", - "np": "5.1.2", - "pretty-quick": "2.0.0", - "rollup": "1.26.0", + "np": "5.1.3", + "pretty-quick": "2.0.1", + "rollup": "1.26.4", "standard-changelog": "2.0.15", - "typescript": "3.6.4" + "typescript": "3.7.2" }, "main": "./dist/index.js", "module": "./dist/index.js", diff --git a/rollup.config.js b/rollup.config.js index bb04743..8df94f3 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -18,8 +18,7 @@ export default { treeshake: true, plugins: [ ts({ - tsconfig: process.env.NODE_ENV === "production" ? "tsconfig.dist.json" : "tsconfig.json", - debug: true + tsconfig: process.env.NODE_ENV === "production" ? "tsconfig.dist.json" : "tsconfig.json" }) ], external: [...Object.keys(packageJSON.dependencies), ...Object.keys(packageJSON.devDependencies), ...builtinModules] diff --git a/src/cli/command/finalize-commands/finalize-commands.ts b/src/cli/command/finalize-commands/finalize-commands.ts index 2a5be42..c96eead 100644 --- a/src/cli/command/finalize-commands/finalize-commands.ts +++ b/src/cli/command/finalize-commands/finalize-commands.ts @@ -1,10 +1,12 @@ import commander from "commander"; commander.parse(process.argv); - -// Show help if no arguments are given -if (commander.args.length === 0) { - commander.help(text => { - return `Welcome to Scaffold!\n\n` + text; - }); +const lastArgv = process.argv.slice(-1)[0]; +if (lastArgv.endsWith("scaffold")) { + // Show help if no arguments are given + if (commander.args.length === 0) { + commander.help(text => { + return `Welcome to Scaffold!\n\n` + text; + }); + } } diff --git a/src/cli/command/shared/shared-options.ts b/src/cli/command/shared/shared-options.ts index 1fa3b90..9d004fa 100644 --- a/src/cli/command/shared/shared-options.ts +++ b/src/cli/command/shared/shared-options.ts @@ -1,27 +1,27 @@ export const SHARED_OPTIONS = { config: { shortHand: "c", - type: "string" as "string", + type: "string", description: "An (optional) path to the scaffold config to use" }, debug: { shortHand: "d", - type: "boolean" as "boolean", + type: "boolean", description: "Whether to print debug information" }, verbose: { shortHand: "v", - type: "boolean" as "boolean", + type: "boolean", description: "Whether to print verbose information" }, silent: { shortHand: "s", - type: "boolean" as "boolean", + type: "boolean", description: "Whether to not print anything" }, yes: { shortHand: "y", - type: "boolean" as "boolean", + type: "boolean", description: "Whether or not to auto-select 'yes' for all prompts" } -}; +} as const; diff --git a/src/cli/task/generate-task-options/sanitized-shared-options.ts b/src/cli/task/generate-task-options/sanitized-shared-options.ts index 0fe8df0..4a18545 100644 --- a/src/cli/task/generate-task-options/sanitized-shared-options.ts +++ b/src/cli/task/generate-task-options/sanitized-shared-options.ts @@ -1,6 +1,9 @@ import {SHARED_OPTIONS} from "../../command/shared/shared-options"; -export type SanitizedSharedOptions = { - // @ts-ignore - [Key in keyof T]: T[Key]["type"] extends "boolean" ? boolean : T[Key]["type"] extends "number" ? number : string; +export type SanitizedSharedOptions = { + [Key in keyof typeof SHARED_OPTIONS]: typeof SHARED_OPTIONS[Key]["type"] extends "boolean" + ? boolean + : typeof SHARED_OPTIONS[Key]["type"] extends "number" + ? number + : string; }; diff --git a/src/cli/task/generate-task-options/select-log-level/select-log-level-options.ts b/src/cli/task/generate-task-options/select-log-level/select-log-level-options.ts index f299082..5eb3f62 100644 --- a/src/cli/task/generate-task-options/select-log-level/select-log-level-options.ts +++ b/src/cli/task/generate-task-options/select-log-level/select-log-level-options.ts @@ -1,9 +1,3 @@ -import {SHARED_OPTIONS} from "../../../command/shared/shared-options"; import {SanitizedSharedOptions} from "../sanitized-shared-options"; -export type SelectLogLevelOptions< - T = Pick< - typeof SHARED_OPTIONS, - {[Key in keyof typeof SHARED_OPTIONS]: (typeof SHARED_OPTIONS[Key]["type"] extends "boolean" ? Key : never)}[keyof typeof SHARED_OPTIONS] - > -> = SanitizedSharedOptions; +export type SelectLogLevelOptions = SanitizedSharedOptions;