tshy 4.0.0 → 4.1.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.
- package/README.md +24 -50
- package/dist/esm/bin-min.mjs +12 -12
- package/dist/esm/bin-min.mjs.map +3 -3
- package/dist/esm/build-commonjs.d.ts.map +1 -1
- package/dist/esm/build-commonjs.js +18 -7
- package/dist/esm/build-commonjs.js.map +1 -1
- package/dist/esm/build-esm.d.ts.map +1 -1
- package/dist/esm/build-esm.js +11 -7
- package/dist/esm/build-esm.js.map +1 -1
- package/dist/esm/build-live-commonjs.d.ts.map +1 -1
- package/dist/esm/build-live-commonjs.js +8 -6
- package/dist/esm/build-live-commonjs.js.map +1 -1
- package/dist/esm/build-live-esm.d.ts.map +1 -1
- package/dist/esm/build-live-esm.js +8 -6
- package/dist/esm/build-live-esm.js.map +1 -1
- package/dist/esm/console.d.ts.map +1 -1
- package/dist/esm/console.js +1 -1
- package/dist/esm/console.js.map +1 -1
- package/dist/esm/exports.d.ts.map +1 -1
- package/dist/esm/exports.js +43 -58
- package/dist/esm/exports.js.map +1 -1
- package/dist/esm/polyfills.d.ts +1 -0
- package/dist/esm/polyfills.d.ts.map +1 -1
- package/dist/esm/polyfills.js +22 -9
- package/dist/esm/polyfills.js.map +1 -1
- package/dist/esm/resolve-export.d.ts.map +1 -1
- package/dist/esm/resolve-export.js +1 -1
- package/dist/esm/resolve-export.js.map +1 -1
- package/dist/esm/tsconfig.d.ts.map +1 -1
- package/dist/esm/tsconfig.js +13 -12
- package/dist/esm/tsconfig.js.map +1 -1
- package/dist/esm/valid-extra-dialects.d.ts.map +1 -1
- package/dist/esm/valid-extra-dialects.js +21 -17
- package/dist/esm/valid-extra-dialects.js.map +1 -1
- package/package.json +1 -1
package/dist/esm/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAMnD,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,QAAQ,MAAM,eAAe,CAAA;AACpC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,GAAG,MAAM,cAAc,CAAA;AAE9B,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;AAE1D,MAAM,OAAO,GACX,MAAM,CAAC,OAAO;IACd,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS;IACrC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAA;AAEpC,MAAM,4BAA4B,GAAG,CACnC,CAAyC,EACzC,OAAU,EACV,SAEG,EACH,IAEoB,EACpB,SAAS,GAA6B,IAAI,GAAG,EAAE,EACpB,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,gCAAgC;QAChC,MAAM,GAAG,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QACjD,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QACrC,MAAM,EAAE,GAAG,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA;QACnD,MAAM,GAAG,GAAG,QAAQ,CAClB,OAAO,CAAC,OAAO,CAAC,EAChB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;QACrE,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,OAAO,IAAI,MAAM,EAAE;gBACzD,CAAC,CAAC,SAAS,CACZ,CAAA;IACH,CAAC;IACD,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;AAAA,CACrC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,CAAyC,EACzC,SAAS,GAA6B,IAAI,GAAG,EAAE,EAC/C,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,CAAyC,EACzC,SAAS,GAA6B,IAAI,GAAG,EAAE,EAC/C,EAAE,CACF,4BAA4B,CAC1B,CAAC,EACD,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,CACV,CAAA;AAEH,MAAM,UAAU,GAAG,CACjB,CAAa,EACb,OAA8B,EACI,EAAE,CAAC;IACrC,kEAAkE;IAClE,qBAAqB;IACrB,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,qDAAqD,CAAC,CAAA;QAC3D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;IACD,oBAAoB;IACpB,MAAM,CAAC,GAAqC,EAAE,CAAA;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,mCAAmC;QACnC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrE,4CAA4C;YAC5C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAqB,CAAA;YAC9B,SAAQ;QACV,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,KAAK,IAAI;YAAE,SAAQ;QAExB,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QAC5C,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QAE5C,uBAAuB;QACvB,qBAAqB;QACrB,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;YAAE,SAAQ;QACtC,oBAAoB;QAEpB,MAAM,GAAG,GAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;gBAEvD,MAAM,MAAM,GAAG,4BAA4B,CACzC,CAAC,EACD,CAAC,EACD,CAAC,EACD,KAAK,EACL,SAAS,CACV,CAAA;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,GAAG,CAAC,CAAC,CAAC;wBACJ,OAAO,CAAC,CAAC;4BACP;gCACE,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;oCAC1B,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;oCAC9B,CAAC,CAAC,EAAE,CAAC;gCACL,OAAO,EAAE,MAAM;6BAChB;4BACH,CAAC,CAAC;gCACE,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;oCAC1B,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;oCAC9B,CAAC,CAAC,EAAE,CAAC;gCACL,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;gCACvC,OAAO,EAAE,MAAM;6BAChB,CAAA;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;gBACvD,MAAM,MAAM,GAAG,4BAA4B,CACzC,CAAC,EACD,CAAC,EACD,CAAC,EACD,UAAU,EACV,SAAS,CACV,CAAA;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,GAAG,CAAC,CAAC,CAAC;wBACJ,OAAO,CAAC,CAAC;4BACP;gCACE,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;oCACxB,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;oCAC9B,CAAC,CAAC,EAAE,CAAC;gCACL,OAAO,EAAE,MAAM;6BAChB;4BACH,CAAC,CAAC;gCACE,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;oCACxB,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;oCAC9B,CAAC,CAAC,EAAE,CAAC;gCACL,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;gCACvC,OAAO,EAAE,MAAM;6BAChB,CAAA;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,MAAM;gBACR,OAAO,CAAC,CAAC;oBACP;wBACE,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxD,OAAO,EAAE,SAAS;qBACnB;oBACH,CAAC,CAAC;wBACE,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxD,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC;wBAChD,OAAO,EAAE,SAAS;qBACnB,CAAA;QACP,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,OAAO;gBACT,OAAO,CAAC,CAAC;oBACP;wBACE,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1D,OAAO,EAAE,SAAS;qBACnB;oBACH,CAAC,CAAC;wBACE,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1D,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC;wBAChD,OAAO,EAAE,SAAS;qBACnB,CAAA;QACP,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAA;AAAA,CACT,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,CAAa,EAAE,EAAE,CAAC;IAC3D,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;IAC5B,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAA;IAC9B,OAAO,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAAA,CAChE,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,CAAyB,EACzB,GAA2C,EAC3C,EAAE,CAAC;IACH,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC1D,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACxD,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAA;IAC7B,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,wDAAwD,CAAC,CAAA;YAC9D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;QACnE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAA;QACd,IAAI,KAAK,IAAI,KAAK,KAAK,GAAG;YAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;;YACxC,OAAO,GAAG,CAAC,KAAK,CAAA;IACvB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC,IAAI,CAAA;QACxC,OAAO,GAAG,CAAC,IAAI,CAAA;QACf,OAAO,GAAG,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,yCAAyC;IACzC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7D,MAAM,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,SAAS,CAAA;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,yDAAyD,CAAC,CAAA;YAC/D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,GAAG,CAAC,MAAM,GAAG,SAAS,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC,MAAM,CAAA;QAC5C,OAAO,GAAG,CAAC,MAAM,CAAA;IACnB,CAAC;AAAA,CACF,CAAA;AAED,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;AAE1C,OAAO,CAAC,MAAM,EAAE,GAA6C,CAAC,CAAA;AAC9D,eAAe,GAAG,CAAC,OAAO,CAAA","sourcesContent":["import { relative, resolve } from 'node:path/posix'\nimport type {\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 type { Package, TshyConfig, TshyExport } from './types.js'\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nconst liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n\nconst getTargetForDialectCondition = <T extends string>(\n s: string | TshyExport | undefined | null,\n dialect: T,\n condition: T extends 'esm' ? 'import'\n : T extends 'commonjs' ? 'require'\n : T,\n type: T extends 'esm' ? 'esm'\n : T extends 'commonjs' ? '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 const rel = relative(\n resolve('./src'),\n resolve(polyfills.get(pf)?.map.get(s) ?? s),\n )\n const target = liveDev ? rel : rel.replace(/\\.([mc]?)tsx?$/, '.$1js')\n return (\n !s || !s.startsWith('./src/') ? s\n : dialects.includes(type) ? `./dist/${dialect}/${target}`\n : undefined\n )\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) => 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 pkgType: 'commonjs' | 'module',\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 (s !== null && (typeof s !== 'string' || !s.startsWith('./src/'))) {\n // already been validated, just accept as-is\n e[sub] = s as ConditionalValue\n continue\n }\n\n /* c8 ignore next - already guarded */\n if (s === null) continue\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 source = s && (polyfills.get(d)?.map.get(s) ?? s)\n\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'esm',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\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 source = s && (polyfills.get(d)?.map.get(s) ?? s)\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'commonjs',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n // put the default import/require after all the other special ones.\n if (impTarget) {\n exp.import =\n liveDev ?\n {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n default: impTarget,\n }\n : {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n types: impTarget.replace(/\\.(m?)js$/, '.d.$1ts'),\n default: impTarget,\n }\n }\n if (reqTarget) {\n exp.require =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n default: reqTarget,\n }\n : {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n types: reqTarget.replace(/\\.(c?)js$/, '.d.$1ts'),\n default: reqTarget,\n }\n }\n }\n return e\n}\n\nconst getSourceDialects = (source: string, c: TshyConfig) => {\n const { sourceDialects } = c\n if (!sourceDialects) return {}\n return Object.fromEntries(sourceDialects.map(s => [s, source]))\n}\n\nexport const setMain = (\n c: TshyConfig | undefined,\n pkg: Package & { exports: ExportsSubpaths },\n) => {\n pkg.type = pkg.type === 'commonjs' ? 'commonjs' : 'module'\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['.'], ['require', 'types'])\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\n // Set the package module to exports[\".\"]\n const importMod = resolveExport(pkg.exports['.'], ['import'])\n const module = c?.module ?? !!importMod\n if (module) {\n if (!importMod) {\n fail(`could not resolve exports['.'] for tshy.module 'import'`)\n return process.exit(1)\n }\n\n pkg.module = importMod\n } else {\n if (c && c.module !== false) delete c.module\n delete pkg.module\n }\n}\n\npkg.exports = getExports(config, pkg.type)\n\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 type {\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 type { Package, TshyConfig, TshyExport } from './types.js'\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nconst liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n\nconst getTargetForDialectCondition = <T extends string>(\n s: string | TshyExport | undefined | null,\n dialect: T,\n condition: T extends 'esm' ? 'import'\n : T extends 'commonjs' ? 'require'\n : T,\n type: T extends 'esm' ? 'esm'\n : T extends 'commonjs' ? '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 const rel = relative(\n resolve('./src'),\n resolve(polyfills.get(pf)?.map.get(s) ?? s),\n )\n const target = liveDev ? rel : rel.replace(/\\.([mc]?)tsx?$/, '.$1js')\n const dt =\n dialect === 'commonjs' || dialect === 'esm' ?\n dialect\n : `${type}/${dialect}`\n return (\n !s || !s.startsWith('./src/') ? s\n : dialects.includes(type) ? `./dist/${dt}/${target}`\n : undefined\n )\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) => 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 pkgType: 'commonjs' | 'module',\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 (s !== null && (typeof s !== 'string' || !s.startsWith('./src/'))) {\n // already been validated, just accept as-is\n e[sub] = s as ConditionalValue\n continue\n }\n\n /* c8 ignore next - already guarded */\n if (s === null) continue\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 source = s && (polyfills.get('esm-' + d)?.rmap.get(s) ?? s)\n\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'esm',\n polyfills,\n )\n if (target) {\n const imp = (exp.import ??= {}) as ConditionalValueObject\n const src =\n pkgType === 'module' || source.endsWith('.mts') ?\n getSourceDialects(source, c)\n : undefined\n const types =\n liveDev ? undefined : (\n { types: target.replace(/\\.js$/, '.d.ts') }\n )\n imp[d] = { ...src, ...types, default: target }\n }\n }\n }\n\n if (reqTarget) {\n for (const d of commonjsDialects) {\n const source =\n s && (polyfills.get('commonjs-' + d)?.rmap.get(s) ?? s)\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'commonjs',\n polyfills,\n )\n if (target) {\n const req = (exp.require ??= {}) as ConditionalValueObject\n const src =\n pkgType === 'commonjs' || source.endsWith('.cts') ?\n getSourceDialects(source, c)\n : undefined\n const types =\n liveDev ? undefined : (\n { types: target.replace(/\\.js$/, '.d.ts') }\n )\n req[d] = { ...src, ...types, default: target }\n }\n }\n }\n\n // put the default import/require after all the other special ones.\n if (impTarget) {\n const source = s && (polyfills.get('esm')?.rmap.get(s) ?? s)\n const src =\n pkgType === 'module' || source.endsWith('.mts') ?\n getSourceDialects(source, c)\n : undefined\n const types =\n liveDev ? undefined : (\n { types: impTarget.replace(/\\.(m?)js$/, '.d.$1ts') }\n )\n exp.import = {\n ...(exp.import as ConditionalValueObject),\n ...src,\n ...types,\n default: impTarget,\n }\n }\n if (reqTarget) {\n const source = s && (polyfills.get('cjs')?.rmap.get(s) ?? s)\n const src =\n pkgType === 'commonjs' || source.endsWith('.cts') ?\n getSourceDialects(source, c)\n : undefined\n const types =\n liveDev ? undefined : (\n { types: reqTarget.replace(/\\.(c?)js$/, '.d.$1ts') }\n )\n\n exp.require = {\n ...(exp.require as ConditionalValueObject),\n ...src,\n ...types,\n default: reqTarget,\n }\n }\n }\n return e\n}\n\nconst getSourceDialects = (source: string, c: TshyConfig) => {\n const { sourceDialects } = c\n if (!sourceDialects) return undefined\n return Object.fromEntries(sourceDialects.map(s => [s, source]))\n}\n\nexport const setMain = (\n c: TshyConfig | undefined,\n pkg: Package & { exports: ExportsSubpaths },\n) => {\n pkg.type = pkg.type === 'commonjs' ? 'commonjs' : 'module'\n const mod = resolveExport(pkg.exports['.'], ['require', 'default'])\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['.'], ['require', 'types'])\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\n // Set the package module to exports[\".\"]\n const importMod = resolveExport(pkg.exports['.'], ['import', 'default'])\n const module = c?.module ?? !!importMod\n if (module) {\n if (!importMod) {\n fail(`could not resolve exports['.'] for tshy.module 'import'`)\n return process.exit(1)\n }\n\n pkg.module = importMod\n } else {\n if (c && c.module !== false) delete c.module\n delete pkg.module\n }\n}\n\npkg.exports = getExports(config, pkg.type)\n\nsetMain(config, pkg as Package & { exports: ExportsSubpaths })\nexport default pkg.exports\n"]}
|
package/dist/esm/polyfills.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyfills.d.ts","sourceRoot":"","sources":["../../src/polyfills.ts"],"names":[],"mappings":"AAQA,qBAAa,WAAW;IACtB,IAAI,EAAE,KAAK,GAAG,UAAU,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,sBAA4B;IAC/B,YAAY,IAAI,EAAE,KAAK,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,EAGjD;IACD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"polyfills.d.ts","sourceRoot":"","sources":["../../src/polyfills.ts"],"names":[],"mappings":"AAQA,qBAAa,WAAW;IACtB,IAAI,EAAE,KAAK,GAAG,UAAU,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,sBAA4B;IAC/B,IAAI,sBAA4B;IAChC,YAAY,IAAI,EAAE,KAAK,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,EAGjD;IACD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAyBtC;CAIF;AAED,QAAA,MAAM,SAAS,0BAGb,CAAA;AAqBF,eAAe,SAAS,CAAA","sourcesContent":["// the modules like -cjs.cts that override a module at .ts\nimport chalk from 'chalk'\nimport config from './config.js'\nimport * as console from './console.js'\nimport sources from './sources.js'\n\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nexport class PolyfillSet {\n type: 'esm' | 'commonjs'\n name: string\n map = new Map<string, string>()\n rmap = new Map<string, string>()\n constructor(type: 'esm' | 'commonjs', name: string) {\n this.type = type\n this.name = name\n }\n addFile(f: string, sources: Set<string>) {\n const dotts = this.type === 'commonjs' ? 'cts' : 'mts'\n let ending = `-${this.name}.${dotts}`\n // custom dialects can override both types with a -name.ts file.\n if (\n !f.endsWith(ending) &&\n this.name !== 'cjs' &&\n this.name !== 'esm'\n ) {\n ending = `-${this.name}.ts`\n }\n if (!f.endsWith(ending)) {\n return\n }\n const ts = f.substring(0, f.length - ending.length) + '.ts'\n const tsx = ts + 'x'\n const src =\n sources.has(ts) ? ts\n : sources.has(tsx) ? tsx\n : undefined\n if (!src) {\n return\n }\n this.map.set(f, src)\n this.rmap.set(src, f)\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return [this.name, this.type, this.map]\n }\n}\n\nconst polyfills = new Map<string, PolyfillSet>([\n ['cjs', new PolyfillSet('commonjs', 'cjs')],\n ['esm', new PolyfillSet('esm', 'esm')],\n])\nfor (const d of commonjsDialects)\n polyfills.set('commonjs-' + d, new PolyfillSet('commonjs', d))\nfor (const d of esmDialects)\n polyfills.set('esm-' + d, new PolyfillSet('esm', d))\n\nfor (const f of sources) {\n for (const pf of polyfills.values()) {\n pf.addFile(f, sources)\n }\n}\n\n// delete any polyfill types that have no entries\nfor (const [name, pf] of polyfills.entries()) {\n if (pf.map.size === 0) polyfills.delete(name)\n}\n\nif (polyfills.size) {\n console.debug(chalk.cyan.dim('polyfills detected'), polyfills)\n}\n\nexport default polyfills\n"]}
|
package/dist/esm/polyfills.js
CHANGED
|
@@ -8,33 +8,46 @@ export class PolyfillSet {
|
|
|
8
8
|
type;
|
|
9
9
|
name;
|
|
10
10
|
map = new Map();
|
|
11
|
+
rmap = new Map();
|
|
11
12
|
constructor(type, name) {
|
|
12
13
|
this.type = type;
|
|
13
14
|
this.name = name;
|
|
14
15
|
}
|
|
15
16
|
addFile(f, sources) {
|
|
16
17
|
const dotts = this.type === 'commonjs' ? 'cts' : 'mts';
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
let ending = `-${this.name}.${dotts}`;
|
|
19
|
+
// custom dialects can override both types with a -name.ts file.
|
|
20
|
+
if (!f.endsWith(ending) &&
|
|
21
|
+
this.name !== 'cjs' &&
|
|
22
|
+
this.name !== 'esm') {
|
|
23
|
+
ending = `-${this.name}.ts`;
|
|
24
|
+
}
|
|
25
|
+
if (!f.endsWith(ending)) {
|
|
19
26
|
return;
|
|
27
|
+
}
|
|
20
28
|
const ts = f.substring(0, f.length - ending.length) + '.ts';
|
|
21
29
|
const tsx = ts + 'x';
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
const src = sources.has(ts) ? ts
|
|
31
|
+
: sources.has(tsx) ? tsx
|
|
32
|
+
: undefined;
|
|
33
|
+
if (!src) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.map.set(f, src);
|
|
37
|
+
this.rmap.set(src, f);
|
|
26
38
|
}
|
|
27
39
|
[Symbol.for('nodejs.util.inspect.custom')]() {
|
|
28
|
-
return [this.name, this.map];
|
|
40
|
+
return [this.name, this.type, this.map];
|
|
29
41
|
}
|
|
30
42
|
}
|
|
31
43
|
const polyfills = new Map([
|
|
32
44
|
['cjs', new PolyfillSet('commonjs', 'cjs')],
|
|
45
|
+
['esm', new PolyfillSet('esm', 'esm')],
|
|
33
46
|
]);
|
|
34
47
|
for (const d of commonjsDialects)
|
|
35
|
-
polyfills.set(d, new PolyfillSet('commonjs', d));
|
|
48
|
+
polyfills.set('commonjs-' + d, new PolyfillSet('commonjs', d));
|
|
36
49
|
for (const d of esmDialects)
|
|
37
|
-
polyfills.set(d, new PolyfillSet('esm', d));
|
|
50
|
+
polyfills.set('esm-' + d, new PolyfillSet('esm', d));
|
|
38
51
|
for (const f of sources) {
|
|
39
52
|
for (const pf of polyfills.values()) {
|
|
40
53
|
pf.addFile(f, sources);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["../../src/polyfills.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;AAE1D,MAAM,OAAO,WAAW;IACtB,IAAI,CAAoB;IACxB,IAAI,CAAQ;IACZ,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC/B,YAAY,IAAwB,EAAE,IAAY,EAAE;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAAA,CACjB;IACD,OAAO,CAAC,CAAS,EAAE,OAAoB,EAAE;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACtD,
|
|
1
|
+
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["../../src/polyfills.ts"],"names":[],"mappings":"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","sourcesContent":["// the modules like -cjs.cts that override a module at .ts\nimport chalk from 'chalk'\nimport config from './config.js'\nimport * as console from './console.js'\nimport sources from './sources.js'\n\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nexport class PolyfillSet {\n type: 'esm' | 'commonjs'\n name: string\n map = new Map<string, string>()\n rmap = new Map<string, string>()\n constructor(type: 'esm' | 'commonjs', name: string) {\n this.type = type\n this.name = name\n }\n addFile(f: string, sources: Set<string>) {\n const dotts = this.type === 'commonjs' ? 'cts' : 'mts'\n let ending = `-${this.name}.${dotts}`\n // custom dialects can override both types with a -name.ts file.\n if (\n !f.endsWith(ending) &&\n this.name !== 'cjs' &&\n this.name !== 'esm'\n ) {\n ending = `-${this.name}.ts`\n }\n if (!f.endsWith(ending)) {\n return\n }\n const ts = f.substring(0, f.length - ending.length) + '.ts'\n const tsx = ts + 'x'\n const src =\n sources.has(ts) ? ts\n : sources.has(tsx) ? tsx\n : undefined\n if (!src) {\n return\n }\n this.map.set(f, src)\n this.rmap.set(src, f)\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return [this.name, this.type, this.map]\n }\n}\n\nconst polyfills = new Map<string, PolyfillSet>([\n ['cjs', new PolyfillSet('commonjs', 'cjs')],\n ['esm', new PolyfillSet('esm', 'esm')],\n])\nfor (const d of commonjsDialects)\n polyfills.set('commonjs-' + d, new PolyfillSet('commonjs', d))\nfor (const d of esmDialects)\n polyfills.set('esm-' + d, new PolyfillSet('esm', d))\n\nfor (const f of sources) {\n for (const pf of polyfills.values()) {\n pf.addFile(f, sources)\n }\n}\n\n// delete any polyfill types that have no entries\nfor (const [name, pf] of polyfills.entries()) {\n if (pf.map.size === 0) polyfills.delete(name)\n}\n\nif (polyfills.size) {\n console.debug(chalk.cyan.dim('polyfills detected'), polyfills)\n}\n\nexport default polyfills\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-export.d.ts","sourceRoot":"","sources":["../../src/resolve-export.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,mEAqBzB,CAAA","sourcesContent":["export const resolveExport = (\n exp: unknown,\n conditions: string[],\n): string | undefined | null => {\n if (typeof exp === 'string') return exp\n if (typeof exp !== 'object') return undefined\n if (exp === null) return exp\n if (Array.isArray(exp)) {\n for (const e of exp) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n return undefined\n }\n const conds = [...conditions, '
|
|
1
|
+
{"version":3,"file":"resolve-export.d.ts","sourceRoot":"","sources":["../../src/resolve-export.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,mEAqBzB,CAAA","sourcesContent":["export const resolveExport = (\n exp: unknown,\n conditions: string[],\n): string | undefined | null => {\n if (typeof exp === 'string') return exp\n if (typeof exp !== 'object') return undefined\n if (exp === null) return exp\n if (Array.isArray(exp)) {\n for (const e of exp) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n return undefined\n }\n const conds = [...conditions, 'default']\n for (const [c, e] of Object.entries(exp)) {\n if (conds.includes(c)) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n }\n}\n"]}
|
|
@@ -13,7 +13,7 @@ export const resolveExport = (exp, conditions) => {
|
|
|
13
13
|
}
|
|
14
14
|
return undefined;
|
|
15
15
|
}
|
|
16
|
-
const conds = [...conditions, '
|
|
16
|
+
const conds = [...conditions, 'default'];
|
|
17
17
|
for (const [c, e] of Object.entries(exp)) {
|
|
18
18
|
if (conds.includes(c)) {
|
|
19
19
|
const u = resolveExport(e, conditions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-export.js","sourceRoot":"","sources":["../../src/resolve-export.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAY,EACZ,UAAoB,EACO,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC7C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"resolve-export.js","sourceRoot":"","sources":["../../src/resolve-export.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAY,EACZ,UAAoB,EACO,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC7C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,EAAE,SAAS,CAAC,CAAA;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;AAAA,CACF,CAAA","sourcesContent":["export const resolveExport = (\n exp: unknown,\n conditions: string[],\n): string | undefined | null => {\n if (typeof exp === 'string') return exp\n if (typeof exp !== 'object') return undefined\n if (exp === null) return exp\n if (Array.isArray(exp)) {\n for (const e of exp) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n return undefined\n }\n const conds = [...conditions, 'default']\n for (const [c, e] of Object.entries(exp)) {\n if (conds.includes(c)) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"","sourcesContent":["import chalk from 'chalk'\nimport { mkdirpSync } from 'mkdirp'\nimport {\n existsSync,\n readdirSync,\n unlinkSync,\n writeFileSync,\n} from 'node:fs'\nimport { resolve } from 'node:path'\nimport { join } from 'node:path/posix'\nimport * as console from './console.js'\n\n// the commonjs build needs to exclude anything that will be polyfilled\nimport config from './config.js'\nimport polyfills from './polyfills.js'\nimport preventVerbatimModuleSyntax from './prevent-verbatim-module-syntax.js'\nimport readTypescriptConfig from './read-typescript-config.js'\n\nconst {\n dialects = ['esm', 'commonjs'],\n esmDialects = [],\n commonjsDialects = [],\n exclude = [],\n} = config\n\nconst relativeExclude = exclude.map(e => `../${e.replace(/^\\.\\//, '')}`)\n\nconst recommended: Record<string, unknown> = {\n compilerOptions: {\n types: ['node'],\n rootDir: './',\n declaration: true,\n declarationMap: true,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n inlineSources: true,\n jsx: 'react',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n noUncheckedIndexedAccess: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n sourceMap: true,\n strict: true,\n target: 'es2022',\n },\n}\n\nconst build = (): Record<string, unknown> => ({\n extends:\n config.project === undefined ?\n '../tsconfig.json'\n : join('..', config.project),\n compilerOptions: {\n target:\n readTypescriptConfig().compilerOptions.target === undefined ?\n 'es2022'\n : undefined,\n rootDir: '../src',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n },\n})\n\nconst commonjs = (dialect: string): Record<string, unknown> => {\n const exclude = [\n ...relativeExclude,\n '../src/**/*.mts',\n '../src/package.json',\n ]\n for (const
|
|
1
|
+
{"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"","sourcesContent":["import chalk from 'chalk'\nimport { mkdirpSync } from 'mkdirp'\nimport {\n existsSync,\n readdirSync,\n unlinkSync,\n writeFileSync,\n} from 'node:fs'\nimport { resolve } from 'node:path'\nimport { join } from 'node:path/posix'\nimport * as console from './console.js'\n\n// the commonjs build needs to exclude anything that will be polyfilled\nimport config from './config.js'\nimport polyfills from './polyfills.js'\nimport preventVerbatimModuleSyntax from './prevent-verbatim-module-syntax.js'\nimport readTypescriptConfig from './read-typescript-config.js'\n\nconst {\n dialects = ['esm', 'commonjs'],\n esmDialects = [],\n commonjsDialects = [],\n exclude = [],\n} = config\n\nconst relativeExclude = exclude.map(e => `../${e.replace(/^\\.\\//, '')}`)\n\nconst recommended: Record<string, unknown> = {\n compilerOptions: {\n types: ['node'],\n rootDir: './',\n declaration: true,\n declarationMap: true,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n inlineSources: true,\n jsx: 'react',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n noUncheckedIndexedAccess: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n sourceMap: true,\n strict: true,\n target: 'es2022',\n },\n}\n\nconst build = (): Record<string, unknown> => ({\n extends:\n config.project === undefined ?\n '../tsconfig.json'\n : join('..', config.project),\n compilerOptions: {\n target:\n readTypescriptConfig().compilerOptions.target === undefined ?\n 'es2022'\n : undefined,\n rootDir: '../src',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n },\n})\n\nconst commonjs = (\n dialect: string,\n dist: string,\n): Record<string, unknown> => {\n const exclude = [\n ...relativeExclude,\n '../src/**/*.mts',\n '../src/package.json',\n ]\n for (const pf of polyfills.values()) {\n if (pf.name === dialect && pf.type === 'commonjs') continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${join(f)}`)\n }\n }\n console.error('excluded:', exclude)\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.cts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir: '../.tshy-build/' + dist,\n },\n }\n}\n\nconst esm = (dialect: string, dist: string): Record<string, unknown> => {\n const exclude: string[] = [...relativeExclude, '../src/package.json']\n for (const pf of polyfills.values()) {\n if (pf.name === dialect && pf.type === 'esm') continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${f.replace(/^\\.\\//, '')}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.mts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir: '../.tshy-build/' + dist,\n },\n }\n}\n\nmkdirpSync('.tshy')\nconst writeConfig = (name: string, data: Record<string, unknown>) =>\n writeFileSync(`.tshy/${name}.json`, JSON.stringify(data, null, 2) + '\\n')\n\nconsole.debug(chalk.cyan.dim('writing tsconfig files...'))\nif (config.project === undefined && !existsSync('tsconfig.json')) {\n console.debug('using recommended tsconfig.json')\n writeConfig('../tsconfig', recommended)\n} else {\n if (dialects.length > 1) preventVerbatimModuleSyntax()\n console.debug('using existing tsconfig.json')\n}\nfor (const f of readdirSync('.tshy')) {\n unlinkSync(resolve('.tshy', f))\n}\nwriteConfig('build', build())\nif (dialects.includes('commonjs')) {\n writeConfig('commonjs', commonjs('cjs', 'commonjs'))\n for (const d of commonjsDialects) {\n writeConfig(`commonjs-${d}`, commonjs(d, `commonjs/${d}`))\n }\n}\nif (dialects.includes('esm')) {\n writeConfig('esm', esm('esm', 'esm'))\n for (const d of esmDialects) {\n writeConfig(`esm-${d}`, esm(d, `esm/${d}`))\n }\n}\n"]}
|
package/dist/esm/tsconfig.js
CHANGED
|
@@ -44,19 +44,20 @@ const build = () => ({
|
|
|
44
44
|
moduleResolution: 'nodenext',
|
|
45
45
|
},
|
|
46
46
|
});
|
|
47
|
-
const commonjs = (dialect) => {
|
|
47
|
+
const commonjs = (dialect, dist) => {
|
|
48
48
|
const exclude = [
|
|
49
49
|
...relativeExclude,
|
|
50
50
|
'../src/**/*.mts',
|
|
51
51
|
'../src/package.json',
|
|
52
52
|
];
|
|
53
|
-
for (const
|
|
54
|
-
if (
|
|
53
|
+
for (const pf of polyfills.values()) {
|
|
54
|
+
if (pf.name === dialect && pf.type === 'commonjs')
|
|
55
55
|
continue;
|
|
56
56
|
for (const f of pf.map.keys()) {
|
|
57
57
|
exclude.push(`../${join(f)}`);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
+
console.error('excluded:', exclude);
|
|
60
61
|
return {
|
|
61
62
|
extends: './build.json',
|
|
62
63
|
include: [
|
|
@@ -67,14 +68,14 @@ const commonjs = (dialect) => {
|
|
|
67
68
|
],
|
|
68
69
|
exclude,
|
|
69
70
|
compilerOptions: {
|
|
70
|
-
outDir: '../.tshy-build/' +
|
|
71
|
+
outDir: '../.tshy-build/' + dist,
|
|
71
72
|
},
|
|
72
73
|
};
|
|
73
74
|
};
|
|
74
|
-
const esm = (dialect) => {
|
|
75
|
+
const esm = (dialect, dist) => {
|
|
75
76
|
const exclude = [...relativeExclude, '../src/package.json'];
|
|
76
|
-
for (const
|
|
77
|
-
if (
|
|
77
|
+
for (const pf of polyfills.values()) {
|
|
78
|
+
if (pf.name === dialect && pf.type === 'esm')
|
|
78
79
|
continue;
|
|
79
80
|
for (const f of pf.map.keys()) {
|
|
80
81
|
exclude.push(`../${f.replace(/^\.\//, '')}`);
|
|
@@ -90,7 +91,7 @@ const esm = (dialect) => {
|
|
|
90
91
|
],
|
|
91
92
|
exclude,
|
|
92
93
|
compilerOptions: {
|
|
93
|
-
outDir: '../.tshy-build/' +
|
|
94
|
+
outDir: '../.tshy-build/' + dist,
|
|
94
95
|
},
|
|
95
96
|
};
|
|
96
97
|
};
|
|
@@ -111,15 +112,15 @@ for (const f of readdirSync('.tshy')) {
|
|
|
111
112
|
}
|
|
112
113
|
writeConfig('build', build());
|
|
113
114
|
if (dialects.includes('commonjs')) {
|
|
114
|
-
writeConfig('commonjs', commonjs('cjs'));
|
|
115
|
+
writeConfig('commonjs', commonjs('cjs', 'commonjs'));
|
|
115
116
|
for (const d of commonjsDialects) {
|
|
116
|
-
writeConfig(d
|
|
117
|
+
writeConfig(`commonjs-${d}`, commonjs(d, `commonjs/${d}`));
|
|
117
118
|
}
|
|
118
119
|
}
|
|
119
120
|
if (dialects.includes('esm')) {
|
|
120
|
-
writeConfig('esm', esm('esm'));
|
|
121
|
+
writeConfig('esm', esm('esm', 'esm'));
|
|
121
122
|
for (const d of esmDialects) {
|
|
122
|
-
writeConfig(d
|
|
123
|
+
writeConfig(`esm-${d}`, esm(d, `esm/${d}`));
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
//# sourceMappingURL=tsconfig.js.map
|
package/dist/esm/tsconfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,uEAAuE;AACvE,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,2BAA2B,MAAM,qCAAqC,CAAA;AAC7E,OAAO,oBAAoB,MAAM,6BAA6B,CAAA;AAE9D,MAAM,EACJ,QAAQ,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,EAC9B,WAAW,GAAG,EAAE,EAChB,gBAAgB,GAAG,EAAE,EACrB,OAAO,GAAG,EAAE,GACb,GAAG,MAAM,CAAA;AAEV,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;AAExE,MAAM,WAAW,GAA4B;IAC3C,eAAe,EAAE;QACf,KAAK,EAAE,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,gCAAgC,EAAE,IAAI;QACtC,aAAa,EAAE,IAAI;QACnB,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,UAAU;QAClB,gBAAgB,EAAE,UAAU;QAC5B,wBAAwB,EAAE,IAAI;QAC9B,iBAAiB,EAAE,IAAI;QACvB,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,QAAQ;KACjB;CACF,CAAA;AAED,MAAM,KAAK,GAAG,GAA4B,EAAE,CAAC,CAAC;IAC5C,OAAO,EACL,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;QAC5B,kBAAkB;QACpB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;IAC9B,eAAe,EAAE;QACf,MAAM,EACJ,oBAAoB,EAAE,CAAC,eAAe,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;YAC3D,QAAQ;YACV,CAAC,CAAC,SAAS;QACb,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,UAAU;QAClB,gBAAgB,EAAE,UAAU;KAC7B;CACF,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk'\nimport { mkdirpSync } from 'mkdirp'\nimport {\n existsSync,\n readdirSync,\n unlinkSync,\n writeFileSync,\n} from 'node:fs'\nimport { resolve } from 'node:path'\nimport { join } from 'node:path/posix'\nimport * as console from './console.js'\n\n// the commonjs build needs to exclude anything that will be polyfilled\nimport config from './config.js'\nimport polyfills from './polyfills.js'\nimport preventVerbatimModuleSyntax from './prevent-verbatim-module-syntax.js'\nimport readTypescriptConfig from './read-typescript-config.js'\n\nconst {\n dialects = ['esm', 'commonjs'],\n esmDialects = [],\n commonjsDialects = [],\n exclude = [],\n} = config\n\nconst relativeExclude = exclude.map(e => `../${e.replace(/^\\.\\//, '')}`)\n\nconst recommended: Record<string, unknown> = {\n compilerOptions: {\n types: ['node'],\n rootDir: './',\n declaration: true,\n declarationMap: true,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n inlineSources: true,\n jsx: 'react',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n noUncheckedIndexedAccess: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n sourceMap: true,\n strict: true,\n target: 'es2022',\n },\n}\n\nconst build = (): Record<string, unknown> => ({\n extends:\n config.project === undefined ?\n '../tsconfig.json'\n : join('..', config.project),\n compilerOptions: {\n target:\n readTypescriptConfig().compilerOptions.target === undefined ?\n 'es2022'\n : undefined,\n rootDir: '../src',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n },\n})\n\nconst commonjs = (\n dialect: string,\n dist: string,\n): Record<string, unknown> => {\n const exclude = [\n ...relativeExclude,\n '../src/**/*.mts',\n '../src/package.json',\n ]\n for (const pf of polyfills.values()) {\n if (pf.name === dialect && pf.type === 'commonjs') continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${join(f)}`)\n }\n }\n console.error('excluded:', exclude)\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.cts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir: '../.tshy-build/' + dist,\n },\n }\n}\n\nconst esm = (dialect: string, dist: string): Record<string, unknown> => {\n const exclude: string[] = [...relativeExclude, '../src/package.json']\n for (const pf of polyfills.values()) {\n if (pf.name === dialect && pf.type === 'esm') continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${f.replace(/^\\.\\//, '')}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.mts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir: '../.tshy-build/' + dist,\n },\n }\n}\n\nmkdirpSync('.tshy')\nconst writeConfig = (name: string, data: Record<string, unknown>) =>\n writeFileSync(`.tshy/${name}.json`, JSON.stringify(data, null, 2) + '\\n')\n\nconsole.debug(chalk.cyan.dim('writing tsconfig files...'))\nif (config.project === undefined && !existsSync('tsconfig.json')) {\n console.debug('using recommended tsconfig.json')\n writeConfig('../tsconfig', recommended)\n} else {\n if (dialects.length > 1) preventVerbatimModuleSyntax()\n console.debug('using existing tsconfig.json')\n}\nfor (const f of readdirSync('.tshy')) {\n unlinkSync(resolve('.tshy', f))\n}\nwriteConfig('build', build())\nif (dialects.includes('commonjs')) {\n writeConfig('commonjs', commonjs('cjs', 'commonjs'))\n for (const d of commonjsDialects) {\n writeConfig(`commonjs-${d}`, commonjs(d, `commonjs/${d}`))\n }\n}\nif (dialects.includes('esm')) {\n writeConfig('esm', esm('esm', 'esm'))\n for (const d of esmDialects) {\n writeConfig(`esm-${d}`, esm(d, `esm/${d}`))\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-extra-dialects.d.ts","sourceRoot":"","sources":["../../src/valid-extra-dialects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"valid-extra-dialects.d.ts","sourceRoot":"","sources":["../../src/valid-extra-dialects.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;;AAmD5C,wBAqCC","sourcesContent":["// validate esmDialects and commonjsDialects\nimport { readdirSync } from 'node:fs'\nimport fail from './fail.js'\nimport type { TshyConfig } from './types.js'\n\nconst arrayOverlap = (\n a: string[] | undefined,\n b: string[] | undefined,\n): string | false => {\n if (!a || !b) return false\n for (const av of a) {\n if (b.includes(av)) return av\n }\n return false\n}\n\nconst validExtraDialectSet = (\n e: string[],\n which: 'commonjs' | 'esm' | 'source',\n) => {\n const srcContents = readdirSync('src')\n\n for (const d of e) {\n if (typeof d !== 'string') {\n fail(`tshy.${which}Dialects must be an array of strings, got: ${d}`)\n return process.exit(1)\n }\n if (srcContents.includes(d)) {\n fail(\n `tshy.${which}Dialects contains a src entry, not allowed: '${d}'`,\n )\n return process.exit(1)\n }\n if (d.includes('/') || d.includes('\\\\')) {\n fail(`tshy.${which}Dialects entries may not contain slashes: '${d}'`)\n return process.exit(1)\n }\n if (\n d === 'commonjs' ||\n d === 'cjs' ||\n d === 'esm' ||\n d === 'require' ||\n d === 'import' ||\n d === 'source' ||\n d === 'types' ||\n d === 'default'\n ) {\n fail(`tshy.${which}Dialects must not contain '${d}'`)\n return process.exit(1)\n }\n }\n return true\n}\n\nexport default ({\n commonjsDialects,\n esmDialects,\n sourceDialects,\n}: TshyConfig) => {\n if (\n commonjsDialects === undefined &&\n esmDialects === undefined &&\n sourceDialects === undefined\n ) {\n return true\n }\n if (\n commonjsDialects &&\n !validExtraDialectSet(commonjsDialects, 'commonjs')\n ) {\n return false\n }\n if (esmDialects && !validExtraDialectSet(esmDialects, 'esm')) {\n return false\n }\n if (sourceDialects && !validExtraDialectSet(sourceDialects, 'source')) {\n return false\n }\n const srcCjs = arrayOverlap(sourceDialects, commonjsDialects)\n if (srcCjs) {\n fail(\n `tshy.commonjsDialects overlap with tshy.sourceDialects: ${srcCjs}`,\n )\n return process.exit(1)\n }\n const srcEsm = arrayOverlap(sourceDialects, esmDialects)\n if (srcEsm) {\n fail(`tshy.esmDialects overlap with tshy.sourceDialects: ${srcEsm}`)\n return process.exit(1)\n }\n return true\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// validate esmDialects and commonjsDialects
|
|
2
|
+
import { readdirSync } from 'node:fs';
|
|
2
3
|
import fail from './fail.js';
|
|
3
4
|
const arrayOverlap = (a, b) => {
|
|
4
5
|
if (!a || !b)
|
|
@@ -10,9 +11,18 @@ const arrayOverlap = (a, b) => {
|
|
|
10
11
|
return false;
|
|
11
12
|
};
|
|
12
13
|
const validExtraDialectSet = (e, which) => {
|
|
14
|
+
const srcContents = readdirSync('src');
|
|
13
15
|
for (const d of e) {
|
|
14
16
|
if (typeof d !== 'string') {
|
|
15
|
-
fail(
|
|
17
|
+
fail(`tshy.${which}Dialects must be an array of strings, got: ${d}`);
|
|
18
|
+
return process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
if (srcContents.includes(d)) {
|
|
21
|
+
fail(`tshy.${which}Dialects contains a src entry, not allowed: '${d}'`);
|
|
22
|
+
return process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
if (d.includes('/') || d.includes('\\')) {
|
|
25
|
+
fail(`tshy.${which}Dialects entries may not contain slashes: '${d}'`);
|
|
16
26
|
return process.exit(1);
|
|
17
27
|
}
|
|
18
28
|
if (d === 'commonjs' ||
|
|
@@ -20,10 +30,10 @@ const validExtraDialectSet = (e, which) => {
|
|
|
20
30
|
d === 'esm' ||
|
|
21
31
|
d === 'require' ||
|
|
22
32
|
d === 'import' ||
|
|
23
|
-
d === 'node' ||
|
|
24
33
|
d === 'source' ||
|
|
34
|
+
d === 'types' ||
|
|
25
35
|
d === 'default') {
|
|
26
|
-
fail(`tshy.${which}Dialects must not contain ${
|
|
36
|
+
fail(`tshy.${which}Dialects must not contain '${d}'`);
|
|
27
37
|
return process.exit(1);
|
|
28
38
|
}
|
|
29
39
|
}
|
|
@@ -45,20 +55,14 @@ export default ({ commonjsDialects, esmDialects, sourceDialects, }) => {
|
|
|
45
55
|
if (sourceDialects && !validExtraDialectSet(sourceDialects, 'source')) {
|
|
46
56
|
return false;
|
|
47
57
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
['esmDialects', 'sourceDialects', esmDialects, sourceDialects],
|
|
57
|
-
]) {
|
|
58
|
-
const overlap = arrayOverlap(a, b);
|
|
59
|
-
if (!overlap)
|
|
60
|
-
continue;
|
|
61
|
-
fail(`${aname} and ${bname} must be unique, found ${overlap} in both lists`);
|
|
58
|
+
const srcCjs = arrayOverlap(sourceDialects, commonjsDialects);
|
|
59
|
+
if (srcCjs) {
|
|
60
|
+
fail(`tshy.commonjsDialects overlap with tshy.sourceDialects: ${srcCjs}`);
|
|
61
|
+
return process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
const srcEsm = arrayOverlap(sourceDialects, esmDialects);
|
|
64
|
+
if (srcEsm) {
|
|
65
|
+
fail(`tshy.esmDialects overlap with tshy.sourceDialects: ${srcEsm}`);
|
|
62
66
|
return process.exit(1);
|
|
63
67
|
}
|
|
64
68
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-extra-dialects.js","sourceRoot":"","sources":["../../src/valid-extra-dialects.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,MAAM,YAAY,GAAG,CACnB,CAAuB,EACvB,CAAuB,EACP,EAAE,CAAC;IACnB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1B,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,KAAK,CAAA;AAAA,CACb,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC3B,CAAW,EACX,KAAoC,EACpC,EAAE,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"valid-extra-dialects.js","sourceRoot":"","sources":["../../src/valid-extra-dialects.ts"],"names":[],"mappings":"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","sourcesContent":["// validate esmDialects and commonjsDialects\nimport { readdirSync } from 'node:fs'\nimport fail from './fail.js'\nimport type { TshyConfig } from './types.js'\n\nconst arrayOverlap = (\n a: string[] | undefined,\n b: string[] | undefined,\n): string | false => {\n if (!a || !b) return false\n for (const av of a) {\n if (b.includes(av)) return av\n }\n return false\n}\n\nconst validExtraDialectSet = (\n e: string[],\n which: 'commonjs' | 'esm' | 'source',\n) => {\n const srcContents = readdirSync('src')\n\n for (const d of e) {\n if (typeof d !== 'string') {\n fail(`tshy.${which}Dialects must be an array of strings, got: ${d}`)\n return process.exit(1)\n }\n if (srcContents.includes(d)) {\n fail(\n `tshy.${which}Dialects contains a src entry, not allowed: '${d}'`,\n )\n return process.exit(1)\n }\n if (d.includes('/') || d.includes('\\\\')) {\n fail(`tshy.${which}Dialects entries may not contain slashes: '${d}'`)\n return process.exit(1)\n }\n if (\n d === 'commonjs' ||\n d === 'cjs' ||\n d === 'esm' ||\n d === 'require' ||\n d === 'import' ||\n d === 'source' ||\n d === 'types' ||\n d === 'default'\n ) {\n fail(`tshy.${which}Dialects must not contain '${d}'`)\n return process.exit(1)\n }\n }\n return true\n}\n\nexport default ({\n commonjsDialects,\n esmDialects,\n sourceDialects,\n}: TshyConfig) => {\n if (\n commonjsDialects === undefined &&\n esmDialects === undefined &&\n sourceDialects === undefined\n ) {\n return true\n }\n if (\n commonjsDialects &&\n !validExtraDialectSet(commonjsDialects, 'commonjs')\n ) {\n return false\n }\n if (esmDialects && !validExtraDialectSet(esmDialects, 'esm')) {\n return false\n }\n if (sourceDialects && !validExtraDialectSet(sourceDialects, 'source')) {\n return false\n }\n const srcCjs = arrayOverlap(sourceDialects, commonjsDialects)\n if (srcCjs) {\n fail(\n `tshy.commonjsDialects overlap with tshy.sourceDialects: ${srcCjs}`,\n )\n return process.exit(1)\n }\n const srcEsm = arrayOverlap(sourceDialects, esmDialects)\n if (srcEsm) {\n fail(`tshy.esmDialects overlap with tshy.sourceDialects: ${srcEsm}`)\n return process.exit(1)\n }\n return true\n}\n"]}
|
package/package.json
CHANGED