@wyw-in-js/transform 1.0.6 → 1.0.8

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.
Files changed (98) hide show
  1. package/esm/cache.js +160 -12
  2. package/esm/cache.js.map +1 -1
  3. package/esm/debug/fileReporter.js.map +1 -1
  4. package/esm/module.js +59 -5
  5. package/esm/module.js.map +1 -1
  6. package/esm/plugins/shaker.js +152 -13
  7. package/esm/plugins/shaker.js.map +1 -1
  8. package/esm/shaker.js +51 -23
  9. package/esm/shaker.js.map +1 -1
  10. package/esm/transform/BaseEntrypoint.js +3 -1
  11. package/esm/transform/BaseEntrypoint.js.map +1 -1
  12. package/esm/transform/Entrypoint.js +68 -20
  13. package/esm/transform/Entrypoint.js.map +1 -1
  14. package/esm/transform/EvaluatedEntrypoint.js.map +1 -1
  15. package/esm/transform/actions/BaseAction.js +2 -1
  16. package/esm/transform/actions/BaseAction.js.map +1 -1
  17. package/esm/transform/actions/actionRunner.js +2 -2
  18. package/esm/transform/actions/actionRunner.js.map +1 -1
  19. package/esm/transform/barrelManifest.js +291 -0
  20. package/esm/transform/barrelManifest.js.map +1 -0
  21. package/esm/transform/generators/getExports.js +5 -0
  22. package/esm/transform/generators/getExports.js.map +1 -1
  23. package/esm/transform/generators/processEntrypoint.js +31 -1
  24. package/esm/transform/generators/processEntrypoint.js.map +1 -1
  25. package/esm/transform/generators/resolveImports.js +29 -5
  26. package/esm/transform/generators/resolveImports.js.map +1 -1
  27. package/esm/transform/generators/rewriteBarrelImports.js +733 -0
  28. package/esm/transform/generators/rewriteBarrelImports.js.map +1 -0
  29. package/esm/transform/generators/transform.js +154 -21
  30. package/esm/transform/generators/transform.js.map +1 -1
  31. package/esm/transform/types.js.map +1 -1
  32. package/esm/transform.js +45 -23
  33. package/esm/transform.js.map +1 -1
  34. package/esm/utils/collectTemplateDependencies.js +9 -0
  35. package/esm/utils/collectTemplateDependencies.js.map +1 -1
  36. package/lib/cache.js +163 -12
  37. package/lib/cache.js.map +1 -1
  38. package/lib/debug/fileReporter.js.map +1 -1
  39. package/lib/module.js +61 -7
  40. package/lib/module.js.map +1 -1
  41. package/lib/plugins/shaker.js +152 -13
  42. package/lib/plugins/shaker.js.map +1 -1
  43. package/lib/shaker.js +58 -26
  44. package/lib/shaker.js.map +1 -1
  45. package/lib/transform/BaseEntrypoint.js +3 -1
  46. package/lib/transform/BaseEntrypoint.js.map +1 -1
  47. package/lib/transform/Entrypoint.js +69 -20
  48. package/lib/transform/Entrypoint.js.map +1 -1
  49. package/lib/transform/EvaluatedEntrypoint.js.map +1 -1
  50. package/lib/transform/actions/BaseAction.js +2 -1
  51. package/lib/transform/actions/BaseAction.js.map +1 -1
  52. package/lib/transform/actions/actionRunner.js +2 -2
  53. package/lib/transform/actions/actionRunner.js.map +1 -1
  54. package/lib/transform/barrelManifest.js +300 -0
  55. package/lib/transform/barrelManifest.js.map +1 -0
  56. package/lib/transform/generators/getExports.js +5 -0
  57. package/lib/transform/generators/getExports.js.map +1 -1
  58. package/lib/transform/generators/processEntrypoint.js +31 -1
  59. package/lib/transform/generators/processEntrypoint.js.map +1 -1
  60. package/lib/transform/generators/resolveImports.js +29 -5
  61. package/lib/transform/generators/resolveImports.js.map +1 -1
  62. package/lib/transform/generators/rewriteBarrelImports.js +743 -0
  63. package/lib/transform/generators/rewriteBarrelImports.js.map +1 -0
  64. package/lib/transform/generators/transform.js +158 -22
  65. package/lib/transform/generators/transform.js.map +1 -1
  66. package/lib/transform/types.js.map +1 -1
  67. package/lib/transform.js +45 -23
  68. package/lib/transform.js.map +1 -1
  69. package/lib/utils/collectTemplateDependencies.js +9 -0
  70. package/lib/utils/collectTemplateDependencies.js.map +1 -1
  71. package/package.json +8 -4
  72. package/types/cache.d.ts +23 -2
  73. package/types/cache.js +170 -10
  74. package/types/debug/fileReporter.d.ts +1 -0
  75. package/types/module.d.ts +3 -0
  76. package/types/module.js +65 -5
  77. package/types/plugins/shaker.js +161 -16
  78. package/types/shaker.d.ts +10 -1
  79. package/types/shaker.js +56 -28
  80. package/types/transform/BaseEntrypoint.d.ts +3 -1
  81. package/types/transform/BaseEntrypoint.js +5 -1
  82. package/types/transform/Entrypoint.d.ts +10 -1
  83. package/types/transform/Entrypoint.js +81 -23
  84. package/types/transform/EvaluatedEntrypoint.d.ts +2 -0
  85. package/types/transform/actions/BaseAction.d.ts +2 -1
  86. package/types/transform/actions/BaseAction.js +3 -1
  87. package/types/transform/actions/actionRunner.js +2 -2
  88. package/types/transform/barrelManifest.d.ts +42 -0
  89. package/types/transform/barrelManifest.js +300 -0
  90. package/types/transform/generators/getExports.js +5 -0
  91. package/types/transform/generators/processEntrypoint.js +29 -1
  92. package/types/transform/generators/resolveImports.js +29 -5
  93. package/types/transform/generators/rewriteBarrelImports.d.ts +15 -0
  94. package/types/transform/generators/rewriteBarrelImports.js +815 -0
  95. package/types/transform/generators/transform.js +148 -19
  96. package/types/transform/types.d.ts +3 -0
  97. package/types/transform.js +47 -23
  98. package/types/utils/collectTemplateDependencies.js +9 -0
@@ -1 +1 @@
1
- {"version":3,"file":"resolveImports.js","names":["_getFileIdx","require","_Entrypoint","_importOverrides","applyImportOverrides","services","entrypoint","resolvedImports","overrides","options","pluginOptions","importOverrides","Object","keys","length","root","importer","name","stack","getStack","map","dependency","key","toImportKey","source","resolved","override","getImportOverride","nextOnly","applyImportOverrideToOnly","only","nextResolved","mock","resolveMockSpecifier","emitDependency","emitter","imports","single","type","file","from","what","fileIdx","getFileIdx","filterUnresolved","filter","i","log","syncResolveImports","resolve","_imports$entries","data","eventEmitter","listOfImports","Array","entries","err","overriddenImports","filteredImports","asyncResolveImports","_imports$entries2","getResolveTask","Promise","all","importsOnly","cached","getDependency","mergeOnly","task","newTask","then","res","isSuperSet","merged","addResolveTask","resolveTask"],"sources":["../../../src/transform/generators/resolveImports.ts"],"sourcesContent":["/* eslint-disable no-continue,no-await-in-loop,require-yield */\nimport { getFileIdx } from '../../utils/getFileIdx';\nimport type { Entrypoint } from '../Entrypoint';\nimport { getStack, isSuperSet, mergeOnly } from '../Entrypoint.helpers';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport {\n applyImportOverrideToOnly,\n getImportOverride,\n resolveMockSpecifier,\n toImportKey,\n} from '../../utils/importOverrides';\nimport type {\n AsyncScenarioForAction,\n IResolveImportsAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nfunction applyImportOverrides(\n services: Services,\n entrypoint: Entrypoint,\n resolvedImports: IEntrypointDependency[]\n): IEntrypointDependency[] {\n const overrides = services.options.pluginOptions.importOverrides;\n if (!overrides || Object.keys(overrides).length === 0) {\n return resolvedImports;\n }\n\n const { root } = services.options;\n const importer = entrypoint.name;\n const stack = getStack(entrypoint);\n\n return resolvedImports.map((dependency) => {\n const { key } = toImportKey({\n source: dependency.source,\n resolved: dependency.resolved,\n root,\n });\n const override = getImportOverride(overrides, key);\n if (!override) {\n return dependency;\n }\n\n const nextOnly = applyImportOverrideToOnly(dependency.only, override);\n const nextResolved = override.mock\n ? resolveMockSpecifier({\n mock: override.mock,\n importer,\n root,\n stack,\n })\n : dependency.resolved;\n\n return {\n ...dependency,\n only: nextOnly,\n resolved: nextResolved,\n };\n });\n}\n\nfunction emitDependency(\n emitter: Services['eventEmitter'],\n entrypoint: IResolveImportsAction['entrypoint'],\n imports: IEntrypointDependency[]\n) {\n emitter.single({\n type: 'dependency',\n file: entrypoint.name,\n only: entrypoint.only,\n imports: imports.map(({ resolved, only }) => ({\n from: resolved,\n what: only,\n })),\n fileIdx: getFileIdx(entrypoint.name),\n });\n}\n\nfunction filterUnresolved(\n entrypoint: Entrypoint,\n resolvedImports: IEntrypointDependency[]\n): IEntrypointDependency[] {\n return resolvedImports.filter((i): i is IEntrypointDependency => {\n if (i.resolved === null) {\n entrypoint.log(\n `[resolve] ✅ %s in %s is ignored`,\n i.source,\n entrypoint.name\n );\n return false;\n }\n\n return true;\n });\n}\n\n/**\n * Synchronously resolves specified imports with a provided resolver.\n */\nexport function* syncResolveImports(\n this: IResolveImportsAction,\n resolve: (what: string, importer: string, stack: string[]) => string\n): SyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, []);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n const resolvedImports = listOfImports.map(([source, only]) => {\n let resolved: string | null = null;\n try {\n resolved = resolve(source, entrypoint.name, getStack(entrypoint));\n log('[sync-resolve] ✅ %s -> %s (only: %o)', source, resolved, only);\n } catch (err) {\n log('[sync-resolve] ❌ cannot resolve %s: %O', source, err);\n }\n\n return {\n source,\n only,\n resolved,\n };\n });\n\n const overriddenImports = applyImportOverrides(\n this.services,\n entrypoint,\n resolvedImports\n );\n const filteredImports = filterUnresolved(entrypoint, overriddenImports);\n emitDependency(eventEmitter, entrypoint, filteredImports);\n\n return filteredImports;\n}\n\n/**\n * Asynchronously resolves specified imports with a provided resolver.\n */\nexport async function* asyncResolveImports(\n this: IResolveImportsAction,\n resolve: (\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>\n): AsyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, []);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n log('resolving %d imports', listOfImports.length);\n\n const getResolveTask = async (\n source: string,\n only: string[]\n ): Promise<IEntrypointDependency> => {\n let resolved: string | null = null;\n try {\n resolved = await resolve(source, entrypoint.name, getStack(entrypoint));\n } catch (err) {\n log(\n '[async-resolve] ❌ cannot resolve %s in %s: %O',\n source,\n entrypoint.name,\n err\n );\n }\n\n if (resolved !== null) {\n log(\n '[async-resolve] ✅ %s (%o) in %s -> %s',\n source,\n only,\n entrypoint.name,\n resolved\n );\n }\n\n return {\n source,\n only,\n resolved,\n };\n };\n\n const resolvedImports = await Promise.all<IEntrypointDependency>(\n listOfImports.map(([source, importsOnly]) => {\n const cached = entrypoint.getDependency(source);\n if (cached) {\n return {\n source,\n only: mergeOnly(cached.only, importsOnly),\n resolved: cached.resolved,\n };\n }\n\n const task = entrypoint.getResolveTask(source);\n if (task) {\n // If we have cached task, we need to merge only…\n const newTask = task.then((res) => {\n if (isSuperSet(res.only, importsOnly)) {\n return res;\n }\n\n // Is this branch even possible?\n const merged = mergeOnly(res.only, importsOnly);\n\n log('merging imports %o and %o: %o', importsOnly, res.only, merged);\n\n return { ...res, only: merged };\n });\n\n // … and update the cache\n entrypoint.addResolveTask(source, newTask);\n return newTask;\n }\n\n const resolveTask = getResolveTask(source, importsOnly);\n\n entrypoint.addResolveTask(source, resolveTask);\n\n return resolveTask;\n })\n );\n\n log('resolved %d imports', resolvedImports.length);\n\n const overriddenImports = applyImportOverrides(\n this.services,\n entrypoint,\n resolvedImports\n );\n const filteredImports = filterUnresolved(entrypoint, overriddenImports);\n emitDependency(eventEmitter, entrypoint, filteredImports);\n return filteredImports;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"resolveImports.js","names":["_getFileIdx","require","_Entrypoint","_importOverrides","applyImportOverrides","services","entrypoint","resolvedImports","overrides","options","pluginOptions","importOverrides","Object","keys","length","root","importer","name","stack","getStack","map","dependency","key","toImportKey","source","resolved","override","getImportOverride","nextOnly","applyImportOverrideToOnly","only","nextResolved","mock","resolveMockSpecifier","emitDependency","emitter","imports","phase","single","type","file","from","what","fileIdx","getFileIdx","filterUnresolved","filter","i","log","getPreResolvedImports","preResolved","Map","syncResolveImports","resolve","_imports$entries","data","eventEmitter","listOfImports","Array","entries","preResolvedImports","get","mergedOnly","mergeOnly","err","overriddenImports","filteredImports","asyncResolveImports","_imports$entries2","getResolveTask","Promise","all","importsOnly","cached","getDependency","task","newTask","then","res","isSuperSet","merged","addResolveTask","resolveTask"],"sources":["../../../src/transform/generators/resolveImports.ts"],"sourcesContent":["/* eslint-disable no-continue,no-await-in-loop,require-yield */\nimport { getFileIdx } from '../../utils/getFileIdx';\nimport type { Entrypoint } from '../Entrypoint';\nimport { getStack, isSuperSet, mergeOnly } from '../Entrypoint.helpers';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport {\n applyImportOverrideToOnly,\n getImportOverride,\n resolveMockSpecifier,\n toImportKey,\n} from '../../utils/importOverrides';\nimport type {\n AsyncScenarioForAction,\n IResolveImportsAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nfunction applyImportOverrides(\n services: Services,\n entrypoint: Entrypoint,\n resolvedImports: IEntrypointDependency[]\n): IEntrypointDependency[] {\n const overrides = services.options.pluginOptions.importOverrides;\n if (!overrides || Object.keys(overrides).length === 0) {\n return resolvedImports;\n }\n\n const { root } = services.options;\n const importer = entrypoint.name;\n const stack = getStack(entrypoint);\n\n return resolvedImports.map((dependency) => {\n const { key } = toImportKey({\n source: dependency.source,\n resolved: dependency.resolved,\n root,\n });\n const override = getImportOverride(overrides, key);\n if (!override) {\n return dependency;\n }\n\n const nextOnly = applyImportOverrideToOnly(dependency.only, override);\n const nextResolved = override.mock\n ? resolveMockSpecifier({\n mock: override.mock,\n importer,\n root,\n stack,\n })\n : dependency.resolved;\n\n return {\n ...dependency,\n only: nextOnly,\n resolved: nextResolved,\n };\n });\n}\n\nfunction emitDependency(\n emitter: Services['eventEmitter'],\n entrypoint: IResolveImportsAction['entrypoint'],\n imports: IEntrypointDependency[],\n phase?: IResolveImportsAction['data']['phase']\n) {\n emitter.single({\n type: 'dependency',\n file: entrypoint.name,\n only: entrypoint.only,\n phase,\n imports: imports.map(({ resolved, only }) => ({\n from: resolved,\n what: only,\n })),\n fileIdx: getFileIdx(entrypoint.name),\n });\n}\n\nfunction filterUnresolved(\n entrypoint: Entrypoint,\n resolvedImports: IEntrypointDependency[]\n): IEntrypointDependency[] {\n return resolvedImports.filter((i): i is IEntrypointDependency => {\n if (i.resolved === null) {\n entrypoint.log(\n `[resolve] ✅ %s in %s is ignored`,\n i.source,\n entrypoint.name\n );\n return false;\n }\n\n return true;\n });\n}\n\nfunction getPreResolvedImports(\n preResolved: IResolveImportsAction['data']['preResolved']\n): Map<string, IEntrypointDependency> {\n return new Map(\n (preResolved ?? []).map((dependency) => [dependency.source, dependency])\n );\n}\n\n/**\n * Synchronously resolves specified imports with a provided resolver.\n */\nexport function* syncResolveImports(\n this: IResolveImportsAction,\n resolve: (what: string, importer: string, stack: string[]) => string\n): SyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const preResolvedImports = getPreResolvedImports(this.data.preResolved);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, [], this.data.phase);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n const resolvedImports = listOfImports.map(([source, only]) => {\n const preResolved = preResolvedImports.get(source);\n if (preResolved) {\n const mergedOnly = mergeOnly(preResolved.only, only);\n log(\n '[sync-resolve] ♻️ %s -> %s (only: %o)',\n source,\n preResolved.resolved,\n mergedOnly\n );\n return {\n ...preResolved,\n only: mergedOnly,\n };\n }\n\n let resolved: string | null = null;\n try {\n resolved = resolve(source, entrypoint.name, getStack(entrypoint));\n log('[sync-resolve] ✅ %s -> %s (only: %o)', source, resolved, only);\n } catch (err) {\n log('[sync-resolve] ❌ cannot resolve %s: %O', source, err);\n }\n\n return {\n source,\n only,\n resolved,\n };\n });\n\n const overriddenImports = applyImportOverrides(\n this.services,\n entrypoint,\n resolvedImports\n );\n const filteredImports = filterUnresolved(entrypoint, overriddenImports);\n emitDependency(eventEmitter, entrypoint, filteredImports, this.data.phase);\n\n return filteredImports;\n}\n\n/**\n * Asynchronously resolves specified imports with a provided resolver.\n */\nexport async function* asyncResolveImports(\n this: IResolveImportsAction,\n resolve: (\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>\n): AsyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const preResolvedImports = getPreResolvedImports(this.data.preResolved);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, [], this.data.phase);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n log('resolving %d imports', listOfImports.length);\n\n const getResolveTask = async (\n source: string,\n only: string[]\n ): Promise<IEntrypointDependency> => {\n let resolved: string | null = null;\n try {\n resolved = await resolve(source, entrypoint.name, getStack(entrypoint));\n } catch (err) {\n log(\n '[async-resolve] ❌ cannot resolve %s in %s: %O',\n source,\n entrypoint.name,\n err\n );\n }\n\n if (resolved !== null) {\n log(\n '[async-resolve] ✅ %s (%o) in %s -> %s',\n source,\n only,\n entrypoint.name,\n resolved\n );\n }\n\n return {\n source,\n only,\n resolved,\n };\n };\n\n const resolvedImports = await Promise.all<IEntrypointDependency>(\n listOfImports.map(([source, importsOnly]) => {\n const preResolved = preResolvedImports.get(source);\n if (preResolved) {\n const mergedOnly = mergeOnly(preResolved.only, importsOnly);\n log(\n '[async-resolve] ♻️ %s (%o) in %s -> %s',\n source,\n mergedOnly,\n entrypoint.name,\n preResolved.resolved\n );\n return {\n ...preResolved,\n only: mergedOnly,\n };\n }\n\n const cached = entrypoint.getDependency(source);\n if (cached) {\n return {\n source,\n only: mergeOnly(cached.only, importsOnly),\n resolved: cached.resolved,\n };\n }\n\n const task = entrypoint.getResolveTask(source);\n if (task) {\n // If we have cached task, we need to merge only…\n const newTask = task.then((res) => {\n if (isSuperSet(res.only, importsOnly)) {\n return res;\n }\n\n // Is this branch even possible?\n const merged = mergeOnly(res.only, importsOnly);\n\n log('merging imports %o and %o: %o', importsOnly, res.only, merged);\n\n return { ...res, only: merged };\n });\n\n // … and update the cache\n entrypoint.addResolveTask(source, newTask);\n return newTask;\n }\n\n const resolveTask = getResolveTask(source, importsOnly);\n\n entrypoint.addResolveTask(source, resolveTask);\n\n return resolveTask;\n })\n );\n\n log('resolved %d imports', resolvedImports.length);\n\n const overriddenImports = applyImportOverrides(\n this.services,\n entrypoint,\n resolvedImports\n );\n const filteredImports = filterUnresolved(entrypoint, overriddenImports);\n emitDependency(eventEmitter, entrypoint, filteredImports, this.data.phase);\n return filteredImports;\n}\n"],"mappings":"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","ignoreList":[]}