@checkdigit/typescript-config 3.3.0-PR.30-9280 → 3.3.0-PR.30-cbc4

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 CHANGED
@@ -34,6 +34,7 @@ types, and `esbuild` for generating code.
34
34
  - `--external` external modules to exclude from the bundle. Built-in `node` modules are automatically excluded.
35
35
  A wildcard `*` can be used to exclude multiple external modules.
36
36
  - `--minify` whether to minify the output.
37
+ - `--sourceMap` whether to include inline sourcemap.
37
38
 
38
39
  #### Examples
39
40
 
package/bin/builder.mjs CHANGED
@@ -22,14 +22,19 @@ async function getFiles(directory) {
22
22
  }
23
23
  function excludeSourceMaps(filter) {
24
24
  return (pluginBuild) => {
25
- pluginBuild.onLoad({ filter }, async (args) => ({
26
- contents: `${await fs.readFile(
27
- args.path,
28
- "utf8"
29
- )}
25
+ pluginBuild.onLoad({ filter }, async (args) => {
26
+ if (args.path.endsWith(".js") || args.path.endsWith(".mjs") || args.path.endsWith(".cjs")) {
27
+ return {
28
+ contents: `${await fs.readFile(
29
+ args.path,
30
+ "utf8"
31
+ )}
30
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIiJdLCJtYXBwaW5ncyI6IkEifQ==`,
31
- loader: "default"
32
- }));
33
+ loader: "default"
34
+ };
35
+ }
36
+ return void 0;
37
+ });
33
38
  };
34
39
  }
35
40
  function resolveTypescriptPaths(type2) {
@@ -58,7 +63,8 @@ async function builder_default({
58
63
  outDir: outDir2,
59
64
  outFile: outFile2,
60
65
  external: external2 = [],
61
- minify: minify2 = false
66
+ minify: minify2 = false,
67
+ sourceMap: sourceMap2
62
68
  }) {
63
69
  const messages2 = [];
64
70
  assert.ok(
@@ -123,9 +129,10 @@ async function builder_default({
123
129
  minify: minify2,
124
130
  platform: "node",
125
131
  format: type2 === "module" ? "esm" : "cjs",
126
- sourcemap: "inline",
127
132
  sourcesContent: false,
133
+ sourcemap: sourceMap2 ? "inline" : false,
128
134
  ...outFile2 === void 0 ? {
135
+ // individual files
129
136
  outdir: outDir2,
130
137
  outExtension: { ".js": type2 === "module" ? ".mjs" : ".cjs" },
131
138
  plugins: [
@@ -135,7 +142,9 @@ async function builder_default({
135
142
  }
136
143
  ]
137
144
  } : {
145
+ // bundling
138
146
  outfile: path.join(outDir2, outFile2),
147
+ legalComments: "none",
139
148
  external: external2,
140
149
  plugins: [
141
150
  {
@@ -155,7 +164,7 @@ async function builder_default({
155
164
 
156
165
  // src/builder/index.mts
157
166
  var {
158
- values: { type, inDir, outDir, entryPoint, outFile, external, minify }
167
+ values: { type, inDir, outDir, entryPoint, outFile, external, minify, sourceMap }
159
168
  } = parseArgs({
160
169
  options: {
161
170
  type: { type: "string", short: "t", default: "module" },
@@ -164,7 +173,8 @@ var {
164
173
  entryPoint: { type: "string", short: "e", default: void 0 },
165
174
  outFile: { type: "string", short: "f", default: void 0 },
166
175
  external: { type: "string", short: "x", multiple: true, default: [] },
167
- minify: { type: "boolean", short: "m", default: false }
176
+ minify: { type: "boolean", short: "m", default: false },
177
+ sourceMap: { type: "boolean", short: "s", default: false }
168
178
  }
169
179
  });
170
180
  assert2.ok(type === "module" || type === "commonjs", "type must be module or commonjs");
@@ -177,7 +187,8 @@ var messages = await builder_default({
177
187
  entryPoint,
178
188
  outFile,
179
189
  external,
180
- minify
190
+ minify,
191
+ sourceMap
181
192
  });
182
193
  if (messages.length > 0) {
183
194
  console.warn(JSON.stringify(messages, void 0, 2));
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@checkdigit/typescript-config","version":"3.3.0-PR.30-9280","description":"Check Digit standard Typescript configuration","prettier":"@checkdigit/prettier-config","engines":{"node":">=16"},"bin":{"builder":"./bin/builder.mjs"},"peerDependencies":{"@types/node":">=16","esbuild":"0.17.19","typescript":">=5.0.4 <5.1"},"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":{"preversion":"npm test","postversion":"git push && git push --tags","prepare":"npm run build-builder","lint:fix":"eslint -f unix --ext .ts,.mts src --fix","lint":"eslint -f unix --ext .ts,.mts src","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-cjs":"rimraf build-cjs && npx builder --type=commonjs --outDir=build-cjs","build-cjs-bundle":"rimraf build-cjs-bundle && npx builder --type=commonjs --entryPoint=test/index.test.ts --outDir=build-cjs-bundle --outFile=test/index.test.cjs --minify","build-cjs-bundle-no-external":"rimraf build-cjs-bundle-no-external && npx builder --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 && npx builder --type=module --outDir=build-esm","build-esm-bundle":"rimraf build-esm-bundle && npx builder --type=module --outDir=build-esm-bundle --entryPoint=test/index.test.ts --outFile=test/index.test.mjs","build-esm-bundle-no-external":"rimraf build-esm-bundle-no-external && npx builder --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-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":"echo \"node --test build-esm-bundle/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":"npm run build-builder && npm run build-cjs && npm run build-cjs-bundle && npm run build-cjs-bundle-no-external && npm run build-esm && npm run build-esm-bundle && npm run build-esm-bundle-no-external","ci:lint":"npm run lint","ci:style":"npm run prettier"},"devDependencies":{"@checkdigit/prettier-config":"^3.4.0","@types/debug":"^4.1.7","@types/jest":"^29.5.1","@types/uuid":"^9.0.1","@typescript-eslint/eslint-plugin":"^5.59.6","@typescript-eslint/parser":"^5.59.6","debug":"^4.3.4","eslint":"^8.40.0","eslint-config-prettier":"^8.8.0","get-port":"^6.1.2","got":"^11.8.6","jest":"^29.5.0","rimraf":"^5.0.1","ts-jest":"^29.1.0","uuid":"^9.0.0"},"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","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":["tsconfig.json","SECURITY.md","/src/"]}
1
+ {"name":"@checkdigit/typescript-config","version":"3.3.0-PR.30-cbc4","description":"Check Digit standard Typescript configuration","prettier":"@checkdigit/prettier-config","engines":{"node":">=16"},"bin":{"builder":"./bin/builder.mjs"},"peerDependencies":{"@types/node":">=16","esbuild":"0.17.19","typescript":">=5.0.4 <5.1"},"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":{"preversion":"npm test","postversion":"git push && git push --tags","prepare":"npm run build-builder","lint:fix":"eslint -f unix --ext .ts,.mts src --fix","lint":"eslint -f unix --ext .ts,.mts src","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-cjs":"rimraf build-cjs && npx builder --type=commonjs --outDir=build-cjs","build-cjs-bundle":"rimraf build-cjs-bundle && npx builder --type=commonjs --entryPoint=test/index.test.ts --outDir=build-cjs-bundle --outFile=test/index.test.cjs --minify --sourceMap","build-cjs-bundle-no-external":"rimraf build-cjs-bundle-no-external && npx builder --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 && npx builder --type=module --outDir=build-esm","build-esm-bundle":"rimraf build-esm-bundle && npx builder --type=module --outDir=build-esm-bundle --entryPoint=test/index.test.ts --outFile=test/index.test.mjs","build-esm-bundle-no-external":"rimraf build-esm-bundle-no-external && npx builder --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-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":"echo \"node --test build-esm-bundle/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":"npm run build-builder && npm run build-cjs && npm run build-cjs-bundle && npm run build-cjs-bundle-no-external && npm run build-esm && npm run build-esm-bundle && npm run build-esm-bundle-no-external","ci:lint":"npm run lint","ci:style":"npm run prettier"},"devDependencies":{"@checkdigit/prettier-config":"^3.4.0","@types/debug":"^4.1.7","@types/jest":"^29.5.1","@types/uuid":"^9.0.1","@typescript-eslint/eslint-plugin":"^5.59.6","@typescript-eslint/parser":"^5.59.6","debug":"^4.3.4","eslint":"^8.40.0","eslint-config-prettier":"^8.8.0","get-port":"^6.1.2","got":"^11.8.6","jest":"^29.5.0","rimraf":"^5.0.1","ts-jest":"^29.1.0","uuid":"^9.0.0"},"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","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":["tsconfig.json","SECURITY.md","/src/"]}
@@ -43,6 +43,11 @@ export interface BuilderOptions {
43
43
  * whether to minify output
44
44
  */
45
45
  minify?: boolean | undefined;
46
+
47
+ /**
48
+ * whether to include sourcemap
49
+ */
50
+ sourceMap?: boolean | undefined;
46
51
  }
47
52
 
48
53
  /**
@@ -63,14 +68,19 @@ async function getFiles(directory: string): Promise<string[]> {
63
68
 
64
69
  function excludeSourceMaps(filter: RegExp) {
65
70
  return (pluginBuild: PluginBuild) => {
66
- // ignore source maps for anything that matches filter
67
- pluginBuild.onLoad({ filter }, async (args) => ({
68
- contents: `${await fs.readFile(
69
- args.path,
70
- 'utf8'
71
- )}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIiJdLCJtYXBwaW5ncyI6IkEifQ==`,
72
- loader: 'default',
73
- }));
71
+ // ignore source maps for any Javascript file that matches filter
72
+ pluginBuild.onLoad({ filter }, async (args) => {
73
+ if (args.path.endsWith('.js') || args.path.endsWith('.mjs') || args.path.endsWith('.cjs')) {
74
+ return {
75
+ contents: `${await fs.readFile(
76
+ args.path,
77
+ 'utf8'
78
+ )}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIiJdLCJtYXBwaW5ncyI6IkEifQ==`,
79
+ loader: 'default',
80
+ };
81
+ }
82
+ return undefined;
83
+ });
74
84
  };
75
85
  }
76
86
 
@@ -105,6 +115,7 @@ export default async function ({
105
115
  outFile,
106
116
  external = [],
107
117
  minify = false,
118
+ sourceMap,
108
119
  }: BuilderOptions): Promise<string[]> {
109
120
  const messages: string[] = [];
110
121
 
@@ -181,10 +192,11 @@ export default async function ({
181
192
  minify,
182
193
  platform: 'node',
183
194
  format: type === 'module' ? 'esm' : 'cjs',
184
- sourcemap: 'inline',
185
195
  sourcesContent: false,
196
+ sourcemap: sourceMap ? 'inline' : false,
186
197
  ...(outFile === undefined
187
198
  ? {
199
+ // individual files
188
200
  outdir: outDir,
189
201
  outExtension: { '.js': type === 'module' ? '.mjs' : '.cjs' },
190
202
  plugins: [
@@ -195,7 +207,9 @@ export default async function ({
195
207
  ],
196
208
  }
197
209
  : {
210
+ // bundling
198
211
  outfile: path.join(outDir, outFile),
212
+ legalComments: 'none',
199
213
  external,
200
214
  plugins: [
201
215
  {
@@ -9,7 +9,7 @@ import { parseArgs } from 'node:util';
9
9
  import builder from './builder.mts';
10
10
 
11
11
  const {
12
- values: { type, inDir, outDir, entryPoint, outFile, external, minify },
12
+ values: { type, inDir, outDir, entryPoint, outFile, external, minify, sourceMap },
13
13
  } = parseArgs({
14
14
  options: {
15
15
  type: { type: 'string', short: 't', default: 'module' },
@@ -19,6 +19,7 @@ const {
19
19
  outFile: { type: 'string', short: 'f', default: undefined },
20
20
  external: { type: 'string', short: 'x', multiple: true, default: [] },
21
21
  minify: { type: 'boolean', short: 'm', default: false },
22
+ sourceMap: { type: 'boolean', short: 's', default: false },
22
23
  },
23
24
  });
24
25
 
@@ -34,6 +35,7 @@ const messages = await builder({
34
35
  outFile,
35
36
  external,
36
37
  minify,
38
+ sourceMap,
37
39
  });
38
40
  if (messages.length > 0) {
39
41
  // eslint-disable-next-line no-console