@checkdigit/typescript-config 10.1.1-PR.92-f210 → 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 -2
- package/dist-mjs/compile.mjs +38 -3
- package/package.json +1 -1
- package/src/compile.ts +56 -1
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,8 +260,6 @@ async function compile_default({
|
|
|
227
260
|
platform: "node",
|
|
228
261
|
format: "esm",
|
|
229
262
|
treeShaking: true,
|
|
230
|
-
tsconfigRaw: {},
|
|
231
|
-
// we don't need esbuild dealing with typing issues
|
|
232
263
|
write: false,
|
|
233
264
|
metafile: outFile2 !== void 0,
|
|
234
265
|
sourcesContent: false,
|
|
@@ -253,6 +284,10 @@ async function compile_default({
|
|
|
253
284
|
legalComments: "none",
|
|
254
285
|
external: external2,
|
|
255
286
|
plugins: [
|
|
287
|
+
{
|
|
288
|
+
name: "resolve-runtime-temporal-polyfill",
|
|
289
|
+
setup: resolveRuntimeTemporalPolyfill(external2)
|
|
290
|
+
},
|
|
256
291
|
{
|
|
257
292
|
name: "exclude-source-maps",
|
|
258
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,8 +170,6 @@ async function compile_default({
|
|
|
137
170
|
platform: "node",
|
|
138
171
|
format: "esm",
|
|
139
172
|
treeShaking: true,
|
|
140
|
-
tsconfigRaw: {},
|
|
141
|
-
// we don't need esbuild dealing with typing issues
|
|
142
173
|
write: false,
|
|
143
174
|
metafile: outFile !== void 0,
|
|
144
175
|
sourcesContent: false,
|
|
@@ -163,6 +194,10 @@ async function compile_default({
|
|
|
163
194
|
legalComments: "none",
|
|
164
195
|
external,
|
|
165
196
|
plugins: [
|
|
197
|
+
{
|
|
198
|
+
name: "resolve-runtime-temporal-polyfill",
|
|
199
|
+
setup: resolveRuntimeTemporalPolyfill(external)
|
|
200
|
+
},
|
|
166
201
|
{
|
|
167
202
|
name: "exclude-source-maps",
|
|
168
203
|
// Note: the /u flag cannot be used here because the underlying Go implementation does not support it
|
|
@@ -183,4 +218,4 @@ async function compile_default({
|
|
|
183
218
|
export {
|
|
184
219
|
compile_default as default
|
|
185
220
|
};
|
|
186
|
-
//# 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,7 +333,6 @@ export default async function ({
|
|
|
281
333
|
platform: 'node',
|
|
282
334
|
format: 'esm',
|
|
283
335
|
treeShaking: true,
|
|
284
|
-
tsconfigRaw: {}, // we don't need esbuild dealing with typing issues
|
|
285
336
|
write: false,
|
|
286
337
|
metafile: outFile !== undefined,
|
|
287
338
|
sourcesContent: false,
|
|
@@ -311,6 +362,10 @@ export default async function ({
|
|
|
311
362
|
legalComments: 'none',
|
|
312
363
|
external,
|
|
313
364
|
plugins: [
|
|
365
|
+
{
|
|
366
|
+
name: 'resolve-runtime-temporal-polyfill',
|
|
367
|
+
setup: resolveRuntimeTemporalPolyfill(external),
|
|
368
|
+
},
|
|
314
369
|
{
|
|
315
370
|
name: 'exclude-source-maps',
|
|
316
371
|
// Note: the /u flag cannot be used here because the underlying Go implementation does not support it
|