@checkdigit/typescript-config 3.3.0-PR.30-f96e → 3.3.0-PR.30-f430
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 +30 -4
- package/package.json +1 -1
- package/src/builder/builder.mts +32 -4
package/bin/builder.mjs
CHANGED
|
@@ -20,7 +20,24 @@ async function getFiles(directory) {
|
|
|
20
20
|
);
|
|
21
21
|
return files.flat();
|
|
22
22
|
}
|
|
23
|
-
function
|
|
23
|
+
function excludeSourceMaps(filter) {
|
|
24
|
+
return (pluginBuild) => {
|
|
25
|
+
pluginBuild.onLoad({ filter }, async (args) => {
|
|
26
|
+
if (args.path.endsWith(".js") || args.path.endsWith(".mjs") || args.path.endsWith(".cjs")) {
|
|
27
|
+
return {
|
|
28
|
+
contents: `${await fs.readFile(
|
|
29
|
+
args.path,
|
|
30
|
+
"utf8"
|
|
31
|
+
)}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIiJdLCJtYXBwaW5ncyI6IkEifQ==`,
|
|
33
|
+
loader: "default"
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return void 0;
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function resolveTypescriptPaths(type2) {
|
|
24
41
|
const extension = type2 === "module" ? "mjs" : "cjs";
|
|
25
42
|
return (pluginBuild) => {
|
|
26
43
|
pluginBuild.onResolve({ filter: /.*/u }, async (resolved) => {
|
|
@@ -118,11 +135,20 @@ async function builder_default({
|
|
|
118
135
|
outExtension: { ".js": type2 === "module" ? ".mjs" : ".cjs" },
|
|
119
136
|
plugins: [
|
|
120
137
|
{
|
|
121
|
-
name: "resolve-
|
|
122
|
-
setup:
|
|
138
|
+
name: "resolve-typescript-paths",
|
|
139
|
+
setup: resolveTypescriptPaths(type2)
|
|
123
140
|
}
|
|
124
141
|
]
|
|
125
|
-
} : {
|
|
142
|
+
} : {
|
|
143
|
+
outfile: path.join(outDir2, outFile2),
|
|
144
|
+
external: external2,
|
|
145
|
+
plugins: [
|
|
146
|
+
{
|
|
147
|
+
name: "exclude-source-maps",
|
|
148
|
+
setup: excludeSourceMaps(/node_modules/u)
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
126
152
|
});
|
|
127
153
|
messages2.push(...buildResult.errors.map((error) => `esbuild error: ${error.text}`));
|
|
128
154
|
messages2.push(...buildResult.warnings.map((warning) => `esbuild warning: ${warning.text}`));
|
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-f430","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.19","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 --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 --minify","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 --minify","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.1","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
|
@@ -61,9 +61,28 @@ async function getFiles(directory: string): Promise<string[]> {
|
|
|
61
61
|
return files.flat();
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
function
|
|
64
|
+
function excludeSourceMaps(filter: RegExp) {
|
|
65
|
+
return (pluginBuild: PluginBuild) => {
|
|
66
|
+
// ignore source maps for any Javascript file that matches filter
|
|
67
|
+
pluginBuild.onLoad({ filter }, async (args) => {
|
|
68
|
+
if (args.path.endsWith('.js') || args.path.endsWith('.mjs') || args.path.endsWith('.cjs')) {
|
|
69
|
+
return {
|
|
70
|
+
contents: `${await fs.readFile(
|
|
71
|
+
args.path,
|
|
72
|
+
'utf8'
|
|
73
|
+
)}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIiJdLCJtYXBwaW5ncyI6IkEifQ==`,
|
|
74
|
+
loader: 'default',
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return undefined;
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function resolveTypescriptPaths(type: 'module' | 'commonjs') {
|
|
65
83
|
const extension = type === 'module' ? 'mjs' : 'cjs';
|
|
66
84
|
return (pluginBuild: PluginBuild) => {
|
|
85
|
+
// rewrite paths based on standard node resolution
|
|
67
86
|
pluginBuild.onResolve({ filter: /.*/u }, async (resolved) => {
|
|
68
87
|
if (resolved.kind === 'entry-point' || !resolved.path.startsWith('.') || resolved.path.endsWith('.js')) {
|
|
69
88
|
return { external: resolved.kind !== 'entry-point' };
|
|
@@ -175,12 +194,21 @@ export default async function ({
|
|
|
175
194
|
outExtension: { '.js': type === 'module' ? '.mjs' : '.cjs' },
|
|
176
195
|
plugins: [
|
|
177
196
|
{
|
|
178
|
-
name: 'resolve-
|
|
179
|
-
setup:
|
|
197
|
+
name: 'resolve-typescript-paths',
|
|
198
|
+
setup: resolveTypescriptPaths(type),
|
|
180
199
|
},
|
|
181
200
|
],
|
|
182
201
|
}
|
|
183
|
-
: {
|
|
202
|
+
: {
|
|
203
|
+
outfile: path.join(outDir, outFile),
|
|
204
|
+
external,
|
|
205
|
+
plugins: [
|
|
206
|
+
{
|
|
207
|
+
name: 'exclude-source-maps',
|
|
208
|
+
setup: excludeSourceMaps(/node_modules/u),
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
}),
|
|
184
212
|
});
|
|
185
213
|
|
|
186
214
|
messages.push(...buildResult.errors.map((error) => `esbuild error: ${error.text}`));
|