@checkdigit/typescript-config 5.1.1-PR.49-ae5b → 5.1.1-PR.49-8f68
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 +34 -7
 - package/package.json +1 -1
 
    
        package/bin/builder.mjs
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/usr/bin/env node
         
     | 
| 
       2 
2 
     | 
    
         
             
            // src/builder/index.mts
         
     | 
| 
       3 
     | 
    
         
            -
            import { strict as  
     | 
| 
      
 3 
     | 
    
         
            +
            import { strict as assert3 } from "node:assert";
         
     | 
| 
       4 
4 
     | 
    
         
             
            import { promises as fs2 } from "node:fs";
         
     | 
| 
       5 
5 
     | 
    
         
             
            import path2 from "node:path";
         
     | 
| 
       6 
6 
     | 
    
         
             
            import { parseArgs } from "node:util";
         
     | 
| 
         @@ -71,7 +71,8 @@ async function builder_default({ 
     | 
|
| 
       71 
71 
     | 
    
         
             
              outFile: outFile2,
         
     | 
| 
       72 
72 
     | 
    
         
             
              external: external2 = [],
         
     | 
| 
       73 
73 
     | 
    
         
             
              minify: minify2 = false,
         
     | 
| 
       74 
     | 
    
         
            -
              sourceMap: sourceMap2
         
     | 
| 
      
 74 
     | 
    
         
            +
              sourceMap: sourceMap2,
         
     | 
| 
      
 75 
     | 
    
         
            +
              workingDirectory = process.cwd()
         
     | 
| 
       75 
76 
     | 
    
         
             
            }) {
         
     | 
| 
       76 
77 
     | 
    
         
             
              const messages = [];
         
     | 
| 
       77 
78 
     | 
    
         
             
              assert.ok(
         
     | 
| 
         @@ -143,6 +144,7 @@ async function builder_default({ 
     | 
|
| 
       143 
144 
     | 
    
         
             
                entryPoints: productionSourceFiles,
         
     | 
| 
       144 
145 
     | 
    
         
             
                bundle: true,
         
     | 
| 
       145 
146 
     | 
    
         
             
                minify: minify2,
         
     | 
| 
      
 147 
     | 
    
         
            +
                absWorkingDir: workingDirectory,
         
     | 
| 
       146 
148 
     | 
    
         
             
                platform: "node",
         
     | 
| 
       147 
149 
     | 
    
         
             
                format: type2 === "module" ? "esm" : "cjs",
         
     | 
| 
       148 
150 
     | 
    
         
             
                treeShaking: type2 === "module",
         
     | 
| 
         @@ -185,8 +187,30 @@ async function builder_default({ 
     | 
|
| 
       185 
187 
     | 
    
         
             
            }
         
     | 
| 
       186 
188 
     | 
    
         | 
| 
       187 
189 
     | 
    
         
             
            // src/builder/analyze.mts
         
     | 
| 
      
 190 
     | 
    
         
            +
            import { strict as assert2 } from "node:assert";
         
     | 
| 
       188 
191 
     | 
    
         
             
            function analyze(metafile) {
         
     | 
| 
       189 
     | 
    
         
            -
               
     | 
| 
      
 192 
     | 
    
         
            +
              const source = new Set(Object.keys(metafile.inputs).filter((key) => !key.startsWith("node_modules")));
         
     | 
| 
      
 193 
     | 
    
         
            +
              const modules = new Set(Object.keys(metafile.inputs).filter((key) => key.startsWith("node_modules")));
         
     | 
| 
      
 194 
     | 
    
         
            +
              const [output] = Object.entries(metafile.outputs);
         
     | 
| 
      
 195 
     | 
    
         
            +
              assert2.ok(output !== void 0);
         
     | 
| 
      
 196 
     | 
    
         
            +
              const [, bundle] = output;
         
     | 
| 
      
 197 
     | 
    
         
            +
              const sourceBytes = Object.entries(bundle.inputs).reduce((bytes, [file, value]) => {
         
     | 
| 
      
 198 
     | 
    
         
            +
                if (source.has(file)) {
         
     | 
| 
      
 199 
     | 
    
         
            +
                  return bytes + value.bytesInOutput;
         
     | 
| 
      
 200 
     | 
    
         
            +
                }
         
     | 
| 
      
 201 
     | 
    
         
            +
                return bytes;
         
     | 
| 
      
 202 
     | 
    
         
            +
              }, 0);
         
     | 
| 
      
 203 
     | 
    
         
            +
              const moduleBytes = Object.entries(bundle.inputs).reduce((bytes, [file, value]) => {
         
     | 
| 
      
 204 
     | 
    
         
            +
                if (modules.has(file)) {
         
     | 
| 
      
 205 
     | 
    
         
            +
                  return bytes + value.bytesInOutput;
         
     | 
| 
      
 206 
     | 
    
         
            +
                }
         
     | 
| 
      
 207 
     | 
    
         
            +
                return bytes;
         
     | 
| 
      
 208 
     | 
    
         
            +
              }, 0);
         
     | 
| 
      
 209 
     | 
    
         
            +
              return {
         
     | 
| 
      
 210 
     | 
    
         
            +
                sourceBytes,
         
     | 
| 
      
 211 
     | 
    
         
            +
                moduleBytes,
         
     | 
| 
      
 212 
     | 
    
         
            +
                totalBytes: bundle.bytes
         
     | 
| 
      
 213 
     | 
    
         
            +
              };
         
     | 
| 
       190 
214 
     | 
    
         
             
            }
         
     | 
| 
       191 
215 
     | 
    
         | 
| 
       192 
216 
     | 
    
         
             
            // src/builder/index.mts
         
     | 
| 
         @@ -204,9 +228,9 @@ var { 
     | 
|
| 
       204 
228 
     | 
    
         
             
                sourceMap: { type: "boolean", short: "s", default: false }
         
     | 
| 
       205 
229 
     | 
    
         
             
              }
         
     | 
| 
       206 
230 
     | 
    
         
             
            });
         
     | 
| 
       207 
     | 
    
         
            -
             
     | 
| 
       208 
     | 
    
         
            -
             
     | 
| 
       209 
     | 
    
         
            -
             
     | 
| 
      
 231 
     | 
    
         
            +
            assert3.ok(type === "module" || type === "commonjs" || type === "types", "type must be types, module or commonjs");
         
     | 
| 
      
 232 
     | 
    
         
            +
            assert3.ok(inDir !== void 0, "inDir is required");
         
     | 
| 
      
 233 
     | 
    
         
            +
            assert3.ok(outDir !== void 0, "outDir is required");
         
     | 
| 
       210 
234 
     | 
    
         
             
            var buildResult = await builder_default({
         
     | 
| 
       211 
235 
     | 
    
         
             
              type,
         
     | 
| 
       212 
236 
     | 
    
         
             
              inDir: path2.join(process.cwd(), inDir),
         
     | 
| 
         @@ -224,6 +248,9 @@ await Promise.all( 
     | 
|
| 
       224 
248 
     | 
    
         
             
              })
         
     | 
| 
       225 
249 
     | 
    
         
             
            );
         
     | 
| 
       226 
250 
     | 
    
         
             
            if (buildResult.metafile !== void 0) {
         
     | 
| 
       227 
     | 
    
         
            -
              analyze(buildResult.metafile);
         
     | 
| 
      
 251 
     | 
    
         
            +
              const analysis = analyze(buildResult.metafile);
         
     | 
| 
       228 
252 
     | 
    
         
             
              await fs2.writeFile(path2.join(outDir, "metafile.json"), JSON.stringify(buildResult.metafile, void 0, 2));
         
     | 
| 
      
 253 
     | 
    
         
            +
              console.log(
         
     | 
| 
      
 254 
     | 
    
         
            +
                `${outFile}: src ${analysis.sourceBytes}, node_modules ${analysis.moduleBytes}, total ${analysis.totalBytes}`
         
     | 
| 
      
 255 
     | 
    
         
            +
              );
         
     | 
| 
       229 
256 
     | 
    
         
             
            }
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"name":"@checkdigit/typescript-config","version":"5.1.1-PR.49- 
     | 
| 
      
 1 
     | 
    
         
            +
            {"name":"@checkdigit/typescript-config","version":"5.1.1-PR.49-8f68","description":"Check Digit standard Typescript configuration","prettier":"@checkdigit/prettier-config","engines":{"node":">=18"},"bin":{"builder":"./bin/builder.mjs"},"peerDependencies":{"@types/node":">=18","esbuild":"0.19.5","typescript":">=5.2.2 <5.3"},"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","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-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-types":"rimraf build-types && bin/builder.mjs --type=types --outDir=build-types","build-cjs":"rimraf build-cjs && bin/builder.mjs --type=commonjs --outDir=build-cjs","build-cjs-bundle":"rimraf build-cjs-bundle && bin/builder.mjs --type=commonjs --entryPoint=test/index.test.ts --outDir=build-cjs-bundle --outFile=test/index.test.cjs --sourceMap","build-cjs-bundle-minify":"rimraf build-cjs-bundle-minify && bin/builder.mjs --type=commonjs --entryPoint=test/index.test.ts --outDir=build-cjs-bundle-minify --outFile=test/index.test.cjs --minify --sourceMap","build-cjs-bundle-no-external":"rimraf build-cjs-bundle-no-external && bin/builder.mjs --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 && bin/builder.mjs --type=module --outDir=build-esm","build-esm-bundle":"rimraf build-esm-bundle && bin/builder.mjs --type=module --outDir=build-esm-bundle --entryPoint=test/index.test.ts --outFile=test/index.test.mjs","build-esm-bundle-minify":"rimraf build-esm-bundle-minify && bin/builder.mjs --type=module --minify --outDir=build-esm-bundle-minify --entryPoint=test/index.test.ts --outFile=test/index.test.mjs","build-esm-bundle-no-external":"rimraf build-esm-bundle-no-external && bin/builder.mjs --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-minify":"node --test build-cjs-bundle-minify/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":"node --test build-esm-bundle/test/index.test.mjs","test-esm-bundle-minify":"node --test build-esm-bundle-minify/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":"tsc --noEmit && npm run build-builder && npm run build-types && npm run build-cjs && npm run build-cjs-bundle && npm run build-cjs-bundle-minify && npm run build-cjs-bundle-no-external && npm run build-esm && npm run build-esm-bundle && npm run build-esm-bundle-minify && npm run build-esm-bundle-no-external","ci:lint":"npm run lint","ci:style":"npm run prettier"},"devDependencies":{"@apidevtools/json-schema-ref-parser":"^11.1.0","@checkdigit/prettier-config":"^4.1.0","@types/debug":"^4.1.10","@types/jest":"^29.5.7","@types/uuid":"^9.0.6","@typescript-eslint/eslint-plugin":"^6.9.1","@typescript-eslint/parser":"^6.9.1","debug":"^4.3.4","eslint":"^8.52.0","eslint-config-prettier":"^9.0.0","get-port":"^7.0.0","got":"^11.8.6","jest":"^29.7.0","node-fetch":"^3.3.2","rimraf":"^5.0.5","ts-jest":"^29.1.1","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","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.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/**"],"testMatch":["<rootDir>/src/**/*.spec.ts","<rootDir>/src/**/*.spec.mts"]},"files":["bin","tsconfig.json","SECURITY.md"]}
         
     |