@checkdigit/typescript-config 7.1.0-PR.58-c7d5 → 7.1.0-PR.58-49c4
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/README.md +2 -2
- package/bin/builder.mjs +7 -0
- package/dist-mjs/compile.mjs +8 -1
- package/package.json +1 -1
- package/src/compile.ts +8 -1
package/README.md
CHANGED
@@ -12,7 +12,7 @@ This module contains the standard Check Digit Typescript configuration, along wi
|
|
12
12
|
|
13
13
|
- currently requires Node 20.11 or above.
|
14
14
|
- emits `esnext`, with the default libraries, to avoid down-leveling. It is intended that application spec tests pick
|
15
|
-
up any issues with using newer features unavailable in a particular environment. Browsers and
|
15
|
+
up any issues with using newer features unavailable in a particular environment. Browsers and Node.js are fast-moving
|
16
16
|
targets, and can add language features at any time.
|
17
17
|
- uses the `module` type of `esnext`.
|
18
18
|
- all compiler options set for maximum strictness.
|
@@ -24,7 +24,7 @@ It is intended to be used when publishing a package to NPM, or to bundle a packa
|
|
24
24
|
It uses `tsc` for generating types, and `esbuild` for generating code.
|
25
25
|
|
26
26
|
**Note:** the `require` function will be defined as a global variable, to allow
|
27
|
-
dynamic `require`s by CommonJS submodules. This is not a problem for
|
27
|
+
dynamic `require`s by CommonJS submodules. This is not a problem for Node.js, but will cause issues in a browser environment.
|
28
28
|
|
29
29
|
#### Options
|
30
30
|
|
package/bin/builder.mjs
CHANGED
@@ -117,6 +117,13 @@ async function compile_default({
|
|
117
117
|
removeComments: false,
|
118
118
|
noLib: false,
|
119
119
|
noEmitOnError: true,
|
120
|
+
/*
|
121
|
+
* skipLibCheck is different between tsconfig.json and the compiler:
|
122
|
+
* 1) it is not the job of the builder to enforce the type-correctness of external 3rd party libraries.
|
123
|
+
* This should be caught by the initial `tsc` compilation.
|
124
|
+
* 2) this check might be overridden by the user in their own tsconfig.json,
|
125
|
+
* if an external type issue is not resolvable.
|
126
|
+
*/
|
120
127
|
skipLibCheck: true,
|
121
128
|
strict: true,
|
122
129
|
preserveConstEnums: true,
|
package/dist-mjs/compile.mjs
CHANGED
@@ -83,6 +83,13 @@ async function compile_default({
|
|
83
83
|
removeComments: false,
|
84
84
|
noLib: false,
|
85
85
|
noEmitOnError: true,
|
86
|
+
/*
|
87
|
+
* skipLibCheck is different between tsconfig.json and the compiler:
|
88
|
+
* 1) it is not the job of the builder to enforce the type-correctness of external 3rd party libraries.
|
89
|
+
* This should be caught by the initial `tsc` compilation.
|
90
|
+
* 2) this check might be overridden by the user in their own tsconfig.json,
|
91
|
+
* if an external type issue is not resolvable.
|
92
|
+
*/
|
86
93
|
skipLibCheck: true,
|
87
94
|
strict: true,
|
88
95
|
preserveConstEnums: true,
|
@@ -182,4 +189,4 @@ async function compile_default({
|
|
182
189
|
export {
|
183
190
|
compile_default as default
|
184
191
|
};
|
185
|
-
//# sourceMappingURL=data:application/json;base64,
|
192
|
+
//# sourceMappingURL=data:application/json;base64,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
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"@checkdigit/typescript-config","version":"7.1.0-PR.58-
|
1
|
+
{"name":"@checkdigit/typescript-config","version":"7.1.0-PR.58-49c4","description":"Check Digit standard Typescript configuration","prettier":"@checkdigit/prettier-config","engines":{"node":">=20.11"},"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./tsconfig.json"}},"bin":{"builder":"./bin/builder.mjs"},"peerDependencies":{"@types/node":">=20.11","esbuild":"0.20.2","typescript":"5.5.0-beta"},"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":{"prepublishOnly":"npm run build:builder && npm run build:dist-types && npm run build:dist-mjs","lint:fix":"eslint --ignore-path .gitignore . --fix","lint":"eslint --max-warnings 0 --ignore-path .gitignore .","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":"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:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","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:types":"rimraf build-types && bin/builder.mjs --type=types --outDir=build-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=test/index.ts --outFile=test/index.mjs","build:mjs-bundle-minify":"rimraf build-mjs-bundle-minify && bin/builder.mjs --type=module --minify --outDir=build-mjs-bundle-minify --entryPoint=test/index.ts --outFile=test/index.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=test/index.ts --outFile=test/index.mjs --minify","test:jest-mjs":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=false","test:mjs":"node --test build-mjs/test/index.mjs","test:mjs-bundle":"node --test build-mjs-bundle/test/index.mjs","test:mjs-bundle-minify":"node --test build-mjs-bundle-minify/test/index.mjs","test:mjs-bundle-no-external":"node --test build-mjs-bundle-no-external/test/index.mjs","ci:test":"npm run build && npm run test:jest-mjs && npm run test:mjs && npm run test:mjs-bundle && npm run test:mjs-bundle-no-external","ci:compile":"tsc --noEmit","ci:lint":"npm run lint","ci:style":"npm run prettier"},"devDependencies":{"@apidevtools/json-schema-ref-parser":"^11.6.1","@checkdigit/prettier-config":"^5.3.0","@jest/globals":"^29.7.0","@types/uuid":"^9.0.8","@typescript-eslint/eslint-plugin":"^7.7.1","@typescript-eslint/parser":"^7.7.1","eslint":"^8.57.0","eslint-config-prettier":"^9.1.0","jest":"^29.7.0","rimraf":"^5.0.5","ts-jest":"^29.1.2","uuid":"^9.0.1"},"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","func-names":"off","sort-keys":"off","sort-imports":"off","max-lines":["error",{"max":500,"skipBlankLines":true,"skipComments":true}],"func-style":["error","declaration",{"allowArrowFunctions":true}],"no-magic-numbers":["error",{"ignore":[0,1,2]}],"no-undefined":"off","no-ternary":"off"},"overrides":[{"files":["*.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-fallthrough":"off","no-inline-comments":"off","no-param-reassign":"off","id-length":"off","no-magic-numbers":"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","json","node"],"extensionsToTreatAsEsm":[".ts"],"transform":{"^.+\\.ts$":["ts-jest",{"isolatedModules":true,"diagnostics":false,"useESM":true}]},"collectCoverageFrom":["<rootDir>/src/**"],"testMatch":["<rootDir>/src/**/*.spec.ts"]},"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"],"overrides":{"typescript":"5.5.0-beta"}}
|
package/src/compile.ts
CHANGED
@@ -199,7 +199,7 @@ export default async function ({
|
|
199
199
|
entryPoint === undefined ? allSourceFiles.filter((file) => file.endsWith('.ts')) : [path.join(inDir, entryPoint)];
|
200
200
|
|
201
201
|
/**
|
202
|
-
* Emit declarations using typescript compiler
|
202
|
+
* Emit declarations using typescript compiler if the type is 'types'. Otherwise, compile to ensure the build is good.
|
203
203
|
*/
|
204
204
|
const program = typescript.createProgram(productionSourceFiles, {
|
205
205
|
module: typescript.ModuleKind.ESNext,
|
@@ -211,6 +211,13 @@ export default async function ({
|
|
211
211
|
removeComments: false,
|
212
212
|
noLib: false,
|
213
213
|
noEmitOnError: true,
|
214
|
+
/*
|
215
|
+
* skipLibCheck is different between tsconfig.json and the compiler:
|
216
|
+
* 1) it is not the job of the builder to enforce the type-correctness of external 3rd party libraries.
|
217
|
+
* This should be caught by the initial `tsc` compilation.
|
218
|
+
* 2) this check might be overridden by the user in their own tsconfig.json,
|
219
|
+
* if an external type issue is not resolvable.
|
220
|
+
*/
|
214
221
|
skipLibCheck: true,
|
215
222
|
strict: true,
|
216
223
|
preserveConstEnums: true,
|