@checkdigit/typescript-config 5.1.0-PR.47-1768 → 5.1.1-PR.49-70e0
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 +24 -16
- package/package.json +1 -1
    
        package/bin/builder.mjs
    CHANGED
    
    | @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            #!/usr/bin/env node
         | 
| 2 2 | 
             
            // src/builder/index.mts
         | 
| 3 3 | 
             
            import { strict as assert2 } from "node:assert";
         | 
| 4 | 
            +
            import { promises as fs2 } from "node:fs";
         | 
| 4 5 | 
             
            import path2 from "node:path";
         | 
| 5 6 | 
             
            import { parseArgs } from "node:util";
         | 
| 6 7 |  | 
| @@ -72,7 +73,7 @@ async function builder_default({ | |
| 72 73 | 
             
              minify: minify2 = false,
         | 
| 73 74 | 
             
              sourceMap: sourceMap2
         | 
| 74 75 | 
             
            }) {
         | 
| 75 | 
            -
              const  | 
| 76 | 
            +
              const messages = [];
         | 
| 76 77 | 
             
              assert.ok(
         | 
| 77 78 | 
             
                entryPoint2 === void 0 && outFile2 === void 0 || entryPoint2 !== void 0 && outFile2 !== void 0,
         | 
| 78 79 | 
             
                "entryPoint and outFile must both be provided"
         | 
| @@ -122,23 +123,25 @@ async function builder_default({ | |
| 122 123 | 
             
                  assert.ok(diagnostic.start !== void 0);
         | 
| 123 124 | 
             
                  const { line, character } = typescript.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
         | 
| 124 125 | 
             
                  const message = typescript.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
         | 
| 125 | 
            -
                   | 
| 126 | 
            +
                  messages.push(`tsc: ${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`);
         | 
| 126 127 | 
             
                } else {
         | 
| 127 | 
            -
                   | 
| 128 | 
            +
                  messages.push(`tsc: ${typescript.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`);
         | 
| 128 129 | 
             
                }
         | 
| 129 130 | 
             
              }
         | 
| 130 | 
            -
              if ( | 
| 131 | 
            -
                throw new Error(`tsc failed ${JSON.stringify( | 
| 131 | 
            +
              if (messages.length > 0) {
         | 
| 132 | 
            +
                throw new Error(`tsc failed ${JSON.stringify(messages)}`);
         | 
| 132 133 | 
             
              }
         | 
| 133 134 | 
             
              if (type2 === "types") {
         | 
| 134 | 
            -
                return  | 
| 135 | 
            +
                return {};
         | 
| 135 136 | 
             
              }
         | 
| 136 | 
            -
              const  | 
| 137 | 
            +
              const buildResult2 = await build({
         | 
| 137 138 | 
             
                entryPoints: productionSourceFiles,
         | 
| 138 139 | 
             
                bundle: true,
         | 
| 139 140 | 
             
                minify: minify2,
         | 
| 140 141 | 
             
                platform: "node",
         | 
| 141 142 | 
             
                format: type2 === "module" ? "esm" : "cjs",
         | 
| 143 | 
            +
                treeShaking: type2 === "module",
         | 
| 144 | 
            +
                metafile: outFile2 !== void 0,
         | 
| 142 145 | 
             
                sourcesContent: false,
         | 
| 143 146 | 
             
                banner: type2 === "module" && outFile2 !== void 0 ? {
         | 
| 144 147 | 
             
                  js: commonJsCompatabilityBanner
         | 
| @@ -167,12 +170,17 @@ async function builder_default({ | |
| 167 170 | 
             
                  ]
         | 
| 168 171 | 
             
                }
         | 
| 169 172 | 
             
              });
         | 
| 170 | 
            -
               | 
| 171 | 
            -
               | 
| 172 | 
            -
              if ( | 
| 173 | 
            -
                throw new Error(`esbuild failed ${JSON.stringify( | 
| 173 | 
            +
              messages.push(...buildResult2.errors.map((error) => `esbuild error: ${error.text}`));
         | 
| 174 | 
            +
              messages.push(...buildResult2.warnings.map((warning) => `esbuild warning: ${warning.text}`));
         | 
| 175 | 
            +
              if (messages.length > 0) {
         | 
| 176 | 
            +
                throw new Error(`esbuild failed ${JSON.stringify(messages)}`);
         | 
| 174 177 | 
             
              }
         | 
| 175 | 
            -
              return  | 
| 178 | 
            +
              return buildResult2;
         | 
| 179 | 
            +
            }
         | 
| 180 | 
            +
             | 
| 181 | 
            +
            // src/builder/analyze.mts
         | 
| 182 | 
            +
            function analyze(metafile) {
         | 
| 183 | 
            +
              console.log("analyze", Object.keys(metafile));
         | 
| 176 184 | 
             
            }
         | 
| 177 185 |  | 
| 178 186 | 
             
            // src/builder/index.mts
         | 
| @@ -193,7 +201,7 @@ var { | |
| 193 201 | 
             
            assert2.ok(type === "module" || type === "commonjs" || type === "types", "type must be types, module or commonjs");
         | 
| 194 202 | 
             
            assert2.ok(inDir !== void 0, "inDir is required");
         | 
| 195 203 | 
             
            assert2.ok(outDir !== void 0, "outDir is required");
         | 
| 196 | 
            -
            var  | 
| 204 | 
            +
            var buildResult = await builder_default({
         | 
| 197 205 | 
             
              type,
         | 
| 198 206 | 
             
              inDir: path2.join(process.cwd(), inDir),
         | 
| 199 207 | 
             
              outDir: path2.join(process.cwd(), outDir),
         | 
| @@ -203,7 +211,7 @@ var messages = await builder_default({ | |
| 203 211 | 
             
              minify,
         | 
| 204 212 | 
             
              sourceMap
         | 
| 205 213 | 
             
            });
         | 
| 206 | 
            -
            if ( | 
| 207 | 
            -
               | 
| 208 | 
            -
               | 
| 214 | 
            +
            if (buildResult.metafile !== void 0) {
         | 
| 215 | 
            +
              analyze(buildResult.metafile);
         | 
| 216 | 
            +
              await fs2.writeFile(path2.join(outDir, "metafile.json"), JSON.stringify(buildResult.metafile, void 0, 2));
         | 
| 209 217 | 
             
            }
         | 
    
        package/package.json
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"name":"@checkdigit/typescript-config","version":"5.1. | 
| 1 | 
            +
            {"name":"@checkdigit/typescript-config","version":"5.1.1-PR.49-70e0","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.4","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.9","@types/jest":"^29.5.5","@types/uuid":"^9.0.4","@typescript-eslint/eslint-plugin":"^6.7.4","@typescript-eslint/parser":"^6.7.4","debug":"^4.3.4","eslint":"^8.50.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/**","!<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":["bin","tsconfig.json","SECURITY.md"]}
         |