@vidavidorra/create-project 2.0.2 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci-cd.yml +6 -6
- package/README.md +1 -1
- package/dist/content/files.js +2 -1
- package/dist/content/ts-config.d.ts +42 -0
- package/dist/content/ts-config.js +29 -0
- package/dist/scripts/postinstall.d.ts +3 -4
- package/dist/scripts/postinstall.js +2 -2
- package/package.json +13 -13
- package/tsconfig.json +1 -0
- package/.npmrc +0 -1
- package/dist/content/readme/readme.js.map +0 -1
- package/dist/content/readme/readme.test.d.ts +0 -1
- package/dist/content/readme/readme.test.js +0 -35
- package/dist/content/readme/readme.test.js.map +0 -1
|
@@ -8,15 +8,15 @@ on:
|
|
|
8
8
|
pull_request: null
|
|
9
9
|
jobs:
|
|
10
10
|
lint-commit-messages:
|
|
11
|
-
uses: vidavidorra/.github/.github/workflows/lint-commit-messages.yml@
|
|
11
|
+
uses: vidavidorra/.github/.github/workflows/lint-commit-messages.yml@253ae1c7da064c079b5ab8f002983ebdea49ea89 # v4.1.2
|
|
12
12
|
lint:
|
|
13
|
-
uses: vidavidorra/.github/.github/workflows/node-lint.yml@
|
|
13
|
+
uses: vidavidorra/.github/.github/workflows/node-lint.yml@253ae1c7da064c079b5ab8f002983ebdea49ea89 # v4.1.2
|
|
14
14
|
build:
|
|
15
|
-
uses: vidavidorra/.github/.github/workflows/node-build.yml@
|
|
15
|
+
uses: vidavidorra/.github/.github/workflows/node-build.yml@253ae1c7da064c079b5ab8f002983ebdea49ea89 # v4.1.2
|
|
16
16
|
test:
|
|
17
|
-
uses: vidavidorra/.github/.github/workflows/node-test.yml@
|
|
17
|
+
uses: vidavidorra/.github/.github/workflows/node-test.yml@253ae1c7da064c079b5ab8f002983ebdea49ea89 # v4.1.2
|
|
18
18
|
code-coverage:
|
|
19
|
-
uses: vidavidorra/.github/.github/workflows/node-test-coverage.yml@
|
|
19
|
+
uses: vidavidorra/.github/.github/workflows/node-test-coverage.yml@253ae1c7da064c079b5ab8f002983ebdea49ea89 # v4.1.2
|
|
20
20
|
needs:
|
|
21
21
|
- lint
|
|
22
22
|
- build
|
|
@@ -24,7 +24,7 @@ jobs:
|
|
|
24
24
|
secrets:
|
|
25
25
|
codecovToken: ${{ secrets.CODECOV_TOKEN }}
|
|
26
26
|
release:
|
|
27
|
-
uses: vidavidorra/.github/.github/workflows/release.yml@
|
|
27
|
+
uses: vidavidorra/.github/.github/workflows/release.yml@253ae1c7da064c079b5ab8f002983ebdea49ea89 # v4.1.2
|
|
28
28
|
needs:
|
|
29
29
|
- lint-commit-messages
|
|
30
30
|
- lint
|
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ Please refer to the [Security Policy on GitHub](https://github.com/vidavidorra/c
|
|
|
59
59
|
|
|
60
60
|
This project is licensed under the [GPLv3 license](https://www.gnu.org/licenses/gpl.html).
|
|
61
61
|
|
|
62
|
-
Copyright © 2023 Jeroen de Bruijn
|
|
62
|
+
Copyright © 2023-2024 Jeroen de Bruijn
|
|
63
63
|
|
|
64
64
|
<details><summary>License notice</summary>
|
|
65
65
|
<p>
|
package/dist/content/files.js
CHANGED
|
@@ -3,6 +3,7 @@ import { File } from './file.js';
|
|
|
3
3
|
import { LintStaged } from './lint-staged.js';
|
|
4
4
|
import { Package } from './package.js';
|
|
5
5
|
import { Readme } from './readme/index.js';
|
|
6
|
+
import { TsConfig } from './ts-config.js';
|
|
6
7
|
function files(options) {
|
|
7
8
|
return [
|
|
8
9
|
new File('.github/husky/commit-msg', { ...options, mode: 0o755 }),
|
|
@@ -16,7 +17,7 @@ function files(options) {
|
|
|
16
17
|
new File('LICENSE.md', options),
|
|
17
18
|
new Package('package.json', options),
|
|
18
19
|
new Readme('README.md', options),
|
|
19
|
-
new
|
|
20
|
+
new TsConfig('tsconfig.json', options),
|
|
20
21
|
];
|
|
21
22
|
}
|
|
22
23
|
export { files };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type Options } from '../options.js';
|
|
3
|
+
import { File } from './file.js';
|
|
4
|
+
declare const schema: z.ZodObject<{
|
|
5
|
+
compilerOptions: z.ZodObject<{
|
|
6
|
+
allowJs: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
8
|
+
allowJs: z.ZodOptional<z.ZodBoolean>;
|
|
9
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
10
|
+
allowJs: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
12
|
+
include: z.ZodArray<z.ZodString, "many">;
|
|
13
|
+
}, "strict", z.ZodTypeAny, {
|
|
14
|
+
compilerOptions: {
|
|
15
|
+
allowJs?: boolean | undefined;
|
|
16
|
+
} & {
|
|
17
|
+
[k: string]: unknown;
|
|
18
|
+
};
|
|
19
|
+
include: string[];
|
|
20
|
+
}, {
|
|
21
|
+
compilerOptions: {
|
|
22
|
+
allowJs?: boolean | undefined;
|
|
23
|
+
} & {
|
|
24
|
+
[k: string]: unknown;
|
|
25
|
+
};
|
|
26
|
+
include: string[];
|
|
27
|
+
}>;
|
|
28
|
+
type TsConfigJson = z.infer<typeof schema>;
|
|
29
|
+
declare class TsConfig extends File {
|
|
30
|
+
protected readonly _tsConfig: TsConfigJson;
|
|
31
|
+
constructor(path: string, options: Options);
|
|
32
|
+
get tsConfig(): {
|
|
33
|
+
compilerOptions: {
|
|
34
|
+
allowJs?: boolean | undefined;
|
|
35
|
+
} & {
|
|
36
|
+
[k: string]: unknown;
|
|
37
|
+
};
|
|
38
|
+
include: string[];
|
|
39
|
+
};
|
|
40
|
+
process(): this;
|
|
41
|
+
}
|
|
42
|
+
export { TsConfig, type TsConfigJson };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { File } from './file.js';
|
|
3
|
+
const schema = z
|
|
4
|
+
.object({
|
|
5
|
+
compilerOptions: z
|
|
6
|
+
.object({
|
|
7
|
+
allowJs: z.boolean().optional(),
|
|
8
|
+
})
|
|
9
|
+
.passthrough(),
|
|
10
|
+
include: z.array(z.string()).min(1),
|
|
11
|
+
})
|
|
12
|
+
.strict();
|
|
13
|
+
class TsConfig extends File {
|
|
14
|
+
_tsConfig;
|
|
15
|
+
constructor(path, options) {
|
|
16
|
+
super(path, { ...options, format: true });
|
|
17
|
+
this._tsConfig = schema.required().parse(JSON.parse(this._content));
|
|
18
|
+
}
|
|
19
|
+
get tsConfig() {
|
|
20
|
+
return structuredClone(this._tsConfig);
|
|
21
|
+
}
|
|
22
|
+
process() {
|
|
23
|
+
delete this._tsConfig.compilerOptions.allowJs;
|
|
24
|
+
this._content = JSON.stringify(this._tsConfig, undefined, 2);
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export { TsConfig };
|
|
29
|
+
//# sourceMappingURL=ts-config.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export const gitIgnore: string;
|
|
2
|
+
export const npmIgnore: string;
|
|
3
3
|
/**
|
|
4
4
|
* Workaround for [Rename `.gitignore` to `.npmignore` in package if no
|
|
5
5
|
* `.npmignore` found](https://github.com/npm/npm/issues/1862) and ['npm pack'/
|
|
@@ -9,5 +9,4 @@ declare const npmIgnore: string;
|
|
|
9
9
|
* the file to `.npmignore`. This script simply reverts that rename if it has
|
|
10
10
|
* occurred.
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
|
-
export { gitIgnore, npmIgnore, postinstall };
|
|
12
|
+
export function postinstall(): void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
1
|
import fs from 'node:fs';
|
|
3
2
|
import { fileURLToPath } from 'node:url';
|
|
4
3
|
import { argv } from 'node:process';
|
|
5
|
-
import
|
|
4
|
+
import { join, resolve, dirname } from 'node:path';
|
|
5
|
+
const rootPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../');
|
|
6
6
|
const gitIgnore = join(rootPath, '.gitignore');
|
|
7
7
|
const npmIgnore = join(rootPath, '.npmignore');
|
|
8
8
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vidavidorra/create-project",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Interactively create a GitHub project.",
|
|
6
6
|
"homepage": "https://github.com/vidavidorra/create-project#readme",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"build": "tsc",
|
|
32
32
|
"format": "prettier --ignore-path .gitignore --write \"**/*.{vue,css,less,scss,html,htm,json,md,markdown,yml,yaml}\" --log-level warn",
|
|
33
33
|
"format:check": "prettier --ignore-path .gitignore --check \"**/*.{vue,css,less,scss,html,htm,json,md,markdown,yml,yaml}\" --log-level warn",
|
|
34
|
-
"postinstall": "node ./
|
|
34
|
+
"postinstall": "node ./src/scripts/postinstall.js",
|
|
35
35
|
"lint": "npm run format:check && xo",
|
|
36
36
|
"lint:fix": "npm run format && xo --fix",
|
|
37
37
|
"prepare": "husky install .github/husky",
|
|
@@ -195,30 +195,30 @@
|
|
|
195
195
|
]
|
|
196
196
|
},
|
|
197
197
|
"dependencies": {
|
|
198
|
-
"@inquirer/prompts": "3.
|
|
199
|
-
"prettier": "3.
|
|
198
|
+
"@inquirer/prompts": "3.3.0",
|
|
199
|
+
"prettier": "3.1.1",
|
|
200
200
|
"sort-package-json": "2.6.0",
|
|
201
|
-
"typescript": "5.
|
|
201
|
+
"typescript": "5.3.3",
|
|
202
202
|
"validate-npm-package-name": "5.0.0",
|
|
203
203
|
"yaml": "2.3.4",
|
|
204
204
|
"zod": "3.22.4"
|
|
205
205
|
},
|
|
206
206
|
"devDependencies": {
|
|
207
207
|
"@ava/typescript": "4.1.0",
|
|
208
|
-
"@commitlint/cli": "18.
|
|
208
|
+
"@commitlint/cli": "18.4.3",
|
|
209
209
|
"@semantic-release/changelog": "6.0.3",
|
|
210
210
|
"@semantic-release/exec": "6.0.3",
|
|
211
211
|
"@semantic-release/git": "10.0.1",
|
|
212
|
-
"@types/node": "20.
|
|
212
|
+
"@types/node": "20.10.6",
|
|
213
213
|
"@types/prettier": "2.7.3",
|
|
214
|
-
"@types/sinon": "17.0.
|
|
215
|
-
"@types/validate-npm-package-name": "4.0.
|
|
216
|
-
"@vidavidorra/commitlint-config": "
|
|
217
|
-
"ava": "
|
|
214
|
+
"@types/sinon": "17.0.2",
|
|
215
|
+
"@types/validate-npm-package-name": "4.0.2",
|
|
216
|
+
"@vidavidorra/commitlint-config": "6.0.1",
|
|
217
|
+
"ava": "6.0.1",
|
|
218
218
|
"c8": "8.0.1",
|
|
219
219
|
"husky": "8.0.3",
|
|
220
|
-
"lint-staged": "15.0
|
|
221
|
-
"semantic-release": "22.0.
|
|
220
|
+
"lint-staged": "15.2.0",
|
|
221
|
+
"semantic-release": "22.0.12",
|
|
222
222
|
"sinon": "17.0.1",
|
|
223
223
|
"xo": "0.56.0"
|
|
224
224
|
},
|
package/tsconfig.json
CHANGED
package/.npmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
save-exact=true
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"readme.js","sourceRoot":"","sources":["../../../src/content/readme/readme.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import test from 'ava';
|
|
2
|
-
import { options } from '../../_options.test.js';
|
|
3
|
-
import { Readme } from './readme.js';
|
|
4
|
-
const path = '.github/lint-staged.js';
|
|
5
|
-
test('enables the "format" option', (t) => {
|
|
6
|
-
t.true(new Readme(path, options).options.format);
|
|
7
|
-
});
|
|
8
|
-
test('starts with project title, omitted in the table of contents', (t) => {
|
|
9
|
-
const file = new Readme(path, options).process();
|
|
10
|
-
t.is(file.content.split('\n').at(0), `# ${options.project} <!-- omit in toc -->`);
|
|
11
|
-
});
|
|
12
|
-
const includesBadge = test.macro({
|
|
13
|
-
exec(t, include, option, value) {
|
|
14
|
-
const file = new Readme(path, { ...options, [option]: include }).process();
|
|
15
|
-
(include ? t.regex : t.notRegex)(file.content, new RegExp(value));
|
|
16
|
-
},
|
|
17
|
-
title: (_, include, option, value) => [
|
|
18
|
-
`${include ? 'includes' : 'does not include'} "${value}"`,
|
|
19
|
-
`${include ? 'with' : 'without'} "${option}" option`,
|
|
20
|
-
].join(' '),
|
|
21
|
-
});
|
|
22
|
-
test(includesBadge, true, 'public', 'npm version');
|
|
23
|
-
test(includesBadge, false, 'public', 'npm version');
|
|
24
|
-
test(includesBadge, true, 'public', 'npm downloads');
|
|
25
|
-
test(includesBadge, false, 'public', 'npm downloads');
|
|
26
|
-
test(includesBadge, true, 'public', 'Node.js version support');
|
|
27
|
-
test(includesBadge, false, 'public', 'Node.js version support');
|
|
28
|
-
test(includesBadge, true, 'reportCodeCoverage', 'Code coverage');
|
|
29
|
-
test(includesBadge, false, 'reportCodeCoverage', 'Code coverage');
|
|
30
|
-
test('contains a copyright with the current year and author', (t) => {
|
|
31
|
-
const file = new Readme(path, options).process();
|
|
32
|
-
const year = new Date().getFullYear();
|
|
33
|
-
t.regex(file.content, new RegExp(`Copyright © ${year} ${options.author}`));
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=readme.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"readme.test.js","sourceRoot":"","sources":["../../../src/content/readme/readme.test.ts"],"names":[],"mappings":"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"}
|