tshy 1.11.1 → 1.12.0

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.
@@ -112,7 +112,7 @@ export const setMain = (c, pkg) => {
112
112
  delete pkg.main;
113
113
  delete pkg.types;
114
114
  }
115
- pkg.type = 'module';
115
+ pkg.type = pkg.type === 'commonjs' ? 'commonjs' : 'module';
116
116
  };
117
117
  // These are all defined by exports, so it's just confusing otherwise
118
118
  delete pkg.module;
@@ -1 +1 @@
1
- {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"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","sourcesContent":["import { relative, resolve } from 'node:path/posix'\nimport {\n ConditionalValue,\n ConditionalValueObject,\n ExportsSubpaths,\n} from 'resolve-import'\nimport config from './config.js'\nimport dialects from './dialects.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport type { PolyfillSet } from './polyfills.js'\nimport polyfills from './polyfills.js'\nimport { resolveExport } from './resolve-export.js'\nimport { Package, TshyConfig, TshyExport } from './types.js'\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nconst getTargetForDialectCondition = <T extends string>(\n s: string | TshyExport | undefined | null,\n dialect: T,\n condition: T extends 'esm'\n ? 'import'\n : T extends 'commonjs'\n ? 'require'\n : T,\n type: T extends 'esm'\n ? 'esm'\n : T extends 'commonjs'\n ? 'commonjs'\n : 'esm' | 'commonjs',\n polyfills: Map<string, PolyfillSet> = new Map()\n): string | undefined | null => {\n if (s === undefined) return undefined\n if (typeof s === 'string') {\n // the excluded filename pattern\n const xts = type === 'commonjs' ? '.mts' : '.cts'\n if (s.endsWith(xts)) return undefined\n const pf = dialect === 'commonjs' ? 'cjs' : dialect\n return !s || !s.startsWith('./src/')\n ? s\n : dialects.includes(type)\n ? `./dist/${dialect}/${relative(\n resolve('./src'),\n resolve(polyfills.get(pf)?.map.get(s) ?? s)\n ).replace(/\\.([mc]?)tsx?$/, '.$1js')}`\n : undefined\n }\n return resolveExport(s, [condition])\n}\n\nexport const getImpTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map()\n) =>\n getTargetForDialectCondition(s, 'esm', 'import', 'esm', polyfills)\n\nexport const getReqTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map()\n) =>\n getTargetForDialectCondition(\n s,\n 'commonjs',\n 'require',\n 'commonjs',\n polyfills\n )\n\nconst getExports = (\n c: TshyConfig\n): Record<string, ConditionalValue> => {\n // by this time it always exports, will get the default if missing\n /* c8 ignore start */\n if (!c.exports) {\n fail('no exports on tshy config (is there code in ./src?)')\n return process.exit(1)\n }\n /* c8 ignore stop */\n const e: Record<string, ConditionalValue> = {}\n for (const [sub, s] of Object.entries(c.exports)) {\n // external export, not built by us\n if (\n s !== null &&\n (typeof s !== 'string' || !s.startsWith('./src/'))\n ) {\n // already been validated, just accept as-is\n e[sub] = s as ConditionalValue\n continue\n }\n\n const impTarget = getImpTarget(s, polyfills)\n const reqTarget = getReqTarget(s, polyfills)\n\n // should be impossible\n /* c8 ignore start */\n if (!impTarget && !reqTarget) continue\n /* c8 ignore stop */\n\n const exp: ConditionalValueObject = (e[sub] = {})\n if (impTarget) {\n for (const d of esmDialects) {\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'esm',\n polyfills\n )\n if (target) {\n exp[d] = {\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n if (reqTarget) {\n for (const d of commonjsDialects) {\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'commonjs',\n polyfills\n )\n if (target) {\n exp[d] = {\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n // put the default import/require after all the other special ones.\n if (impTarget) {\n exp.import = {\n types: impTarget.replace(/\\.(m?)js$/, '.d.$1ts'),\n default: impTarget,\n }\n }\n if (reqTarget) {\n exp.require = {\n types: reqTarget.replace(/\\.(c?)js$/, '.d.$1ts'),\n default: reqTarget,\n }\n }\n }\n return e\n}\n\nexport const setMain = (\n c: TshyConfig | undefined,\n pkg: Package & { exports: ExportsSubpaths }\n) => {\n const mod = resolveExport(pkg.exports['.'], ['require'])\n const main = c?.main ?? !!mod\n if (main) {\n if (!mod) {\n fail(`could not resolve exports['.'] for tshy.main 'require'`)\n return process.exit(1)\n }\n const types = resolveExport(pkg.exports['.'], [\n 'require',\n 'types',\n ])\n pkg.main = mod\n if (types && types !== mod) pkg.types = types\n else delete pkg.types\n } else {\n if (c && c.main !== false) delete c.main\n delete pkg.main\n delete pkg.types\n }\n pkg.type = 'module'\n}\n\n// These are all defined by exports, so it's just confusing otherwise\ndelete pkg.module\npkg.exports = getExports(config)\nsetMain(config, pkg as Package & { exports: ExportsSubpaths })\nexport default pkg.exports\n"]}
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"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","sourcesContent":["import { relative, resolve } from 'node:path/posix'\nimport {\n ConditionalValue,\n ConditionalValueObject,\n ExportsSubpaths,\n} from 'resolve-import'\nimport config from './config.js'\nimport dialects from './dialects.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport type { PolyfillSet } from './polyfills.js'\nimport polyfills from './polyfills.js'\nimport { resolveExport } from './resolve-export.js'\nimport { Package, TshyConfig, TshyExport } from './types.js'\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nconst getTargetForDialectCondition = <T extends string>(\n s: string | TshyExport | undefined | null,\n dialect: T,\n condition: T extends 'esm'\n ? 'import'\n : T extends 'commonjs'\n ? 'require'\n : T,\n type: T extends 'esm'\n ? 'esm'\n : T extends 'commonjs'\n ? 'commonjs'\n : 'esm' | 'commonjs',\n polyfills: Map<string, PolyfillSet> = new Map()\n): string | undefined | null => {\n if (s === undefined) return undefined\n if (typeof s === 'string') {\n // the excluded filename pattern\n const xts = type === 'commonjs' ? '.mts' : '.cts'\n if (s.endsWith(xts)) return undefined\n const pf = dialect === 'commonjs' ? 'cjs' : dialect\n return !s || !s.startsWith('./src/')\n ? s\n : dialects.includes(type)\n ? `./dist/${dialect}/${relative(\n resolve('./src'),\n resolve(polyfills.get(pf)?.map.get(s) ?? s)\n ).replace(/\\.([mc]?)tsx?$/, '.$1js')}`\n : undefined\n }\n return resolveExport(s, [condition])\n}\n\nexport const getImpTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map()\n) =>\n getTargetForDialectCondition(s, 'esm', 'import', 'esm', polyfills)\n\nexport const getReqTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map()\n) =>\n getTargetForDialectCondition(\n s,\n 'commonjs',\n 'require',\n 'commonjs',\n polyfills\n )\n\nconst getExports = (\n c: TshyConfig\n): Record<string, ConditionalValue> => {\n // by this time it always exports, will get the default if missing\n /* c8 ignore start */\n if (!c.exports) {\n fail('no exports on tshy config (is there code in ./src?)')\n return process.exit(1)\n }\n /* c8 ignore stop */\n const e: Record<string, ConditionalValue> = {}\n for (const [sub, s] of Object.entries(c.exports)) {\n // external export, not built by us\n if (\n s !== null &&\n (typeof s !== 'string' || !s.startsWith('./src/'))\n ) {\n // already been validated, just accept as-is\n e[sub] = s as ConditionalValue\n continue\n }\n\n const impTarget = getImpTarget(s, polyfills)\n const reqTarget = getReqTarget(s, polyfills)\n\n // should be impossible\n /* c8 ignore start */\n if (!impTarget && !reqTarget) continue\n /* c8 ignore stop */\n\n const exp: ConditionalValueObject = (e[sub] = {})\n if (impTarget) {\n for (const d of esmDialects) {\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'esm',\n polyfills\n )\n if (target) {\n exp[d] = {\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n if (reqTarget) {\n for (const d of commonjsDialects) {\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'commonjs',\n polyfills\n )\n if (target) {\n exp[d] = {\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n // put the default import/require after all the other special ones.\n if (impTarget) {\n exp.import = {\n types: impTarget.replace(/\\.(m?)js$/, '.d.$1ts'),\n default: impTarget,\n }\n }\n if (reqTarget) {\n exp.require = {\n types: reqTarget.replace(/\\.(c?)js$/, '.d.$1ts'),\n default: reqTarget,\n }\n }\n }\n return e\n}\n\nexport const setMain = (\n c: TshyConfig | undefined,\n pkg: Package & { exports: ExportsSubpaths }\n) => {\n const mod = resolveExport(pkg.exports['.'], ['require'])\n const main = c?.main ?? !!mod\n if (main) {\n if (!mod) {\n fail(`could not resolve exports['.'] for tshy.main 'require'`)\n return process.exit(1)\n }\n const types = resolveExport(pkg.exports['.'], [\n 'require',\n 'types',\n ])\n pkg.main = mod\n if (types && types !== mod) pkg.types = types\n else delete pkg.types\n } else {\n if (c && c.main !== false) delete c.main\n delete pkg.main\n delete pkg.types\n }\n pkg.type = pkg.type === 'commonjs' ? 'commonjs' : 'module'\n}\n\n// These are all defined by exports, so it's just confusing otherwise\ndelete pkg.module\npkg.exports = getExports(config)\nsetMain(config, pkg as Package & { exports: ExportsSubpaths })\nexport default pkg.exports\n"]}
@@ -20,7 +20,7 @@ export type Package = {
20
20
  version: string;
21
21
  main?: string;
22
22
  types?: string;
23
- type?: 'module';
23
+ type?: 'module' | 'commonjs';
24
24
  bin?: string | Record<string, string>;
25
25
  exports?: ExportsSubpaths;
26
26
  tshy?: TshyConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,OAAO,EACR,MAAM,gBAAgB,CAAA;AAEvB,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,CAAA;AAExC,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEzC,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,OAAO,EACR,MAAM,gBAAgB,CAAA;AAEvB,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,CAAA;AAExC,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEzC,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConditionalValue,\n ExportsSubpaths,\n Imports,\n} from 'resolve-import'\n\nexport type TshyConfig = {\n exports?: Record<string, TshyExport>\n dialects?: Dialect[]\n selfLink?: boolean\n main?: boolean\n commonjsDialects?: string[]\n esmDialects?: string[]\n project?: string\n exclude?: string[]\n}\n\nexport type Dialect = 'commonjs' | 'esm'\n\nexport type ExportDetail = {\n default: string\n [k: string]: string\n}\n\nexport type TshyExport = ConditionalValue\n\nexport type Package = {\n name: string\n version: string\n main?: string\n types?: string\n type?: 'module'\n bin?: string | Record<string, string>\n exports?: ExportsSubpaths\n tshy?: TshyConfig\n imports?: Imports\n [k: string]: any\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConditionalValue,\n ExportsSubpaths,\n Imports,\n} from 'resolve-import'\n\nexport type TshyConfig = {\n exports?: Record<string, TshyExport>\n dialects?: Dialect[]\n selfLink?: boolean\n main?: boolean\n commonjsDialects?: string[]\n esmDialects?: string[]\n project?: string\n exclude?: string[]\n}\n\nexport type Dialect = 'commonjs' | 'esm'\n\nexport type ExportDetail = {\n default: string\n [k: string]: string\n}\n\nexport type TshyExport = ConditionalValue\n\nexport type Package = {\n name: string\n version: string\n main?: string\n types?: string\n type?: 'module' | 'commonjs'\n bin?: string | Record<string, string>\n exports?: ExportsSubpaths\n tshy?: TshyConfig\n imports?: Imports\n [k: string]: any\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,YAAY,EAAE,MAAM,UAAU,CAAA;AAK9C,eAAO,MAAM,OAAO,EAAE,YAWrB,CAAA;AACD,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,GAAG,QAAmB,CAAA;AACnC,eAAO,MAAM,MAAM,QAA4B,CAAA;AAC/C,eAAO,MAAM,OAAO,UAAgB,CAAA;AACpC,eAAO,MAAM,GAAG,QAEf,CAAA;;AAED,wBA0BC"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,YAAY,EAAE,MAAM,UAAU,CAAA;AAmB9C,eAAO,MAAM,OAAO,EAAE,YAWrB,CAAA;AAED,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,GAAG,QAAmB,CAAA;AACnC,eAAO,MAAM,MAAM,QAA4B,CAAA;AAC/C,eAAO,MAAM,OAAO,UAAgB,CAAA;AACpC,eAAO,MAAM,GAAG,QAEf,CAAA;;AAED,wBAiCC"}
package/dist/esm/watch.js CHANGED
@@ -3,9 +3,21 @@
3
3
  import chalk from 'chalk';
4
4
  import { spawn } from 'child_process';
5
5
  import { watch } from 'chokidar';
6
+ import { readFileSync } from 'fs';
6
7
  import { resolve, sep } from 'path';
7
8
  import { fileURLToPath } from 'url';
8
9
  import * as tshyConsole from './console.js';
10
+ const pjData = () => {
11
+ try {
12
+ return JSON.stringify(JSON.parse(readFileSync('./package.json', 'utf8')));
13
+ /* c8 ignore start */
14
+ }
15
+ catch {
16
+ return 'null';
17
+ }
18
+ /* c8 ignore stop */
19
+ };
20
+ let lastPJData = 'null';
9
21
  export const options = {
10
22
  persistent: true,
11
23
  ignoreInitial: true,
@@ -43,13 +55,21 @@ export default () => {
43
55
  if (needRebuild)
44
56
  build();
45
57
  else
46
- setTimeout(() => (building = false), 50);
58
+ building = false;
47
59
  });
48
60
  };
49
61
  watcher.on('all', (ev, path) => {
50
62
  const r = resolve(path);
51
63
  if (r === srcPJ)
52
64
  return;
65
+ if (r === rootPJ) {
66
+ // check if the data actually changed
67
+ const newData = pjData();
68
+ /* c8 ignore next */
69
+ if (newData === lastPJData)
70
+ return;
71
+ lastPJData = newData;
72
+ }
53
73
  if (building) {
54
74
  if (r !== rootPJ)
55
75
  needRebuild = true;
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"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","sourcesContent":["// any time the root package.json or any typescript files in src\n// are changed/added/removed, run the build\nimport chalk from 'chalk'\nimport { spawn } from 'child_process'\nimport { watch, WatchOptions } from 'chokidar'\nimport { resolve, sep } from 'path'\nimport { fileURLToPath } from 'url'\nimport * as tshyConsole from './console.js'\n\nexport const options: WatchOptions = {\n persistent: true,\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ignored: path => {\n const r = resolve(path)\n if (r === srcPJ) return true\n if (r === srcNM) return true\n if (r.startsWith(srcNM + sep)) return true\n return false\n },\n}\nexport const srcPJ = resolve('./src/package.json')\nexport const srcNM = resolve('./src/node_modules')\nexport const src = resolve('./src')\nexport const rootPJ = resolve('./package.json')\nexport const targets = [src, rootPJ]\nexport const bin = fileURLToPath(\n new URL('./index.js', import.meta.url)\n)\n\nexport default () => {\n let building = false\n let needRebuild = false\n const watcher = watch(targets, options)\n const build = () => {\n building = true\n needRebuild = false\n const child = spawn(process.execPath, [bin], { stdio: 'inherit' })\n child.on('close', (code, signal) => {\n if (code || signal) tshyConsole.error({ code, signal })\n else console.log(chalk.green('build success'), { code, signal })\n if (needRebuild) build()\n else setTimeout(() => (building = false), 50)\n })\n }\n watcher.on('all', (ev, path) => {\n const r = resolve(path)\n if (r === srcPJ) return\n if (building) {\n if (r !== rootPJ) needRebuild = true\n return\n }\n tshyConsole.debug(chalk.cyan.dim(ev), path)\n build()\n })\n build()\n}\n"]}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"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","sourcesContent":["// any time the root package.json or any typescript files in src\n// are changed/added/removed, run the build\nimport chalk from 'chalk'\nimport { spawn } from 'child_process'\nimport { watch, WatchOptions } from 'chokidar'\nimport { readFileSync } from 'fs'\nimport { resolve, sep } from 'path'\nimport { fileURLToPath } from 'url'\nimport * as tshyConsole from './console.js'\n\nconst pjData = (): string => {\n try {\n return JSON.stringify(\n JSON.parse(readFileSync('./package.json', 'utf8'))\n )\n /* c8 ignore start */\n } catch {\n return 'null'\n }\n /* c8 ignore stop */\n}\nlet lastPJData: string = 'null'\n\nexport const options: WatchOptions = {\n persistent: true,\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ignored: path => {\n const r = resolve(path)\n if (r === srcPJ) return true\n if (r === srcNM) return true\n if (r.startsWith(srcNM + sep)) return true\n return false\n },\n}\n\nexport const srcPJ = resolve('./src/package.json')\nexport const srcNM = resolve('./src/node_modules')\nexport const src = resolve('./src')\nexport const rootPJ = resolve('./package.json')\nexport const targets = [src, rootPJ]\nexport const bin = fileURLToPath(\n new URL('./index.js', import.meta.url)\n)\n\nexport default () => {\n let building = false\n let needRebuild = false\n const watcher = watch(targets, options)\n const build = () => {\n building = true\n needRebuild = false\n const child = spawn(process.execPath, [bin], { stdio: 'inherit' })\n child.on('close', (code, signal) => {\n if (code || signal) tshyConsole.error({ code, signal })\n else console.log(chalk.green('build success'), { code, signal })\n if (needRebuild) build()\n else building = false\n })\n }\n watcher.on('all', (ev, path) => {\n const r = resolve(path)\n if (r === srcPJ) return\n if (r === rootPJ) {\n // check if the data actually changed\n const newData = pjData()\n /* c8 ignore next */\n if (newData === lastPJData) return\n lastPJData = newData\n }\n if (building) {\n if (r !== rootPJ) needRebuild = true\n return\n }\n tshyConsole.debug(chalk.cyan.dim(ev), path)\n build()\n })\n build()\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tshy",
3
- "version": "1.11.1",
3
+ "version": "1.12.0",
4
4
  "description": "TypeScript HYbridizer - Hybrid (CommonJS/ESM) TypeScript node package builder",
5
5
  "author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
6
6
  "license": "BlueOak-1.0.0",