@checkdigit/typescript-config 3.3.0-PR.30-dfde → 3.3.0-PR.30-c398
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/bin/builder.mjs +16 -10
- package/package.json +1 -1
- package/src/builder/builder.mts +3 -3
- package/src/builder/index.mts +7 -1
package/bin/builder.mjs
CHANGED
|
@@ -41,19 +41,19 @@ function setup(type2) {
|
|
|
41
41
|
}
|
|
42
42
|
async function builder_default({
|
|
43
43
|
type: type2,
|
|
44
|
-
entryPoint,
|
|
44
|
+
entryPoint: entryPoint2,
|
|
45
45
|
inDir: inDir2,
|
|
46
46
|
outDir: outDir2,
|
|
47
|
-
outFile,
|
|
48
|
-
external = []
|
|
47
|
+
outFile: outFile2,
|
|
48
|
+
external: external2 = []
|
|
49
49
|
}) {
|
|
50
50
|
const messages2 = [];
|
|
51
51
|
assert.ok(
|
|
52
|
-
|
|
52
|
+
entryPoint2 === void 0 && outFile2 === void 0 || entryPoint2 !== void 0 && outFile2 !== void 0,
|
|
53
53
|
"entryPoint and outFile must both be provided"
|
|
54
54
|
);
|
|
55
55
|
const allSourceFiles = await getFiles(inDir2);
|
|
56
|
-
const productionSourceFiles =
|
|
56
|
+
const productionSourceFiles = entryPoint2 === void 0 ? allSourceFiles.filter((file) => file.endsWith(".ts")) : [path.join(inDir2, entryPoint2)];
|
|
57
57
|
const program = typescript.createProgram(productionSourceFiles, {
|
|
58
58
|
module: typescript.ModuleKind.ESNext,
|
|
59
59
|
moduleResolution: typescript.ModuleResolutionKind.Bundler,
|
|
@@ -111,7 +111,7 @@ async function builder_default({
|
|
|
111
111
|
format: type2 === "module" ? "esm" : "cjs",
|
|
112
112
|
sourcemap: "inline",
|
|
113
113
|
sourcesContent: false,
|
|
114
|
-
...
|
|
114
|
+
...outFile2 === void 0 ? {
|
|
115
115
|
outdir: outDir2,
|
|
116
116
|
outExtension: { ".js": type2 === "module" ? ".mjs" : ".cjs" },
|
|
117
117
|
plugins: [
|
|
@@ -120,7 +120,7 @@ async function builder_default({
|
|
|
120
120
|
setup: setup(type2)
|
|
121
121
|
}
|
|
122
122
|
]
|
|
123
|
-
} : { outfile: path.join(outDir2,
|
|
123
|
+
} : { outfile: path.join(outDir2, outFile2), external: external2 }
|
|
124
124
|
});
|
|
125
125
|
messages2.push(...buildResult.errors.map((error) => `esbuild error: ${error.text}`));
|
|
126
126
|
messages2.push(...buildResult.warnings.map((warning) => `esbuild warning: ${warning.text}`));
|
|
@@ -132,12 +132,15 @@ async function builder_default({
|
|
|
132
132
|
|
|
133
133
|
// src/builder/index.mts
|
|
134
134
|
var {
|
|
135
|
-
values: { type, inDir, outDir }
|
|
135
|
+
values: { type, inDir, outDir, entryPoint, outFile, external }
|
|
136
136
|
} = parseArgs({
|
|
137
137
|
options: {
|
|
138
138
|
type: { type: "string", short: "t", default: "module" },
|
|
139
139
|
inDir: { type: "string", short: "i", default: "src" },
|
|
140
|
-
outDir: { type: "string", short: "o", default: "build" }
|
|
140
|
+
outDir: { type: "string", short: "o", default: "build" },
|
|
141
|
+
entryPoint: { type: "string", short: "e", default: void 0 },
|
|
142
|
+
outFile: { type: "string", short: "f", default: void 0 },
|
|
143
|
+
external: { type: "string", short: "x", multiple: true, default: [] }
|
|
141
144
|
}
|
|
142
145
|
});
|
|
143
146
|
assert2.ok(type === "module" || type === "commonjs", "type must be module or commonjs");
|
|
@@ -146,7 +149,10 @@ assert2.ok(outDir !== void 0, "outDir is required");
|
|
|
146
149
|
var messages = await builder_default({
|
|
147
150
|
type,
|
|
148
151
|
inDir: path2.join(process.cwd(), inDir),
|
|
149
|
-
outDir: path2.join(process.cwd(), outDir)
|
|
152
|
+
outDir: path2.join(process.cwd(), outDir),
|
|
153
|
+
entryPoint,
|
|
154
|
+
outFile,
|
|
155
|
+
external
|
|
150
156
|
});
|
|
151
157
|
if (messages.length > 0) {
|
|
152
158
|
console.warn(JSON.stringify(messages, void 0, 2));
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@checkdigit/typescript-config","version":"3.3.0-PR.30-
|
|
1
|
+
{"name":"@checkdigit/typescript-config","version":"3.3.0-PR.30-c398","description":"Check Digit standard Typescript configuration","prettier":"@checkdigit/prettier-config","engines":{"node":">=16"},"bin":{"builder":"./bin/builder.mjs"},"peerDependencies":{"@types/node":">=16","esbuild":"0.17.18","typescript":">=5.0.4 <5.1"},"repository":{"type":"git","url":"git+https://github.com/checkdigit/typescript-config.git"},"author":"Check Digit, LLC","license":"MIT","bugs":{"url":"https://github.com/checkdigit/typescript-config/issues"},"homepage":"https://github.com/checkdigit/typescript-config#readme","scripts":{"preversion":"npm test","postversion":"git push && git push --tags","prepare":"npm run build-builder","lint:fix":"eslint -f unix --ext .ts,.mts src --fix","lint":"eslint -f unix --ext .ts,.mts src","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style","build-builder":"esbuild src/builder/index.mts --bundle --platform=node --format=esm --external:typescript --external:esbuild --outfile=build-builder/builder.mjs && mkdir -p bin && { echo '#!/usr/bin/env node'; cat build-builder/builder.mjs; } > bin/builder.mjs && chmod +x bin/builder.mjs","build-cjs":"rimraf build-cjs && npx builder --outDir=build-cjs --type=commonjs --outDir=build-cjs","build-cjs-bundle":"rimraf build-cjs-bundle && npx builder --type=commonjs --entryPoint=test/index.test.ts --outDir=build-cjs-bundle --outFile=test/index.test.cjs","build-cjs-bundle-no-external":"rimraf build-cjs-bundle-no-external && npx builder --type=commonjs --external=./node_modules/* --entryPoint=test/index.test.ts --outDir=build-cjs-bundle-no-external --outFile=test/index.test.cjs","build-esm":"rimraf build-esm && npx builder --type=module --outDir=build-esm","build-esm-bundle":"rimraf build-esm-bundle && npx builder --type=module --outDir=build-esm-bundle --entryPoint=test/index.test.ts --outFile=test/index.test.mjs","build-esm-bundle-no-external":"rimraf build-esm-bundle-no-external && npx builder --type=module --external=./node_modules/* --outDir=build-esm-bundle-no-external --entryPoint=test/index.test.ts --outFile=test/index.test.mjs","test-jest-esm":"NODE_OPTIONS=\"--experimental-vm-modules\" jest --coverage=false src/*.mts src/*/*.mts src/*/*/*.mts","test-jest-cjs":"jest --coverage=false src/*.ts src/*/*.ts src/*/*/*.ts","test-cjs":"node --test build-cjs/test/index.test.cjs","test-cjs-bundle":"node --test build-cjs-bundle/test/index.test.cjs","test-cjs-bundle-no-external":"node --test build-cjs-bundle-no-external/test/index.test.cjs","test-esm":"node --test build-esm/test/index.test.mjs","test-esm-bundle":"echo \"node --test build-esm-bundle/test/index.test.mjs\"","test-esm-bundle-no-external":"node --test build-esm-bundle-no-external/test/index.test.mjs","ci:test":"npm run test-jest-cjs && npm run test-jest-esm && npm run test-cjs && npm run test-cjs-bundle && npm run test-cjs-bundle-no-external && npm run test-esm && npm run test-esm-bundle && npm run test-esm-bundle-no-external","ci:compile":"npm run build-builder && npm run build-cjs && npm run build-cjs-bundle && npm run build-cjs-bundle-no-external && npm run build-esm && npm run build-esm-bundle && npm run build-esm-bundle-no-external","ci:lint":"npm run lint","ci:style":"npm run prettier"},"devDependencies":{"@checkdigit/prettier-config":"^3.4.0","@types/debug":"^4.1.7","@types/jest":"^29.5.1","@types/uuid":"^9.0.1","@typescript-eslint/eslint-plugin":"^5.59.6","@typescript-eslint/parser":"^5.59.6","debug":"^4.3.4","eslint":"^8.40.0","eslint-config-prettier":"^8.8.0","get-port":"^6.1.2","got":"^11.8.6","jest":"^29.5.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","uuid":"^9.0.0"},"eslintConfig":{"parser":"@typescript-eslint/parser","plugins":["@typescript-eslint"],"parserOptions":{"project":"./tsconfig.json"},"extends":["eslint:all","plugin:@typescript-eslint/recommended","plugin:@typescript-eslint/recommended-requiring-type-checking","plugin:@typescript-eslint/strict","prettier"],"rules":{"@typescript-eslint/non-nullable-type-assertion-style":"error","capitalized-comments":"off","one-var":"off","sort-keys":"off","sort-imports":"off","func-style":["error","declaration",{"allowArrowFunctions":true}],"no-magic-numbers":["error",{"ignore":[0,1,2]}],"no-undefined":"off","no-ternary":"off"},"overrides":[{"files":["*.spec.mts","*.test.mts","*.spec.ts","*.test.ts"],"rules":{"@typescript-eslint/non-nullable-type-assertion-style":"off","@typescript-eslint/ban-types":"off","@typescript-eslint/require-await":"off","@typescript-eslint/consistent-type-definitions":"off","@typescript-eslint/ban-ts-comment":"off","@typescript-eslint/no-unnecessary-condition":"off","@typescript-eslint/consistent-indexed-object-style":"off","@typescript-eslint/no-unused-vars":"off","@typescript-eslint/no-unsafe-member-access":"off","line-comment-position":"off","no-inline-comments":"off","no-param-reassign":"off","id-length":"off","no-magic-numbers":"off","func-names":"off","no-duplicate-imports":"off","symbol-description":"off","no-invalid-this":"off","max-lines-per-function":"off","max-lines":"off","max-statements":"off","no-await-in-loop":"off"}}]},"jest":{"moduleFileExtensions":["js","mjs","cjs","ts","mts","json","node"],"extensionsToTreatAsEsm":[".mts"],"transform":{"^.+\\.mts$":["ts-jest",{"isolatedModules":true,"diagnostics":false,"useESM":true}],"^.+\\.ts$":["ts-jest",{"isolatedModules":true,"diagnostics":false,"useESM":false}]},"collectCoverageFrom":["<rootDir>/src/**","!<rootDir>/src/**/*.spec.mts","!<rootDir>/src/**/*.test.mts","!<rootDir>/src/**/*.spec.ts","!<rootDir>/src/**/*.test.ts"],"testMatch":["<rootDir>/src/**/*.spec.ts","<rootDir>/src/**/*.spec.mts"]},"files":["tsconfig.json","SECURITY.md","/src/"]}
|
package/src/builder/builder.mts
CHANGED
|
@@ -17,7 +17,7 @@ export interface BuilderOptions {
|
|
|
17
17
|
* the entry point for the bundle, relative to the inDir. if not provided, the files in the inDir will be processed
|
|
18
18
|
* as individual unbundled files
|
|
19
19
|
*/
|
|
20
|
-
entryPoint?: string;
|
|
20
|
+
entryPoint?: string | undefined;
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* source code
|
|
@@ -32,12 +32,12 @@ export interface BuilderOptions {
|
|
|
32
32
|
/**
|
|
33
33
|
* build file, relative to the outDir
|
|
34
34
|
*/
|
|
35
|
-
outFile?: string;
|
|
35
|
+
outFile?: string | undefined;
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* external modules to exclude from the bundle
|
|
39
39
|
*/
|
|
40
|
-
external?: string[];
|
|
40
|
+
external?: string[] | undefined;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
/**
|
package/src/builder/index.mts
CHANGED
|
@@ -9,12 +9,15 @@ import { parseArgs } from 'node:util';
|
|
|
9
9
|
import builder from './builder.mts';
|
|
10
10
|
|
|
11
11
|
const {
|
|
12
|
-
values: { type, inDir, outDir },
|
|
12
|
+
values: { type, inDir, outDir, entryPoint, outFile, external },
|
|
13
13
|
} = parseArgs({
|
|
14
14
|
options: {
|
|
15
15
|
type: { type: 'string', short: 't', default: 'module' },
|
|
16
16
|
inDir: { type: 'string', short: 'i', default: 'src' },
|
|
17
17
|
outDir: { type: 'string', short: 'o', default: 'build' },
|
|
18
|
+
entryPoint: { type: 'string', short: 'e', default: undefined },
|
|
19
|
+
outFile: { type: 'string', short: 'f', default: undefined },
|
|
20
|
+
external: { type: 'string', short: 'x', multiple: true, default: [] },
|
|
18
21
|
},
|
|
19
22
|
});
|
|
20
23
|
|
|
@@ -26,6 +29,9 @@ const messages = await builder({
|
|
|
26
29
|
type,
|
|
27
30
|
inDir: path.join(process.cwd(), inDir),
|
|
28
31
|
outDir: path.join(process.cwd(), outDir),
|
|
32
|
+
entryPoint,
|
|
33
|
+
outFile,
|
|
34
|
+
external,
|
|
29
35
|
});
|
|
30
36
|
if (messages.length > 0) {
|
|
31
37
|
// eslint-disable-next-line no-console
|