@checkdigit/typescript-config 10.1.1-PR.92-fcbe → 10.1.1-PR.92-d314
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 +37 -6
- package/dist-mjs/compile.mjs +38 -7
- package/package.json +1 -1
- package/src/compile.ts +56 -5
package/bin/builder.mjs
CHANGED
|
@@ -49,6 +49,7 @@ function analyze(metafile) {
|
|
|
49
49
|
// src/compile.ts
|
|
50
50
|
import { strict as assert2 } from "node:assert";
|
|
51
51
|
import { promises as fs } from "node:fs";
|
|
52
|
+
import module from "node:module";
|
|
52
53
|
import path from "node:path";
|
|
53
54
|
import { fileURLToPath } from "node:url";
|
|
54
55
|
import typescript from "typescript";
|
|
@@ -152,6 +153,38 @@ function resolveTypescriptPaths() {
|
|
|
152
153
|
});
|
|
153
154
|
};
|
|
154
155
|
}
|
|
156
|
+
function getTemporalPolyfillModulePath({
|
|
157
|
+
exports
|
|
158
|
+
}) {
|
|
159
|
+
return exports?.["."]?.find((entry) => entry.import?.default !== void 0)?.import?.default;
|
|
160
|
+
}
|
|
161
|
+
function resolveRuntimeTemporalPolyfill(external2) {
|
|
162
|
+
return (pluginBuild) => {
|
|
163
|
+
pluginBuild.onResolve(
|
|
164
|
+
// Note: the /u flag cannot be used here because the underlying Go implementation does not support it
|
|
165
|
+
// eslint-disable-next-line require-unicode-regexp
|
|
166
|
+
{ filter: /^@js-temporal\/polyfill$/ },
|
|
167
|
+
async (resolved) => {
|
|
168
|
+
const packageJsonPath = module.findPackageJSON(
|
|
169
|
+
resolved.path,
|
|
170
|
+
resolved.resolveDir
|
|
171
|
+
);
|
|
172
|
+
assert2.ok(packageJsonPath !== void 0);
|
|
173
|
+
if (external2.includes("./node_modules/*")) {
|
|
174
|
+
return { path: resolved.path, external: true };
|
|
175
|
+
}
|
|
176
|
+
const packageJson = JSON.parse(
|
|
177
|
+
await fs.readFile(packageJsonPath, "utf8")
|
|
178
|
+
);
|
|
179
|
+
const modulePath = getTemporalPolyfillModulePath(packageJson);
|
|
180
|
+
assert2.ok(modulePath !== void 0);
|
|
181
|
+
return {
|
|
182
|
+
path: path.join(path.dirname(packageJsonPath), modulePath)
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
);
|
|
186
|
+
};
|
|
187
|
+
}
|
|
155
188
|
async function compile_default({
|
|
156
189
|
type: type2,
|
|
157
190
|
entryPoint: entryPoint2,
|
|
@@ -227,12 +260,6 @@ async function compile_default({
|
|
|
227
260
|
platform: "node",
|
|
228
261
|
format: "esm",
|
|
229
262
|
treeShaking: true,
|
|
230
|
-
tsconfigRaw: {
|
|
231
|
-
compilerOptions: {
|
|
232
|
-
paths: {}
|
|
233
|
-
// clear paths so "@js-temporal/polyfill" is not rewritten
|
|
234
|
-
}
|
|
235
|
-
},
|
|
236
263
|
write: false,
|
|
237
264
|
metafile: outFile2 !== void 0,
|
|
238
265
|
sourcesContent: false,
|
|
@@ -257,6 +284,10 @@ async function compile_default({
|
|
|
257
284
|
legalComments: "none",
|
|
258
285
|
external: external2,
|
|
259
286
|
plugins: [
|
|
287
|
+
{
|
|
288
|
+
name: "resolve-runtime-temporal-polyfill",
|
|
289
|
+
setup: resolveRuntimeTemporalPolyfill(external2)
|
|
290
|
+
},
|
|
260
291
|
{
|
|
261
292
|
name: "exclude-source-maps",
|
|
262
293
|
// Note: the /u flag cannot be used here because the underlying Go implementation does not support it
|
package/dist-mjs/compile.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// src/compile.ts
|
|
2
2
|
import { strict as assert } from "node:assert";
|
|
3
3
|
import { promises as fs } from "node:fs";
|
|
4
|
+
import module from "node:module";
|
|
4
5
|
import path from "node:path";
|
|
5
6
|
import { fileURLToPath } from "node:url";
|
|
6
7
|
import typescript from "typescript";
|
|
@@ -62,6 +63,38 @@ function resolveTypescriptPaths() {
|
|
|
62
63
|
});
|
|
63
64
|
};
|
|
64
65
|
}
|
|
66
|
+
function getTemporalPolyfillModulePath({
|
|
67
|
+
exports
|
|
68
|
+
}) {
|
|
69
|
+
return exports?.["."]?.find((entry) => entry.import?.default !== void 0)?.import?.default;
|
|
70
|
+
}
|
|
71
|
+
function resolveRuntimeTemporalPolyfill(external) {
|
|
72
|
+
return (pluginBuild) => {
|
|
73
|
+
pluginBuild.onResolve(
|
|
74
|
+
// Note: the /u flag cannot be used here because the underlying Go implementation does not support it
|
|
75
|
+
// eslint-disable-next-line require-unicode-regexp
|
|
76
|
+
{ filter: /^@js-temporal\/polyfill$/ },
|
|
77
|
+
async (resolved) => {
|
|
78
|
+
const packageJsonPath = module.findPackageJSON(
|
|
79
|
+
resolved.path,
|
|
80
|
+
resolved.resolveDir
|
|
81
|
+
);
|
|
82
|
+
assert.ok(packageJsonPath !== void 0);
|
|
83
|
+
if (external.includes("./node_modules/*")) {
|
|
84
|
+
return { path: resolved.path, external: true };
|
|
85
|
+
}
|
|
86
|
+
const packageJson = JSON.parse(
|
|
87
|
+
await fs.readFile(packageJsonPath, "utf8")
|
|
88
|
+
);
|
|
89
|
+
const modulePath = getTemporalPolyfillModulePath(packageJson);
|
|
90
|
+
assert.ok(modulePath !== void 0);
|
|
91
|
+
return {
|
|
92
|
+
path: path.join(path.dirname(packageJsonPath), modulePath)
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
}
|
|
65
98
|
async function compile_default({
|
|
66
99
|
type,
|
|
67
100
|
entryPoint,
|
|
@@ -137,12 +170,6 @@ async function compile_default({
|
|
|
137
170
|
platform: "node",
|
|
138
171
|
format: "esm",
|
|
139
172
|
treeShaking: true,
|
|
140
|
-
tsconfigRaw: {
|
|
141
|
-
compilerOptions: {
|
|
142
|
-
paths: {}
|
|
143
|
-
// clear paths so "@js-temporal/polyfill" is not rewritten
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
173
|
write: false,
|
|
147
174
|
metafile: outFile !== void 0,
|
|
148
175
|
sourcesContent: false,
|
|
@@ -167,6 +194,10 @@ async function compile_default({
|
|
|
167
194
|
legalComments: "none",
|
|
168
195
|
external,
|
|
169
196
|
plugins: [
|
|
197
|
+
{
|
|
198
|
+
name: "resolve-runtime-temporal-polyfill",
|
|
199
|
+
setup: resolveRuntimeTemporalPolyfill(external)
|
|
200
|
+
},
|
|
170
201
|
{
|
|
171
202
|
name: "exclude-source-maps",
|
|
172
203
|
// Note: the /u flag cannot be used here because the underlying Go implementation does not support it
|
|
@@ -187,4 +218,4 @@ async function compile_default({
|
|
|
187
218
|
export {
|
|
188
219
|
compile_default as default
|
|
189
220
|
};
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,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
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@checkdigit/typescript-config","version":"10.1.1-PR.92-
|
|
1
|
+
{"name":"@checkdigit/typescript-config","version":"10.1.1-PR.92-d314","description":"Check Digit standard Typescript configuration","homepage":"https://github.com/checkdigit/typescript-config#readme","bugs":{"url":"https://github.com/checkdigit/typescript-config/issues"},"repository":{"type":"git","url":"git+https://github.com/checkdigit/typescript-config.git"},"license":"MIT","author":"Check Digit, LLC","type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./tsconfig.json"}},"bin":{"builder":"./bin/builder.mjs"},"files":["bin","tsconfig.json","src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build":"npm run build:builder && npm run build:types && npm run build:mjs && npm run build:mjs-bundle && npm run build:mjs-bundle-minify && npm run build:mjs-bundle-no-external","build:builder":"esbuild src/builder.ts --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:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","build:mjs":"rimraf build-mjs && bin/builder.mjs --type=module --outDir=build-mjs","build:mjs-bundle":"rimraf build-mjs-bundle && bin/builder.mjs --type=module --outDir=build-mjs-bundle --entryPoint=index.test.ts --outFile=index.test.mjs","build:mjs-bundle-minify":"rimraf build-mjs-bundle-minify && bin/builder.mjs --type=module --minify --outDir=build-mjs-bundle-minify --entryPoint=index.test.ts --outFile=index.test.mjs","build:mjs-bundle-no-external":"rimraf build-mjs-bundle-no-external && bin/builder.mjs --type=module --external=./node_modules/* --outDir=build-mjs-bundle-no-external --entryPoint=index.test.ts --outFile=index.test.mjs --minify","build:types":"rimraf build-types && bin/builder.mjs --type=types --outDir=build-types","ci:compile":"tsc --noEmit --rootDir src","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"npm run build && npm run test:node && npm run test:mjs && npm run test:mjs-bundle && npm run test:mjs-bundle-no-external","lint":"eslint . --max-warnings=0 --concurrency=auto","lint:fix":"eslint . --fix --concurrency=auto","prepare":"","prepublishOnly":"npm run build:builder && npm run build:dist-types && npm run build:dist-mjs","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","test:mjs":"node --test build-mjs/test/index.mjs","test:mjs-bundle":"node --test build-mjs-bundle/index.test.mjs","test:mjs-bundle-minify":"node --test build-mjs-bundle-minify/index.test.mjs","test:mjs-bundle-no-external":"node --test build-mjs-bundle-no-external/index.test.mjs","test:node":"node --disable-warning ExperimentalWarning --experimental-strip-types --test-timeout 600000 --test \"src/**/*.spec.ts\""},"prettier":"@checkdigit/prettier-config","devDependencies":{"@checkdigit/prettier-config":"^8.0.0","@eslint/js":"^9.39.4","@eslint/json":"^2.0.0","@eslint/markdown":"^8.0.2","@js-temporal/polyfill":"^0.5.1","eslint":"^9.39.4","eslint-config-prettier":"^10.1.8","eslint-plugin-import":"^2.32.0","eslint-plugin-yml":"^3.5.0","rimraf":"^6.1.3","typescript-eslint":"^8.62.0"},"peerDependencies":{"@swc-node/register":"1.11.1","@types/node":">=24","esbuild":"0.28.1","oxc-resolver":"11.13.2","typescript":">=6.0.3 <7"},"engines":{"node":">=24.14.1 <25 || >=26"}}
|
package/src/compile.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { strict as assert } from 'node:assert';
|
|
4
4
|
import { promises as fs } from 'node:fs';
|
|
5
|
+
import module from 'node:module';
|
|
5
6
|
import path from 'node:path';
|
|
6
7
|
import { fileURLToPath } from 'node:url';
|
|
7
8
|
|
|
@@ -189,6 +190,57 @@ function resolveTypescriptPaths() {
|
|
|
189
190
|
};
|
|
190
191
|
}
|
|
191
192
|
|
|
193
|
+
/**
|
|
194
|
+
* The Temporal polyfill handling can be removed once Node 26 becomes minimum version
|
|
195
|
+
*/
|
|
196
|
+
interface TemporalPolyfillPackageJson {
|
|
197
|
+
exports?: {
|
|
198
|
+
'.'?: {
|
|
199
|
+
import?: {
|
|
200
|
+
default?: string;
|
|
201
|
+
};
|
|
202
|
+
}[];
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function getTemporalPolyfillModulePath({
|
|
207
|
+
exports,
|
|
208
|
+
}: TemporalPolyfillPackageJson): string | undefined {
|
|
209
|
+
return exports?.['.']?.find((entry) => entry.import?.default !== undefined)
|
|
210
|
+
?.import?.default;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
function resolveRuntimeTemporalPolyfill(external: string[]) {
|
|
214
|
+
return (pluginBuild: PluginBuild) => {
|
|
215
|
+
pluginBuild.onResolve(
|
|
216
|
+
// Note: the /u flag cannot be used here because the underlying Go implementation does not support it
|
|
217
|
+
// eslint-disable-next-line require-unicode-regexp
|
|
218
|
+
{ filter: /^@js-temporal\/polyfill$/ },
|
|
219
|
+
async (resolved) => {
|
|
220
|
+
const packageJsonPath = module.findPackageJSON(
|
|
221
|
+
resolved.path,
|
|
222
|
+
resolved.resolveDir,
|
|
223
|
+
);
|
|
224
|
+
|
|
225
|
+
assert.ok(packageJsonPath !== undefined);
|
|
226
|
+
if (external.includes('./node_modules/*')) {
|
|
227
|
+
return { path: resolved.path, external: true };
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
const packageJson = JSON.parse(
|
|
231
|
+
await fs.readFile(packageJsonPath, 'utf8'),
|
|
232
|
+
) as TemporalPolyfillPackageJson;
|
|
233
|
+
const modulePath = getTemporalPolyfillModulePath(packageJson);
|
|
234
|
+
|
|
235
|
+
assert.ok(modulePath !== undefined);
|
|
236
|
+
return {
|
|
237
|
+
path: path.join(path.dirname(packageJsonPath), modulePath),
|
|
238
|
+
};
|
|
239
|
+
},
|
|
240
|
+
);
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
|
|
192
244
|
// eslint-disable-next-line max-lines-per-function
|
|
193
245
|
export default async function ({
|
|
194
246
|
type,
|
|
@@ -281,11 +333,6 @@ export default async function ({
|
|
|
281
333
|
platform: 'node',
|
|
282
334
|
format: 'esm',
|
|
283
335
|
treeShaking: true,
|
|
284
|
-
tsconfigRaw: {
|
|
285
|
-
compilerOptions: {
|
|
286
|
-
paths: {}, // clear paths so "@js-temporal/polyfill" is not rewritten
|
|
287
|
-
},
|
|
288
|
-
},
|
|
289
336
|
write: false,
|
|
290
337
|
metafile: outFile !== undefined,
|
|
291
338
|
sourcesContent: false,
|
|
@@ -315,6 +362,10 @@ export default async function ({
|
|
|
315
362
|
legalComments: 'none',
|
|
316
363
|
external,
|
|
317
364
|
plugins: [
|
|
365
|
+
{
|
|
366
|
+
name: 'resolve-runtime-temporal-polyfill',
|
|
367
|
+
setup: resolveRuntimeTemporalPolyfill(external),
|
|
368
|
+
},
|
|
318
369
|
{
|
|
319
370
|
name: 'exclude-source-maps',
|
|
320
371
|
// Note: the /u flag cannot be used here because the underlying Go implementation does not support it
|