@wyw-in-js/shared 1.1.0 → 2.0.0-alpha.1

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 (79) hide show
  1. package/esm/IVariableContext.js +1 -1
  2. package/esm/IVariableContext.js.map +1 -1
  3. package/esm/asyncResolveFallback.js +35 -31
  4. package/esm/asyncResolveFallback.js.map +1 -1
  5. package/esm/asyncResolverFactory.js +9 -9
  6. package/esm/asyncResolverFactory.js.map +1 -1
  7. package/esm/debugger.js +1 -1
  8. package/esm/debugger.js.map +1 -1
  9. package/esm/findPackageJSON.js +60 -68
  10. package/esm/findPackageJSON.js.map +1 -1
  11. package/esm/hasEvalMeta.js +2 -2
  12. package/esm/hasEvalMeta.js.map +1 -1
  13. package/esm/index.js +11 -10
  14. package/esm/index.js.map +1 -1
  15. package/esm/isBoxedPrimitive.js +4 -5
  16. package/esm/isBoxedPrimitive.js.map +1 -1
  17. package/esm/logger.js +17 -17
  18. package/esm/logger.js.map +1 -1
  19. package/esm/options/isFeatureEnabled.js +22 -27
  20. package/esm/options/isFeatureEnabled.js.map +1 -1
  21. package/esm/options/nativeResolverOptions.js +49 -0
  22. package/esm/options/nativeResolverOptions.js.map +1 -0
  23. package/esm/options/types.js +1 -1
  24. package/esm/options/types.js.map +1 -1
  25. package/esm/slugify.js +47 -49
  26. package/esm/slugify.js.map +1 -1
  27. package/esm/types.js +6 -10
  28. package/esm/types.js.map +1 -1
  29. package/package.json +12 -10
  30. package/types/IVariableContext.js +1 -2
  31. package/types/asyncResolveFallback.js +8 -14
  32. package/types/asyncResolverFactory.js +1 -5
  33. package/types/debugger.js +1 -2
  34. package/types/findPackageJSON.js +13 -17
  35. package/types/hasEvalMeta.js +1 -4
  36. package/types/index.d.ts +4 -2
  37. package/types/index.js +10 -23
  38. package/types/isBoxedPrimitive.js +1 -4
  39. package/types/logger.js +7 -14
  40. package/types/options/isFeatureEnabled.js +3 -7
  41. package/types/options/nativeResolverOptions.d.ts +4 -0
  42. package/types/options/nativeResolverOptions.js +55 -0
  43. package/types/options/types.d.ts +120 -10
  44. package/types/options/types.js +1 -2
  45. package/types/slugify.js +1 -4
  46. package/types/types.d.ts +40 -1
  47. package/types/types.js +2 -5
  48. package/esm/babel.js +0 -2
  49. package/esm/babel.js.map +0 -1
  50. package/lib/IVariableContext.js +0 -2
  51. package/lib/IVariableContext.js.map +0 -1
  52. package/lib/asyncResolveFallback.js +0 -47
  53. package/lib/asyncResolveFallback.js.map +0 -1
  54. package/lib/asyncResolverFactory.js +0 -18
  55. package/lib/asyncResolverFactory.js.map +0 -1
  56. package/lib/babel.js +0 -2
  57. package/lib/babel.js.map +0 -1
  58. package/lib/debugger.js +0 -2
  59. package/lib/debugger.js.map +0 -1
  60. package/lib/findPackageJSON.js +0 -81
  61. package/lib/findPackageJSON.js.map +0 -1
  62. package/lib/hasEvalMeta.js +0 -10
  63. package/lib/hasEvalMeta.js.map +0 -1
  64. package/lib/index.js +0 -81
  65. package/lib/index.js.map +0 -1
  66. package/lib/isBoxedPrimitive.js +0 -15
  67. package/lib/isBoxedPrimitive.js.map +0 -1
  68. package/lib/logger.js +0 -35
  69. package/lib/logger.js.map +0 -1
  70. package/lib/options/isFeatureEnabled.js +0 -37
  71. package/lib/options/isFeatureEnabled.js.map +0 -1
  72. package/lib/options/types.js +0 -2
  73. package/lib/options/types.js.map +0 -1
  74. package/lib/slugify.js +0 -68
  75. package/lib/slugify.js.map +0 -1
  76. package/lib/types.js +0 -16
  77. package/lib/types.js.map +0 -1
  78. package/types/babel.d.ts +0 -2
  79. package/types/babel.js +0 -2
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=IVariableContext.js.map
2
+ //# sourceMappingURL=IVariableContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IVariableContext.js","names":[],"sources":["../src/IVariableContext.ts"],"sourcesContent":["export interface IVariableContext {\n componentName: string;\n componentSlug: string;\n index: number;\n precedingCss: string;\n processor: string;\n source: string;\n unit: string;\n valueSlug: string;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"mappings":"","names":[],"sources":["../src/IVariableContext.ts"],"version":3,"sourcesContent":["export interface IVariableContext {\n componentName: string;\n componentSlug: string;\n index: number;\n precedingCss: string;\n processor: string;\n source: string;\n unit: string;\n valueSlug: string;\n}\n"],"file":"IVariableContext.js"}
@@ -1,38 +1,42 @@
1
- import path from 'path';
1
+ import path from "path";
2
+ import { createRequire } from "module";
3
+ const nodeRequire = createRequire(import.meta.url);
2
4
  const safeResolve = (name, where) => {
3
- try {
4
- return require.resolve(name, {
5
- paths: where
6
- });
7
- } catch (e) {
8
- return e;
9
- }
5
+ try {
6
+ return nodeRequire.resolve(name, { paths: where });
7
+ } catch (e) {
8
+ return e;
9
+ }
10
10
  };
11
- const suffixes = ['.js', '.ts', '.jsx', '.tsx'].reduce((acc, ext) => {
12
- acc.push(`/index${ext}`);
13
- acc.push(ext);
14
- return acc;
11
+ const suffixes = [
12
+ ".js",
13
+ ".ts",
14
+ ".jsx",
15
+ ".tsx"
16
+ ].reduce((acc, ext) => {
17
+ acc.push(`/index${ext}`);
18
+ acc.push(ext);
19
+ return acc;
15
20
  }, []);
16
21
  export const syncResolve = (what, importer, stack) => {
17
- const where = [importer, ...stack].map(p => path.dirname(p));
18
- const resolved = safeResolve(what, where);
19
- if (!(resolved instanceof Error)) {
20
- return resolved;
21
- }
22
-
23
- // eslint-disable-next-line no-restricted-syntax
24
- for (const suffix of suffixes) {
25
- const resolvedWithSuffix = safeResolve(what + suffix, where);
26
- if (resolvedWithSuffix instanceof Error) {
27
- // eslint-disable-next-line no-continue
28
- continue;
29
- }
30
- return resolvedWithSuffix;
31
- }
32
- throw resolved;
22
+ const where = [importer, ...stack].map((p) => path.dirname(p));
23
+ const resolved = safeResolve(what, where);
24
+ if (!(resolved instanceof Error)) {
25
+ return resolved;
26
+ }
27
+ // eslint-disable-next-line no-restricted-syntax
28
+ for (const suffix of suffixes) {
29
+ const resolvedWithSuffix = safeResolve(what + suffix, where);
30
+ if (resolvedWithSuffix instanceof Error) {
31
+ // eslint-disable-next-line no-continue
32
+ continue;
33
+ }
34
+ return resolvedWithSuffix;
35
+ }
36
+ throw resolved;
33
37
  };
34
38
  export const asyncResolveFallback = (what, importer, stack) => {
35
- const resolved = syncResolve(what, importer, stack);
36
- return Promise.resolve(resolved);
39
+ const resolved = syncResolve(what, importer, stack);
40
+ return Promise.resolve(resolved);
37
41
  };
38
- //# sourceMappingURL=asyncResolveFallback.js.map
42
+ //# sourceMappingURL=asyncResolveFallback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asyncResolveFallback.js","names":["path","safeResolve","name","where","require","resolve","paths","e","suffixes","reduce","acc","ext","push","syncResolve","what","importer","stack","map","p","dirname","resolved","Error","suffix","resolvedWithSuffix","asyncResolveFallback","Promise"],"sources":["../src/asyncResolveFallback.ts"],"sourcesContent":["import path from 'path';\n\nconst safeResolve = (name: string, where: string[]): string | Error => {\n try {\n return require.resolve(name, {\n paths: where,\n });\n } catch (e: unknown) {\n return e as Error;\n }\n};\n\nconst suffixes = ['.js', '.ts', '.jsx', '.tsx'].reduce((acc: string[], ext) => {\n acc.push(`/index${ext}`);\n acc.push(ext);\n return acc;\n}, []);\n\nexport const syncResolve = (\n what: string,\n importer: string,\n stack: string[]\n): string => {\n const where = [importer, ...stack].map((p) => path.dirname(p));\n const resolved = safeResolve(what, where);\n if (!(resolved instanceof Error)) {\n return resolved;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const suffix of suffixes) {\n const resolvedWithSuffix = safeResolve(what + suffix, where);\n if (resolvedWithSuffix instanceof Error) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n return resolvedWithSuffix;\n }\n\n throw resolved;\n};\n\nexport const asyncResolveFallback = (\n what: string,\n importer: string,\n stack: string[]\n): Promise<string> => {\n const resolved = syncResolve(what, importer, stack);\n return Promise.resolve(resolved);\n};\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AAEvB,MAAMC,WAAW,GAAGA,CAACC,IAAY,EAAEC,KAAe,KAAqB;EACrE,IAAI;IACF,OAAOC,OAAO,CAACC,OAAO,CAACH,IAAI,EAAE;MAC3BI,KAAK,EAAEH;IACT,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOI,CAAU,EAAE;IACnB,OAAOA,CAAC;EACV;AACF,CAAC;AAED,MAAMC,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAACC,MAAM,CAAC,CAACC,GAAa,EAAEC,GAAG,KAAK;EAC7ED,GAAG,CAACE,IAAI,CAAC,SAASD,GAAG,EAAE,CAAC;EACxBD,GAAG,CAACE,IAAI,CAACD,GAAG,CAAC;EACb,OAAOD,GAAG;AACZ,CAAC,EAAE,EAAE,CAAC;AAEN,OAAO,MAAMG,WAAW,GAAGA,CACzBC,IAAY,EACZC,QAAgB,EAChBC,KAAe,KACJ;EACX,MAAMb,KAAK,GAAG,CAACY,QAAQ,EAAE,GAAGC,KAAK,CAAC,CAACC,GAAG,CAAEC,CAAC,IAAKlB,IAAI,CAACmB,OAAO,CAACD,CAAC,CAAC,CAAC;EAC9D,MAAME,QAAQ,GAAGnB,WAAW,CAACa,IAAI,EAAEX,KAAK,CAAC;EACzC,IAAI,EAAEiB,QAAQ,YAAYC,KAAK,CAAC,EAAE;IAChC,OAAOD,QAAQ;EACjB;;EAEA;EACA,KAAK,MAAME,MAAM,IAAId,QAAQ,EAAE;IAC7B,MAAMe,kBAAkB,GAAGtB,WAAW,CAACa,IAAI,GAAGQ,MAAM,EAAEnB,KAAK,CAAC;IAC5D,IAAIoB,kBAAkB,YAAYF,KAAK,EAAE;MACvC;MACA;IACF;IAEA,OAAOE,kBAAkB;EAC3B;EAEA,MAAMH,QAAQ;AAChB,CAAC;AAED,OAAO,MAAMI,oBAAoB,GAAGA,CAClCV,IAAY,EACZC,QAAgB,EAChBC,KAAe,KACK;EACpB,MAAMI,QAAQ,GAAGP,WAAW,CAACC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,CAAC;EACnD,OAAOS,OAAO,CAACpB,OAAO,CAACe,QAAQ,CAAC;AAClC,CAAC","ignoreList":[]}
1
+ {"mappings":"AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAE9B,MAAM,cAAc,cAAc,OAAO,KAAK,IAAI;AAElD,MAAM,eAAe,MAAc,UAAoC;AACrE,KAAI;AACF,SAAO,YAAY,QAAQ,MAAM,EAC/B,OAAO,OACR,CAAC;UACK,GAAY;AACnB,SAAO;;;AAIX,MAAM,WAAW;CAAC;CAAO;CAAO;CAAQ;CAAO,CAAC,QAAQ,KAAe,QAAQ;AAC7E,KAAI,KAAK,SAAS,MAAM;AACxB,KAAI,KAAK,IAAI;AACb,QAAO;GACN,EAAE,CAAC;AAEN,OAAO,MAAM,eACX,MACA,UACA,UACW;CACX,MAAM,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,MAAM,KAAK,QAAQ,EAAE,CAAC;CAC9D,MAAM,WAAW,YAAY,MAAM,MAAM;AACzC,KAAI,EAAE,oBAAoB,QAAQ;AAChC,SAAO;;;AAIT,MAAK,MAAM,UAAU,UAAU;EAC7B,MAAM,qBAAqB,YAAY,OAAO,QAAQ,MAAM;AAC5D,MAAI,8BAA8B,OAAO;;AAEvC;;AAGF,SAAO;;AAGT,OAAM;;AAGR,OAAO,MAAM,wBACX,MACA,UACA,UACoB;CACpB,MAAM,WAAW,YAAY,MAAM,UAAU,MAAM;AACnD,QAAO,QAAQ,QAAQ,SAAS","names":[],"sources":["../src/asyncResolveFallback.ts"],"version":3,"sourcesContent":["import path from 'path';\nimport { createRequire } from 'module';\n\nconst nodeRequire = createRequire(import.meta.url);\n\nconst safeResolve = (name: string, where: string[]): string | Error => {\n try {\n return nodeRequire.resolve(name, {\n paths: where,\n });\n } catch (e: unknown) {\n return e as Error;\n }\n};\n\nconst suffixes = ['.js', '.ts', '.jsx', '.tsx'].reduce((acc: string[], ext) => {\n acc.push(`/index${ext}`);\n acc.push(ext);\n return acc;\n}, []);\n\nexport const syncResolve = (\n what: string,\n importer: string,\n stack: string[]\n): string => {\n const where = [importer, ...stack].map((p) => path.dirname(p));\n const resolved = safeResolve(what, where);\n if (!(resolved instanceof Error)) {\n return resolved;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const suffix of suffixes) {\n const resolvedWithSuffix = safeResolve(what + suffix, where);\n if (resolvedWithSuffix instanceof Error) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n return resolvedWithSuffix;\n }\n\n throw resolved;\n};\n\nexport const asyncResolveFallback = (\n what: string,\n importer: string,\n stack: string[]\n): Promise<string> => {\n const resolved = syncResolve(what, importer, stack);\n return Promise.resolve(resolved);\n};\n"],"file":"asyncResolveFallback.js"}
@@ -1,11 +1,11 @@
1
1
  export const asyncResolverFactory = (onResolve, mapper) => {
2
- const memoizedSyncResolve = new WeakMap();
3
- return resolveFn => {
4
- if (!memoizedSyncResolve.has(resolveFn)) {
5
- const fn = (what, importer, stack) => resolveFn(...mapper(what, importer, stack)).then(resolved => onResolve(resolved, what, importer, stack));
6
- memoizedSyncResolve.set(resolveFn, fn);
7
- }
8
- return memoizedSyncResolve.get(resolveFn);
9
- };
2
+ const memoizedSyncResolve = new WeakMap();
3
+ return (resolveFn) => {
4
+ if (!memoizedSyncResolve.has(resolveFn)) {
5
+ const fn = (what, importer, stack) => resolveFn(...mapper(what, importer, stack)).then((resolved) => onResolve(resolved, what, importer, stack));
6
+ memoizedSyncResolve.set(resolveFn, fn);
7
+ }
8
+ return memoizedSyncResolve.get(resolveFn);
9
+ };
10
10
  };
11
- //# sourceMappingURL=asyncResolverFactory.js.map
11
+ //# sourceMappingURL=asyncResolverFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asyncResolverFactory.js","names":["asyncResolverFactory","onResolve","mapper","memoizedSyncResolve","WeakMap","resolveFn","has","fn","what","importer","stack","then","resolved","set","get"],"sources":["../src/asyncResolverFactory.ts"],"sourcesContent":["export const asyncResolverFactory = <\n TResolved,\n const TResolverArgs extends readonly unknown[],\n TResolve extends (...args: TResolverArgs) => Promise<TResolved>,\n>(\n onResolve: (\n resolved: TResolved,\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>,\n mapper: (what: string, importer: string, stack: string[]) => TResolverArgs\n) => {\n const memoizedSyncResolve = new WeakMap<\n TResolve,\n (what: string, importer: string, stack: string[]) => Promise<string | null>\n >();\n\n return (resolveFn: TResolve) => {\n if (!memoizedSyncResolve.has(resolveFn)) {\n const fn = (\n what: string,\n importer: string,\n stack: string[]\n ): Promise<string | null> =>\n resolveFn(...mapper(what, importer, stack)).then((resolved) =>\n onResolve(resolved, what, importer, stack)\n );\n\n memoizedSyncResolve.set(resolveFn, fn);\n }\n\n return memoizedSyncResolve.get(resolveFn)!;\n };\n};\n"],"mappings":"AAAA,OAAO,MAAMA,oBAAoB,GAAGA,CAKlCC,SAK2B,EAC3BC,MAA0E,KACvE;EACH,MAAMC,mBAAmB,GAAG,IAAIC,OAAO,CAGrC,CAAC;EAEH,OAAQC,SAAmB,IAAK;IAC9B,IAAI,CAACF,mBAAmB,CAACG,GAAG,CAACD,SAAS,CAAC,EAAE;MACvC,MAAME,EAAE,GAAGA,CACTC,IAAY,EACZC,QAAgB,EAChBC,KAAe,KAEfL,SAAS,CAAC,GAAGH,MAAM,CAACM,IAAI,EAAEC,QAAQ,EAAEC,KAAK,CAAC,CAAC,CAACC,IAAI,CAAEC,QAAQ,IACxDX,SAAS,CAACW,QAAQ,EAAEJ,IAAI,EAAEC,QAAQ,EAAEC,KAAK,CAC3C,CAAC;MAEHP,mBAAmB,CAACU,GAAG,CAACR,SAAS,EAAEE,EAAE,CAAC;IACxC;IAEA,OAAOJ,mBAAmB,CAACW,GAAG,CAACT,SAAS,CAAC;EAC3C,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"mappings":"AAAA,OAAO,MAAM,wBAKX,WAMA,WACG;CACH,MAAM,sBAAsB,IAAI,SAG7B;AAEH,SAAQ,cAAwB;AAC9B,MAAI,CAAC,oBAAoB,IAAI,UAAU,EAAE;GACvC,MAAM,MACJ,MACA,UACA,UAEA,UAAU,GAAG,OAAO,MAAM,UAAU,MAAM,CAAC,CAAC,MAAM,aAChD,UAAU,UAAU,MAAM,UAAU,MAAM,CAC3C;AAEH,uBAAoB,IAAI,WAAW,GAAG;;AAGxC,SAAO,oBAAoB,IAAI,UAAU","names":[],"sources":["../src/asyncResolverFactory.ts"],"version":3,"sourcesContent":["export const asyncResolverFactory = <\n TResolved,\n const TResolverArgs extends readonly unknown[],\n TResolve extends (...args: TResolverArgs) => Promise<TResolved>,\n>(\n onResolve: (\n resolved: TResolved,\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>,\n mapper: (what: string, importer: string, stack: string[]) => TResolverArgs\n) => {\n const memoizedSyncResolve = new WeakMap<\n TResolve,\n (what: string, importer: string, stack: string[]) => Promise<string | null>\n >();\n\n return (resolveFn: TResolve) => {\n if (!memoizedSyncResolve.has(resolveFn)) {\n const fn = (\n what: string,\n importer: string,\n stack: string[]\n ): Promise<string | null> =>\n resolveFn(...mapper(what, importer, stack)).then((resolved) =>\n onResolve(resolved, what, importer, stack)\n );\n\n memoizedSyncResolve.set(resolveFn, fn);\n }\n\n return memoizedSyncResolve.get(resolveFn)!;\n };\n};\n"],"file":"asyncResolverFactory.js"}
package/esm/debugger.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=debugger.js.map
2
+ //# sourceMappingURL=debugger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debugger.js","names":[],"sources":["../src/debugger.ts"],"sourcesContent":["export type Debugger = {\n (formatter: unknown, ...args: unknown[]): void;\n color: string;\n destroy: () => boolean;\n diff: number;\n enabled: boolean;\n extend: (namespace: string, delimiter?: string) => Debugger;\n log: (...args: unknown[]) => unknown;\n namespace: string;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"mappings":"","names":[],"sources":["../src/debugger.ts"],"version":3,"sourcesContent":["export type Debugger = {\n (formatter: unknown, ...args: unknown[]): void;\n color: string;\n destroy: () => boolean;\n diff: number;\n enabled: boolean;\n extend: (namespace: string, delimiter?: string) => Debugger;\n log: (...args: unknown[]) => unknown;\n namespace: string;\n};\n"],"file":"debugger.js"}
@@ -1,73 +1,65 @@
1
- import { readFileSync } from 'fs';
2
- import { dirname, isAbsolute } from 'path';
3
- import findUp from 'find-up';
1
+ import { readFileSync } from "fs";
2
+ import { dirname, isAbsolute } from "path";
3
+ import { createRequire } from "module";
4
+ import findUp from "find-up";
4
5
  const cache = new Map();
6
+ const nodeRequire = createRequire(import.meta.url);
5
7
  function findSelfPackageJSON(pkgName, filename) {
6
- const packageJSONPath = findUp.sync('package.json', {
7
- cwd: dirname(filename)
8
- });
9
- if (!packageJSONPath) return undefined;
10
- try {
11
- const packageJSON = JSON.parse(readFileSync(packageJSONPath, 'utf8'));
12
- return packageJSON?.name === pkgName ? packageJSONPath : undefined;
13
- } catch {
14
- return undefined;
15
- }
8
+ const packageJSONPath = findUp.sync("package.json", { cwd: dirname(filename) });
9
+ if (!packageJSONPath) return undefined;
10
+ try {
11
+ const packageJSON = JSON.parse(readFileSync(packageJSONPath, "utf8"));
12
+ return packageJSON?.name === pkgName ? packageJSONPath : undefined;
13
+ } catch {
14
+ return undefined;
15
+ }
16
16
  }
17
17
  export function findPackageJSON(pkgName, filename) {
18
- // Jest's resolver does not work properly with `moduleNameMapper` when `paths` are defined
19
- const isJest = Boolean(globalThis.process?.env?.JEST_WORKER_ID);
20
- const skipPathsOptions = isJest && !pkgName.startsWith('.');
21
- try {
22
- const pkgPath = pkgName === '.' && filename && isAbsolute(filename) ? filename : require.resolve(pkgName, filename ? {
23
- paths: [dirname(filename)]
24
- } : {});
25
- if (!cache.has(pkgPath)) {
26
- cache.set(pkgPath, findUp.sync('package.json', {
27
- cwd: pkgPath
28
- }));
29
- }
30
- return cache.get(pkgPath);
31
- } catch (er) {
32
- const code = typeof er === 'object' && er !== null && 'code' in er ? er.code : undefined;
33
- if (code === 'MODULE_NOT_FOUND') {
34
- if (filename) {
35
- // Bun doesn't expose workspace packages via `require.resolve`, but tests
36
- // and tooling can still reference the current package by name.
37
- const selfPackageJSON = findSelfPackageJSON(pkgName, filename);
38
- if (selfPackageJSON) {
39
- return selfPackageJSON;
40
- }
41
- const bun = globalThis.Bun;
42
- if (bun && typeof bun.resolveSync === 'function') {
43
- try {
44
- const resolved = bun.resolveSync(pkgName, filename);
45
- if (!cache.has(resolved)) {
46
- cache.set(resolved, findUp.sync('package.json', {
47
- cwd: resolved
48
- }));
49
- }
50
- return cache.get(resolved);
51
- } catch {
52
- // fall through to the existing resolution heuristics
53
- }
54
- }
55
- }
56
- if (skipPathsOptions && filename) {
57
- return findPackageJSON(pkgName, null);
58
- }
59
- return undefined;
60
- }
61
- if (code === 'ERR_PACKAGE_PATH_NOT_EXPORTED') {
62
- // See https://github.com/Anber/wyw-in-js/issues/43
63
- // `require` can't resolve ESM-only packages. We can use the `resolve`
64
- // package here, but it does not solve all cases because `pkgName`
65
- // can be an alias and should be resolved by a bundler. However, we can't use
66
- // `resolve` from a bundler because it is async. The good news is that in that
67
- // specific case, we can just ignore those packages. For now.
68
- return undefined;
69
- }
70
- throw er;
71
- }
18
+ // Jest's resolver does not work properly with `moduleNameMapper` when `paths` are defined
19
+ const isJest = Boolean(globalThis.process?.env?.JEST_WORKER_ID);
20
+ const skipPathsOptions = isJest && !pkgName.startsWith(".");
21
+ try {
22
+ const pkgPath = pkgName === "." && filename && isAbsolute(filename) ? filename : nodeRequire.resolve(pkgName, filename ? { paths: [dirname(filename)] } : {});
23
+ if (!cache.has(pkgPath)) {
24
+ cache.set(pkgPath, findUp.sync("package.json", { cwd: pkgPath }));
25
+ }
26
+ return cache.get(pkgPath);
27
+ } catch (er) {
28
+ const code = typeof er === "object" && er !== null && "code" in er ? er.code : undefined;
29
+ if (code === "MODULE_NOT_FOUND") {
30
+ if (filename) {
31
+ // Bun doesn't expose workspace packages via `require.resolve`, but tests
32
+ // and tooling can still reference the current package by name.
33
+ const selfPackageJSON = findSelfPackageJSON(pkgName, filename);
34
+ if (selfPackageJSON) {
35
+ return selfPackageJSON;
36
+ }
37
+ const bun = globalThis.Bun;
38
+ if (bun && typeof bun.resolveSync === "function") {
39
+ try {
40
+ const resolved = bun.resolveSync(pkgName, filename);
41
+ if (!cache.has(resolved)) {
42
+ cache.set(resolved, findUp.sync("package.json", { cwd: resolved }));
43
+ }
44
+ return cache.get(resolved);
45
+ } catch {}
46
+ }
47
+ }
48
+ if (skipPathsOptions && filename) {
49
+ return findPackageJSON(pkgName, null);
50
+ }
51
+ return undefined;
52
+ }
53
+ if (code === "ERR_PACKAGE_PATH_NOT_EXPORTED") {
54
+ // See https://github.com/Anber/wyw-in-js/issues/43
55
+ // `require` can't resolve ESM-only packages. We can use the `resolve`
56
+ // package here, but it does not solve all cases because `pkgName`
57
+ // can be an alias and should be resolved by a bundler. However, we can't use
58
+ // `resolve` from a bundler because it is async. The good news is that in that
59
+ // specific case, we can just ignore those packages. For now.
60
+ return undefined;
61
+ }
62
+ throw er;
63
+ }
72
64
  }
73
- //# sourceMappingURL=findPackageJSON.js.map
65
+ //# sourceMappingURL=findPackageJSON.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findPackageJSON.js","names":["readFileSync","dirname","isAbsolute","findUp","cache","Map","findSelfPackageJSON","pkgName","filename","packageJSONPath","sync","cwd","undefined","packageJSON","JSON","parse","name","findPackageJSON","isJest","Boolean","globalThis","process","env","JEST_WORKER_ID","skipPathsOptions","startsWith","pkgPath","require","resolve","paths","has","set","get","er","code","selfPackageJSON","bun","Bun","resolveSync","resolved"],"sources":["../src/findPackageJSON.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, isAbsolute } from 'path';\nimport findUp from 'find-up';\n\nconst cache = new Map<string, string | undefined>();\n\nfunction findSelfPackageJSON(pkgName: string, filename: string) {\n const packageJSONPath = findUp.sync('package.json', {\n cwd: dirname(filename),\n });\n if (!packageJSONPath) return undefined;\n\n try {\n const packageJSON = JSON.parse(readFileSync(packageJSONPath, 'utf8'));\n return packageJSON?.name === pkgName ? packageJSONPath : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function findPackageJSON(\n pkgName: string,\n filename: string | null | undefined\n) {\n // Jest's resolver does not work properly with `moduleNameMapper` when `paths` are defined\n const isJest = Boolean(globalThis.process?.env?.JEST_WORKER_ID);\n const skipPathsOptions = isJest && !pkgName.startsWith('.');\n\n try {\n const pkgPath =\n pkgName === '.' && filename && isAbsolute(filename)\n ? filename\n : require.resolve(\n pkgName,\n filename ? { paths: [dirname(filename)] } : {}\n );\n if (!cache.has(pkgPath)) {\n cache.set(pkgPath, findUp.sync('package.json', { cwd: pkgPath }));\n }\n\n return cache.get(pkgPath);\n } catch (er: unknown) {\n const code =\n typeof er === 'object' && er !== null && 'code' in er\n ? er.code\n : undefined;\n\n if (code === 'MODULE_NOT_FOUND') {\n if (filename) {\n // Bun doesn't expose workspace packages via `require.resolve`, but tests\n // and tooling can still reference the current package by name.\n const selfPackageJSON = findSelfPackageJSON(pkgName, filename);\n if (selfPackageJSON) {\n return selfPackageJSON;\n }\n\n const bun = (\n globalThis as typeof globalThis & {\n Bun?: {\n resolveSync?: (specifier: string, from: string) => string;\n };\n }\n ).Bun;\n if (bun && typeof bun.resolveSync === 'function') {\n try {\n const resolved = bun.resolveSync(pkgName, filename);\n if (!cache.has(resolved)) {\n cache.set(\n resolved,\n findUp.sync('package.json', {\n cwd: resolved,\n })\n );\n }\n\n return cache.get(resolved);\n } catch {\n // fall through to the existing resolution heuristics\n }\n }\n }\n\n if (skipPathsOptions && filename) {\n return findPackageJSON(pkgName, null);\n }\n\n return undefined;\n }\n\n if (code === 'ERR_PACKAGE_PATH_NOT_EXPORTED') {\n // See https://github.com/Anber/wyw-in-js/issues/43\n // `require` can't resolve ESM-only packages. We can use the `resolve`\n // package here, but it does not solve all cases because `pkgName`\n // can be an alias and should be resolved by a bundler. However, we can't use\n // `resolve` from a bundler because it is async. The good news is that in that\n // specific case, we can just ignore those packages. For now.\n return undefined;\n }\n\n throw er;\n }\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,IAAI;AACjC,SAASC,OAAO,EAAEC,UAAU,QAAQ,MAAM;AAC1C,OAAOC,MAAM,MAAM,SAAS;AAE5B,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAA6B,CAAC;AAEnD,SAASC,mBAAmBA,CAACC,OAAe,EAAEC,QAAgB,EAAE;EAC9D,MAAMC,eAAe,GAAGN,MAAM,CAACO,IAAI,CAAC,cAAc,EAAE;IAClDC,GAAG,EAAEV,OAAO,CAACO,QAAQ;EACvB,CAAC,CAAC;EACF,IAAI,CAACC,eAAe,EAAE,OAAOG,SAAS;EAEtC,IAAI;IACF,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACf,YAAY,CAACS,eAAe,EAAE,MAAM,CAAC,CAAC;IACrE,OAAOI,WAAW,EAAEG,IAAI,KAAKT,OAAO,GAAGE,eAAe,GAAGG,SAAS;EACpE,CAAC,CAAC,MAAM;IACN,OAAOA,SAAS;EAClB;AACF;AAEA,OAAO,SAASK,eAAeA,CAC7BV,OAAe,EACfC,QAAmC,EACnC;EACA;EACA,MAAMU,MAAM,GAAGC,OAAO,CAACC,UAAU,CAACC,OAAO,EAAEC,GAAG,EAAEC,cAAc,CAAC;EAC/D,MAAMC,gBAAgB,GAAGN,MAAM,IAAI,CAACX,OAAO,CAACkB,UAAU,CAAC,GAAG,CAAC;EAE3D,IAAI;IACF,MAAMC,OAAO,GACXnB,OAAO,KAAK,GAAG,IAAIC,QAAQ,IAAIN,UAAU,CAACM,QAAQ,CAAC,GAC/CA,QAAQ,GACRmB,OAAO,CAACC,OAAO,CACbrB,OAAO,EACPC,QAAQ,GAAG;MAAEqB,KAAK,EAAE,CAAC5B,OAAO,CAACO,QAAQ,CAAC;IAAE,CAAC,GAAG,CAAC,CAC/C,CAAC;IACP,IAAI,CAACJ,KAAK,CAAC0B,GAAG,CAACJ,OAAO,CAAC,EAAE;MACvBtB,KAAK,CAAC2B,GAAG,CAACL,OAAO,EAAEvB,MAAM,CAACO,IAAI,CAAC,cAAc,EAAE;QAAEC,GAAG,EAAEe;MAAQ,CAAC,CAAC,CAAC;IACnE;IAEA,OAAOtB,KAAK,CAAC4B,GAAG,CAACN,OAAO,CAAC;EAC3B,CAAC,CAAC,OAAOO,EAAW,EAAE;IACpB,MAAMC,IAAI,GACR,OAAOD,EAAE,KAAK,QAAQ,IAAIA,EAAE,KAAK,IAAI,IAAI,MAAM,IAAIA,EAAE,GACjDA,EAAE,CAACC,IAAI,GACPtB,SAAS;IAEf,IAAIsB,IAAI,KAAK,kBAAkB,EAAE;MAC/B,IAAI1B,QAAQ,EAAE;QACZ;QACA;QACA,MAAM2B,eAAe,GAAG7B,mBAAmB,CAACC,OAAO,EAAEC,QAAQ,CAAC;QAC9D,IAAI2B,eAAe,EAAE;UACnB,OAAOA,eAAe;QACxB;QAEA,MAAMC,GAAG,GACPhB,UAAU,CAKViB,GAAG;QACL,IAAID,GAAG,IAAI,OAAOA,GAAG,CAACE,WAAW,KAAK,UAAU,EAAE;UAChD,IAAI;YACF,MAAMC,QAAQ,GAAGH,GAAG,CAACE,WAAW,CAAC/B,OAAO,EAAEC,QAAQ,CAAC;YACnD,IAAI,CAACJ,KAAK,CAAC0B,GAAG,CAACS,QAAQ,CAAC,EAAE;cACxBnC,KAAK,CAAC2B,GAAG,CACPQ,QAAQ,EACRpC,MAAM,CAACO,IAAI,CAAC,cAAc,EAAE;gBAC1BC,GAAG,EAAE4B;cACP,CAAC,CACH,CAAC;YACH;YAEA,OAAOnC,KAAK,CAAC4B,GAAG,CAACO,QAAQ,CAAC;UAC5B,CAAC,CAAC,MAAM;YACN;UAAA;QAEJ;MACF;MAEA,IAAIf,gBAAgB,IAAIhB,QAAQ,EAAE;QAChC,OAAOS,eAAe,CAACV,OAAO,EAAE,IAAI,CAAC;MACvC;MAEA,OAAOK,SAAS;IAClB;IAEA,IAAIsB,IAAI,KAAK,+BAA+B,EAAE;MAC5C;MACA;MACA;MACA;MACA;MACA;MACA,OAAOtB,SAAS;IAClB;IAEA,MAAMqB,EAAE;EACV;AACF","ignoreList":[]}
1
+ {"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,SAAS,kBAAkB;AACpC,SAAS,qBAAqB;AAC9B,OAAO,YAAY;AAEnB,MAAM,QAAQ,IAAI,KAAiC;AACnD,MAAM,cAAc,cAAc,OAAO,KAAK,IAAI;AAElD,SAAS,oBAAoB,SAAiB,UAAkB;CAC9D,MAAM,kBAAkB,OAAO,KAAK,gBAAgB,EAClD,KAAK,QAAQ,SAAS,EACvB,CAAC;AACF,KAAI,CAAC,gBAAiB,QAAO;AAE7B,KAAI;EACF,MAAM,cAAc,KAAK,MAAM,aAAa,iBAAiB,OAAO,CAAC;AACrE,SAAO,aAAa,SAAS,UAAU,kBAAkB;SACnD;AACN,SAAO;;;AAIX,OAAO,SAAS,gBACd,SACA,UACA;;CAEA,MAAM,SAAS,QAAQ,WAAW,SAAS,KAAK,eAAe;CAC/D,MAAM,mBAAmB,UAAU,CAAC,QAAQ,WAAW,IAAI;AAE3D,KAAI;EACF,MAAM,UACJ,YAAY,OAAO,YAAY,WAAW,SAAS,GAC/C,WACA,YAAY,QACV,SACA,WAAW,EAAE,OAAO,CAAC,QAAQ,SAAS,CAAC,EAAE,GAAG,EAAE,CAC/C;AACP,MAAI,CAAC,MAAM,IAAI,QAAQ,EAAE;AACvB,SAAM,IAAI,SAAS,OAAO,KAAK,gBAAgB,EAAE,KAAK,SAAS,CAAC,CAAC;;AAGnE,SAAO,MAAM,IAAI,QAAQ;UAClB,IAAa;EACpB,MAAM,OACJ,OAAO,OAAO,YAAY,OAAO,QAAQ,UAAU,KAC/C,GAAG,OACH;AAEN,MAAI,SAAS,oBAAoB;AAC/B,OAAI,UAAU;;;IAGZ,MAAM,kBAAkB,oBAAoB,SAAS,SAAS;AAC9D,QAAI,iBAAiB;AACnB,YAAO;;IAGT,MAAM,MACJ,WAKA;AACF,QAAI,OAAO,OAAO,IAAI,gBAAgB,YAAY;AAChD,SAAI;MACF,MAAM,WAAW,IAAI,YAAY,SAAS,SAAS;AACnD,UAAI,CAAC,MAAM,IAAI,SAAS,EAAE;AACxB,aAAM,IACJ,UACA,OAAO,KAAK,gBAAgB,EAC1B,KAAK,UACN,CAAC,CACH;;AAGH,aAAO,MAAM,IAAI,SAAS;aACpB;;;AAMZ,OAAI,oBAAoB,UAAU;AAChC,WAAO,gBAAgB,SAAS,KAAK;;AAGvC,UAAO;;AAGT,MAAI,SAAS,iCAAiC;;;;;;;AAO5C,UAAO;;AAGT,QAAM","names":[],"sources":["../src/findPackageJSON.ts"],"version":3,"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, isAbsolute } from 'path';\nimport { createRequire } from 'module';\nimport findUp from 'find-up';\n\nconst cache = new Map<string, string | undefined>();\nconst nodeRequire = createRequire(import.meta.url);\n\nfunction findSelfPackageJSON(pkgName: string, filename: string) {\n const packageJSONPath = findUp.sync('package.json', {\n cwd: dirname(filename),\n });\n if (!packageJSONPath) return undefined;\n\n try {\n const packageJSON = JSON.parse(readFileSync(packageJSONPath, 'utf8'));\n return packageJSON?.name === pkgName ? packageJSONPath : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function findPackageJSON(\n pkgName: string,\n filename: string | null | undefined\n) {\n // Jest's resolver does not work properly with `moduleNameMapper` when `paths` are defined\n const isJest = Boolean(globalThis.process?.env?.JEST_WORKER_ID);\n const skipPathsOptions = isJest && !pkgName.startsWith('.');\n\n try {\n const pkgPath =\n pkgName === '.' && filename && isAbsolute(filename)\n ? filename\n : nodeRequire.resolve(\n pkgName,\n filename ? { paths: [dirname(filename)] } : {}\n );\n if (!cache.has(pkgPath)) {\n cache.set(pkgPath, findUp.sync('package.json', { cwd: pkgPath }));\n }\n\n return cache.get(pkgPath);\n } catch (er: unknown) {\n const code =\n typeof er === 'object' && er !== null && 'code' in er\n ? er.code\n : undefined;\n\n if (code === 'MODULE_NOT_FOUND') {\n if (filename) {\n // Bun doesn't expose workspace packages via `require.resolve`, but tests\n // and tooling can still reference the current package by name.\n const selfPackageJSON = findSelfPackageJSON(pkgName, filename);\n if (selfPackageJSON) {\n return selfPackageJSON;\n }\n\n const bun = (\n globalThis as typeof globalThis & {\n Bun?: {\n resolveSync?: (specifier: string, from: string) => string;\n };\n }\n ).Bun;\n if (bun && typeof bun.resolveSync === 'function') {\n try {\n const resolved = bun.resolveSync(pkgName, filename);\n if (!cache.has(resolved)) {\n cache.set(\n resolved,\n findUp.sync('package.json', {\n cwd: resolved,\n })\n );\n }\n\n return cache.get(resolved);\n } catch {\n // fall through to the existing resolution heuristics\n }\n }\n }\n\n if (skipPathsOptions && filename) {\n return findPackageJSON(pkgName, null);\n }\n\n return undefined;\n }\n\n if (code === 'ERR_PACKAGE_PATH_NOT_EXPORTED') {\n // See https://github.com/Anber/wyw-in-js/issues/43\n // `require` can't resolve ESM-only packages. We can use the `resolve`\n // package here, but it does not solve all cases because `pkgName`\n // can be an alias and should be resolved by a bundler. However, we can't use\n // `resolve` from a bundler because it is async. The good news is that in that\n // specific case, we can just ignore those packages. For now.\n return undefined;\n }\n\n throw er;\n }\n}\n"],"file":"findPackageJSON.js"}
@@ -1,4 +1,4 @@
1
1
  export function hasEvalMeta(value) {
2
- return typeof value === 'object' && value !== null && '__wyw_meta' in value;
2
+ return typeof value === "object" && value !== null && "__wyw_meta" in value;
3
3
  }
4
- //# sourceMappingURL=hasEvalMeta.js.map
4
+ //# sourceMappingURL=hasEvalMeta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hasEvalMeta.js","names":["hasEvalMeta","value"],"sources":["../src/hasEvalMeta.ts"],"sourcesContent":["import type { WYWEvalMeta } from './types';\n\nexport function hasEvalMeta(value: unknown): value is WYWEvalMeta {\n return typeof value === 'object' && value !== null && '__wyw_meta' in value;\n}\n"],"mappings":"AAEA,OAAO,SAASA,WAAWA,CAACC,KAAc,EAAwB;EAChE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,YAAY,IAAIA,KAAK;AAC7E","ignoreList":[]}
1
+ {"mappings":"AAEA,OAAO,SAAS,YAAY,OAAsC;AAChE,QAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,gBAAgB","names":[],"sources":["../src/hasEvalMeta.ts"],"version":3,"sourcesContent":["import type { WYWEvalMeta } from './types';\n\nexport function hasEvalMeta(value: unknown): value is WYWEvalMeta {\n return typeof value === 'object' && value !== null && '__wyw_meta' in value;\n}\n"],"file":"hasEvalMeta.js"}
package/esm/index.js CHANGED
@@ -1,10 +1,11 @@
1
- export { asyncResolveFallback, syncResolve } from './asyncResolveFallback';
2
- export { asyncResolverFactory } from './asyncResolverFactory';
3
- export { hasEvalMeta } from './hasEvalMeta';
4
- export { findPackageJSON } from './findPackageJSON';
5
- export { isBoxedPrimitive } from './isBoxedPrimitive';
6
- export { enableDebug, logger } from './logger';
7
- export { isFeatureEnabled } from './options/isFeatureEnabled';
8
- export { slugify } from './slugify';
9
- export { ValueType } from './types';
10
- //# sourceMappingURL=index.js.map
1
+ export { asyncResolveFallback, syncResolve } from "./asyncResolveFallback.js";
2
+ export { asyncResolverFactory } from "./asyncResolverFactory.js";
3
+ export { hasEvalMeta } from "./hasEvalMeta.js";
4
+ export { findPackageJSON } from "./findPackageJSON.js";
5
+ export { isBoxedPrimitive } from "./isBoxedPrimitive.js";
6
+ export { enableDebug, logger } from "./logger.js";
7
+ export { isFeatureEnabled } from "./options/isFeatureEnabled.js";
8
+ export { mergeOxcResolverAlias, toNativeResolverAlias } from "./options/nativeResolverOptions.js";
9
+ export { slugify } from "./slugify.js";
10
+ export { ValueType } from "./types.js";
11
+ //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["asyncResolveFallback","syncResolve","asyncResolverFactory","hasEvalMeta","findPackageJSON","isBoxedPrimitive","enableDebug","logger","isFeatureEnabled","slugify","ValueType"],"sources":["../src/index.ts"],"sourcesContent":["export type { Debugger } from './debugger';\n\nexport { asyncResolveFallback, syncResolve } from './asyncResolveFallback';\nexport { asyncResolverFactory } from './asyncResolverFactory';\nexport { hasEvalMeta } from './hasEvalMeta';\nexport { findPackageJSON } from './findPackageJSON';\nexport { isBoxedPrimitive } from './isBoxedPrimitive';\nexport { enableDebug, logger } from './logger';\nexport { isFeatureEnabled } from './options/isFeatureEnabled';\nexport { slugify } from './slugify';\nexport { ValueType } from './types';\n\nexport type { IVariableContext } from './IVariableContext';\nexport type {\n ClassNameSlugVars,\n ClassNameFn,\n CodeRemoverOptions,\n ImportLoader,\n ImportLoaderContext,\n ImportLoaders,\n ImportOverride,\n ImportOverrides,\n TagResolverMeta,\n StrictOptions,\n EvalRule,\n Evaluator,\n FeatureFlag,\n EvaluatorConfig,\n FeatureFlags,\n VariableNameFn,\n} from './options/types';\nexport type {\n Artifact,\n BuildCodeFrameErrorFn,\n ConstValue,\n ExpressionValue,\n FunctionValue,\n ICSSRule,\n LazyValue,\n Location,\n Replacement,\n Replacements,\n Rules,\n WYWEvalMeta,\n} from './types';\n"],"mappings":"AAEA,SAASA,oBAAoB,EAAEC,WAAW,QAAQ,wBAAwB;AAC1E,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,WAAW,EAAEC,MAAM,QAAQ,UAAU;AAC9C,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,SAAS,QAAQ,SAAS","ignoreList":[]}
1
+ {"mappings":"AAEA,SAAS,sBAAsB,mBAAmB;AAClD,SAAS,4BAA4B;AACrC,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,aAAa,cAAc;AACpC,SAAS,wBAAwB;AACjC,SACE,uBACA,6BACK;AAEP,SAAS,eAAe;AACxB,SAAS,iBAAiB","names":[],"sources":["../src/index.ts"],"version":3,"sourcesContent":["export type { Debugger } from './debugger';\n\nexport { asyncResolveFallback, syncResolve } from './asyncResolveFallback';\nexport { asyncResolverFactory } from './asyncResolverFactory';\nexport { hasEvalMeta } from './hasEvalMeta';\nexport { findPackageJSON } from './findPackageJSON';\nexport { isBoxedPrimitive } from './isBoxedPrimitive';\nexport { enableDebug, logger } from './logger';\nexport { isFeatureEnabled } from './options/isFeatureEnabled';\nexport {\n mergeOxcResolverAlias,\n toNativeResolverAlias,\n} from './options/nativeResolverOptions';\nexport type { NativeResolverAlias } from './options/nativeResolverOptions';\nexport { slugify } from './slugify';\nexport { ValueType } from './types';\n\nexport type { IVariableContext } from './IVariableContext';\nexport type {\n ClassNameSlugVars,\n ClassNameFn,\n CodeRemoverOptions,\n EvalErrorMode,\n EvalOptionsV2,\n EvalRequireMode,\n EvalResolverKind,\n EvalResolverMode,\n EvalRuntime,\n EvalStrategy,\n EvalWarning,\n EvalWarningCode,\n ImportLoader,\n ImportLoaderContext,\n ImportLoaders,\n ImportOverride,\n ImportOverrides,\n OxcOptions,\n TagResolverMeta,\n StrictOptions,\n EvalRule,\n EvaluatorOptions,\n TransformEngineOptions,\n Evaluator,\n FeatureFlag,\n EvaluatorConfig,\n FeatureFlags,\n VariableNameFn,\n} from './options/types';\nexport type {\n Artifact,\n AstExpression,\n AstNode,\n BigIntLiteral,\n BooleanLiteral,\n BuildCodeFrameErrorFn,\n ConstValue,\n DecimalLiteral,\n ExpressionValue,\n FunctionValue,\n Identifier,\n ICSSRule,\n LazyValue,\n Location,\n NullLiteral,\n NumericLiteral,\n Replacement,\n Replacements,\n Rules,\n SourceLocation,\n StringLiteral,\n WYWEvalMeta,\n} from './types';\n"],"file":"index.js"}
@@ -1,9 +1,8 @@
1
1
  // There is a problem with using boxed numbers and strings in TS,
2
2
  // so we cannot just use `instanceof` here
3
-
4
- const constructors = ['Number', 'String'];
3
+ const constructors = ["Number", "String"];
5
4
  export function isBoxedPrimitive(o) {
6
- if (typeof o !== 'object' || o === null) return false;
7
- return constructors.includes(o.constructor.name) && typeof o?.valueOf() !== 'object';
5
+ if (typeof o !== "object" || o === null) return false;
6
+ return constructors.includes(o.constructor.name) && typeof o?.valueOf() !== "object";
8
7
  }
9
- //# sourceMappingURL=isBoxedPrimitive.js.map
8
+ //# sourceMappingURL=isBoxedPrimitive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isBoxedPrimitive.js","names":["constructors","isBoxedPrimitive","o","includes","constructor","name","valueOf"],"sources":["../src/isBoxedPrimitive.ts"],"sourcesContent":["// There is a problem with using boxed numbers and strings in TS,\n// so we cannot just use `instanceof` here\n\nconst constructors = ['Number', 'String'];\nexport function isBoxedPrimitive(o: unknown): o is number | string {\n if (typeof o !== 'object' || o === null) return false;\n return (\n constructors.includes(o.constructor.name) &&\n typeof o?.valueOf() !== 'object'\n );\n}\n"],"mappings":"AAAA;AACA;;AAEA,MAAMA,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACzC,OAAO,SAASC,gBAAgBA,CAACC,CAAU,EAAwB;EACjE,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EACrD,OACEF,YAAY,CAACG,QAAQ,CAACD,CAAC,CAACE,WAAW,CAACC,IAAI,CAAC,IACzC,OAAOH,CAAC,EAAEI,OAAO,CAAC,CAAC,KAAK,QAAQ;AAEpC","ignoreList":[]}
1
+ {"mappings":";;AAGA,MAAM,eAAe,CAAC,UAAU,SAAS;AACzC,OAAO,SAAS,iBAAiB,GAAkC;AACjE,KAAI,OAAO,MAAM,YAAY,MAAM,KAAM,QAAO;AAChD,QACE,aAAa,SAAS,EAAE,YAAY,KAAK,IACzC,OAAO,GAAG,SAAS,KAAK","names":[],"sources":["../src/isBoxedPrimitive.ts"],"version":3,"sourcesContent":["// There is a problem with using boxed numbers and strings in TS,\n// so we cannot just use `instanceof` here\n\nconst constructors = ['Number', 'String'];\nexport function isBoxedPrimitive(o: unknown): o is number | string {\n if (typeof o !== 'object' || o === null) return false;\n return (\n constructors.includes(o.constructor.name) &&\n typeof o?.valueOf() !== 'object'\n );\n}\n"],"file":"isBoxedPrimitive.js"}
package/esm/logger.js CHANGED
@@ -1,26 +1,26 @@
1
- import genericDebug from 'debug';
2
- const BASE_NAMESPACE = 'wyw-in-js';
1
+ import genericDebug from "debug";
2
+ const BASE_NAMESPACE = "wyw-in-js";
3
3
  export const logger = genericDebug(BASE_NAMESPACE);
4
4
  const loggers = new Map();
5
5
  function gerOrCreate(namespace) {
6
- if (!namespace) return logger;
7
- const lastIndexOf = namespace.lastIndexOf(':');
8
- if (!loggers.has(namespace)) {
9
- loggers.set(namespace, gerOrCreate(namespace.substring(0, lastIndexOf)).extend(namespace.substring(lastIndexOf + 1)));
10
- }
11
- return loggers.get(namespace);
6
+ if (!namespace) return logger;
7
+ const lastIndexOf = namespace.lastIndexOf(":");
8
+ if (!loggers.has(namespace)) {
9
+ loggers.set(namespace, gerOrCreate(namespace.substring(0, lastIndexOf)).extend(namespace.substring(lastIndexOf + 1)));
10
+ }
11
+ return loggers.get(namespace);
12
12
  }
13
- genericDebug.formatters.r = ref => {
14
- const namespace = typeof ref === 'string' ? ref : ref.namespace;
15
- const text = typeof ref === 'string' ? namespace : ref.text ?? namespace;
16
- const color = parseInt(gerOrCreate(namespace).color, 10);
17
- const colorCode = `\u001B[3${color < 8 ? color : `8;5;${color}`}`;
18
- return `${colorCode};1m${text}\u001B[0m`;
13
+ genericDebug.formatters.r = (ref) => {
14
+ const namespace = typeof ref === "string" ? ref : ref.namespace;
15
+ const text = typeof ref === "string" ? namespace : ref.text ?? namespace;
16
+ const color = parseInt(gerOrCreate(namespace).color, 10);
17
+ const colorCode = `\u001B[3${color < 8 ? color : `8;5;${color}`}`;
18
+ return `${colorCode};1m${text}\u001B[0m`;
19
19
  };
20
20
  genericDebug.formatters.f = function f(fn) {
21
- return JSON.stringify(fn());
21
+ return JSON.stringify(fn());
22
22
  };
23
23
  export function enableDebug(namespace = `${BASE_NAMESPACE}:*`) {
24
- genericDebug.enable(namespace);
24
+ genericDebug.enable(namespace);
25
25
  }
26
- //# sourceMappingURL=logger.js.map
26
+ //# sourceMappingURL=logger.js.map
package/esm/logger.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","names":["genericDebug","BASE_NAMESPACE","logger","loggers","Map","gerOrCreate","namespace","lastIndexOf","has","set","substring","extend","get","formatters","r","ref","text","color","parseInt","colorCode","f","fn","JSON","stringify","enableDebug","enable"],"sources":["../src/logger.ts"],"sourcesContent":["import genericDebug from 'debug';\n\nimport type { Debugger } from './debugger';\n\nconst BASE_NAMESPACE = 'wyw-in-js';\n\nexport const logger: Debugger = genericDebug(BASE_NAMESPACE);\n\nconst loggers = new Map<string, Debugger>();\n\nfunction gerOrCreate(namespace: string | null | undefined): Debugger {\n if (!namespace) return logger;\n const lastIndexOf = namespace.lastIndexOf(':');\n if (!loggers.has(namespace)) {\n loggers.set(\n namespace,\n gerOrCreate(namespace.substring(0, lastIndexOf)).extend(\n namespace.substring(lastIndexOf + 1)\n )\n );\n }\n\n return loggers.get(namespace)!;\n}\n\ngenericDebug.formatters.r = (\n ref: string | { namespace: string; text?: string }\n) => {\n const namespace = typeof ref === 'string' ? ref : ref.namespace;\n const text = typeof ref === 'string' ? namespace : ref.text ?? namespace;\n const color = parseInt(gerOrCreate(namespace).color, 10);\n const colorCode = `\\u001B[3${color < 8 ? color : `8;5;${color}`}`;\n return `${colorCode};1m${text}\\u001B[0m`;\n};\n\ngenericDebug.formatters.f = function f(fn: () => unknown) {\n return JSON.stringify(fn());\n};\n\nexport function enableDebug(namespace = `${BASE_NAMESPACE}:*`) {\n genericDebug.enable(namespace);\n}\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,OAAO;AAIhC,MAAMC,cAAc,GAAG,WAAW;AAElC,OAAO,MAAMC,MAAgB,GAAGF,YAAY,CAACC,cAAc,CAAC;AAE5D,MAAME,OAAO,GAAG,IAAIC,GAAG,CAAmB,CAAC;AAE3C,SAASC,WAAWA,CAACC,SAAoC,EAAY;EACnE,IAAI,CAACA,SAAS,EAAE,OAAOJ,MAAM;EAC7B,MAAMK,WAAW,GAAGD,SAAS,CAACC,WAAW,CAAC,GAAG,CAAC;EAC9C,IAAI,CAACJ,OAAO,CAACK,GAAG,CAACF,SAAS,CAAC,EAAE;IAC3BH,OAAO,CAACM,GAAG,CACTH,SAAS,EACTD,WAAW,CAACC,SAAS,CAACI,SAAS,CAAC,CAAC,EAAEH,WAAW,CAAC,CAAC,CAACI,MAAM,CACrDL,SAAS,CAACI,SAAS,CAACH,WAAW,GAAG,CAAC,CACrC,CACF,CAAC;EACH;EAEA,OAAOJ,OAAO,CAACS,GAAG,CAACN,SAAS,CAAC;AAC/B;AAEAN,YAAY,CAACa,UAAU,CAACC,CAAC,GACvBC,GAAkD,IAC/C;EACH,MAAMT,SAAS,GAAG,OAAOS,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGA,GAAG,CAACT,SAAS;EAC/D,MAAMU,IAAI,GAAG,OAAOD,GAAG,KAAK,QAAQ,GAAGT,SAAS,GAAGS,GAAG,CAACC,IAAI,IAAIV,SAAS;EACxE,MAAMW,KAAK,GAAGC,QAAQ,CAACb,WAAW,CAACC,SAAS,CAAC,CAACW,KAAK,EAAE,EAAE,CAAC;EACxD,MAAME,SAAS,GAAG,WAAWF,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,OAAOA,KAAK,EAAE,EAAE;EACjE,OAAO,GAAGE,SAAS,MAAMH,IAAI,WAAW;AAC1C,CAAC;AAEDhB,YAAY,CAACa,UAAU,CAACO,CAAC,GAAG,SAASA,CAACA,CAACC,EAAiB,EAAE;EACxD,OAAOC,IAAI,CAACC,SAAS,CAACF,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,OAAO,SAASG,WAAWA,CAAClB,SAAS,GAAG,GAAGL,cAAc,IAAI,EAAE;EAC7DD,YAAY,CAACyB,MAAM,CAACnB,SAAS,CAAC;AAChC","ignoreList":[]}
1
+ {"mappings":"AAAA,OAAO,kBAAkB;AAIzB,MAAM,iBAAiB;AAEvB,OAAO,MAAM,SAAmB,aAAa,eAAe;AAE5D,MAAM,UAAU,IAAI,KAAuB;AAE3C,SAAS,YAAY,WAAgD;AACnE,KAAI,CAAC,UAAW,QAAO;CACvB,MAAM,cAAc,UAAU,YAAY,IAAI;AAC9C,KAAI,CAAC,QAAQ,IAAI,UAAU,EAAE;AAC3B,UAAQ,IACN,WACA,YAAY,UAAU,UAAU,GAAG,YAAY,CAAC,CAAC,OAC/C,UAAU,UAAU,cAAc,EAAE,CACrC,CACF;;AAGH,QAAO,QAAQ,IAAI,UAAU;;AAG/B,aAAa,WAAW,KACtB,QACG;CACH,MAAM,YAAY,OAAO,QAAQ,WAAW,MAAM,IAAI;CACtD,MAAM,OAAO,OAAO,QAAQ,WAAW,YAAY,IAAI,QAAQ;CAC/D,MAAM,QAAQ,SAAS,YAAY,UAAU,CAAC,OAAO,GAAG;CACxD,MAAM,YAAY,WAAW,QAAQ,IAAI,QAAQ,OAAO;AACxD,QAAO,GAAG,UAAU,KAAK,KAAK;;AAGhC,aAAa,WAAW,IAAI,SAAS,EAAE,IAAmB;AACxD,QAAO,KAAK,UAAU,IAAI,CAAC;;AAG7B,OAAO,SAAS,YAAY,YAAY,GAAG,eAAe,KAAK;AAC7D,cAAa,OAAO,UAAU","names":[],"sources":["../src/logger.ts"],"version":3,"sourcesContent":["import genericDebug from 'debug';\n\nimport type { Debugger } from './debugger';\n\nconst BASE_NAMESPACE = 'wyw-in-js';\n\nexport const logger: Debugger = genericDebug(BASE_NAMESPACE);\n\nconst loggers = new Map<string, Debugger>();\n\nfunction gerOrCreate(namespace: string | null | undefined): Debugger {\n if (!namespace) return logger;\n const lastIndexOf = namespace.lastIndexOf(':');\n if (!loggers.has(namespace)) {\n loggers.set(\n namespace,\n gerOrCreate(namespace.substring(0, lastIndexOf)).extend(\n namespace.substring(lastIndexOf + 1)\n )\n );\n }\n\n return loggers.get(namespace)!;\n}\n\ngenericDebug.formatters.r = (\n ref: string | { namespace: string; text?: string }\n) => {\n const namespace = typeof ref === 'string' ? ref : ref.namespace;\n const text = typeof ref === 'string' ? namespace : ref.text ?? namespace;\n const color = parseInt(gerOrCreate(namespace).color, 10);\n const colorCode = `\\u001B[3${color < 8 ? color : `8;5;${color}`}`;\n return `${colorCode};1m${text}\\u001B[0m`;\n};\n\ngenericDebug.formatters.f = function f(fn: () => unknown) {\n return JSON.stringify(fn());\n};\n\nexport function enableDebug(namespace = `${BASE_NAMESPACE}:*`) {\n genericDebug.enable(namespace);\n}\n"],"file":"logger.js"}
@@ -1,30 +1,25 @@
1
- import { Minimatch } from 'minimatch';
2
-
3
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
-
1
+ import { Minimatch } from "minimatch";
5
2
  const cachedMatchers = new Map();
6
3
  export const isFeatureEnabled = (features, featureName, filename) => {
7
- const value = features?.[featureName] ?? false;
8
- if (typeof value === 'boolean') {
9
- return value;
10
- }
11
-
12
- // Fast check for glob patterns
13
- if (value === '*' || value === '**/*') {
14
- return true;
15
- }
16
- const array = Array.isArray(value) ? value : [value];
17
-
18
- /**
19
- * Check rule by rule like .gitignore
20
- */
21
- return array.map(pattern => {
22
- let matcher = cachedMatchers.get(pattern);
23
- if (!matcher) {
24
- matcher = [pattern.startsWith('!'), new Minimatch(pattern)];
25
- cachedMatchers.set(pattern, matcher);
26
- }
27
- return [matcher[0], matcher[1].match(filename)];
28
- }).reduce((acc, [negated, match]) => negated ? acc && match : acc || match, false);
4
+ const value = features?.[featureName] ?? false;
5
+ if (typeof value === "boolean") {
6
+ return value;
7
+ }
8
+ // Fast check for glob patterns
9
+ if (value === "*" || value === "**/*") {
10
+ return true;
11
+ }
12
+ const array = Array.isArray(value) ? value : [value];
13
+ /**
14
+ * Check rule by rule like .gitignore
15
+ */
16
+ return array.map((pattern) => {
17
+ let matcher = cachedMatchers.get(pattern);
18
+ if (!matcher) {
19
+ matcher = [pattern.startsWith("!"), new Minimatch(pattern)];
20
+ cachedMatchers.set(pattern, matcher);
21
+ }
22
+ return [matcher[0], matcher[1].match(filename)];
23
+ }).reduce((acc, [negated, match]) => negated ? acc && match : acc || match, false);
29
24
  };
30
- //# sourceMappingURL=isFeatureEnabled.js.map
25
+ //# sourceMappingURL=isFeatureEnabled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isFeatureEnabled.js","names":["Minimatch","cachedMatchers","Map","isFeatureEnabled","features","featureName","filename","value","array","Array","isArray","map","pattern","matcher","get","startsWith","set","match","reduce","acc","negated"],"sources":["../../src/options/isFeatureEnabled.ts"],"sourcesContent":["import { Minimatch } from 'minimatch';\n\nimport type { FeatureFlag } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype NoInfer<T> = [T][T extends any ? 0 : never];\n\nconst cachedMatchers = new Map<\n string,\n [nagated: boolean, matcher: Minimatch]\n>();\n\nexport const isFeatureEnabled = <T extends string>(\n features:\n | {\n [K in T]?: FeatureFlag;\n }\n | undefined,\n featureName: NoInfer<T>,\n filename: string\n) => {\n const value = features?.[featureName] ?? false;\n if (typeof value === 'boolean') {\n return value;\n }\n\n // Fast check for glob patterns\n if (value === '*' || value === '**/*') {\n return true;\n }\n\n const array: string[] = Array.isArray(value) ? value : [value];\n\n /**\n * Check rule by rule like .gitignore\n */\n return array\n .map((pattern) => {\n let matcher = cachedMatchers.get(pattern);\n if (!matcher) {\n matcher = [pattern.startsWith('!'), new Minimatch(pattern)];\n cachedMatchers.set(pattern, matcher);\n }\n\n return [matcher[0], matcher[1].match(filename)];\n })\n .reduce(\n (acc, [negated, match]) => (negated ? acc && match : acc || match),\n false\n );\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,WAAW;;AAIrC;;AAGA,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAG5B,CAAC;AAEH,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,QAIa,EACbC,WAAuB,EACvBC,QAAgB,KACb;EACH,MAAMC,KAAK,GAAGH,QAAQ,GAAGC,WAAW,CAAC,IAAI,KAAK;EAC9C,IAAI,OAAOE,KAAK,KAAK,SAAS,EAAE;IAC9B,OAAOA,KAAK;EACd;;EAEA;EACA,IAAIA,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,MAAM,EAAE;IACrC,OAAO,IAAI;EACb;EAEA,MAAMC,KAAe,GAAGC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;;EAE9D;AACF;AACA;EACE,OAAOC,KAAK,CACTG,GAAG,CAAEC,OAAO,IAAK;IAChB,IAAIC,OAAO,GAAGZ,cAAc,CAACa,GAAG,CAACF,OAAO,CAAC;IACzC,IAAI,CAACC,OAAO,EAAE;MACZA,OAAO,GAAG,CAACD,OAAO,CAACG,UAAU,CAAC,GAAG,CAAC,EAAE,IAAIf,SAAS,CAACY,OAAO,CAAC,CAAC;MAC3DX,cAAc,CAACe,GAAG,CAACJ,OAAO,EAAEC,OAAO,CAAC;IACtC;IAEA,OAAO,CAACA,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAACI,KAAK,CAACX,QAAQ,CAAC,CAAC;EACjD,CAAC,CAAC,CACDY,MAAM,CACL,CAACC,GAAG,EAAE,CAACC,OAAO,EAAEH,KAAK,CAAC,KAAMG,OAAO,GAAGD,GAAG,IAAIF,KAAK,GAAGE,GAAG,IAAIF,KAAM,EAClE,KACF,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"mappings":"AAAA,SAAS,iBAAiB;AAO1B,MAAM,iBAAiB,IAAI,KAGxB;AAEH,OAAO,MAAM,oBACX,UAKA,aACA,aACG;CACH,MAAM,QAAQ,WAAW,gBAAgB;AACzC,KAAI,OAAO,UAAU,WAAW;AAC9B,SAAO;;;AAIT,KAAI,UAAU,OAAO,UAAU,QAAQ;AACrC,SAAO;;CAGT,MAAM,QAAkB,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM;;;;AAK9D,QAAO,MACJ,KAAK,YAAY;EAChB,IAAI,UAAU,eAAe,IAAI,QAAQ;AACzC,MAAI,CAAC,SAAS;AACZ,aAAU,CAAC,QAAQ,WAAW,IAAI,EAAE,IAAI,UAAU,QAAQ,CAAC;AAC3D,kBAAe,IAAI,SAAS,QAAQ;;AAGtC,SAAO,CAAC,QAAQ,IAAI,QAAQ,GAAG,MAAM,SAAS,CAAC;GAC/C,CACD,QACE,KAAK,CAAC,SAAS,WAAY,UAAU,OAAO,QAAQ,OAAO,OAC5D,MACD","names":[],"sources":["../../src/options/isFeatureEnabled.ts"],"version":3,"sourcesContent":["import { Minimatch } from 'minimatch';\n\nimport type { FeatureFlag } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype NoInfer<T> = [T][T extends any ? 0 : never];\n\nconst cachedMatchers = new Map<\n string,\n [nagated: boolean, matcher: Minimatch]\n>();\n\nexport const isFeatureEnabled = <T extends string>(\n features:\n | {\n [K in T]?: FeatureFlag;\n }\n | undefined,\n featureName: NoInfer<T>,\n filename: string\n) => {\n const value = features?.[featureName] ?? false;\n if (typeof value === 'boolean') {\n return value;\n }\n\n // Fast check for glob patterns\n if (value === '*' || value === '**/*') {\n return true;\n }\n\n const array: string[] = Array.isArray(value) ? value : [value];\n\n /**\n * Check rule by rule like .gitignore\n */\n return array\n .map((pattern) => {\n let matcher = cachedMatchers.get(pattern);\n if (!matcher) {\n matcher = [pattern.startsWith('!'), new Minimatch(pattern)];\n cachedMatchers.set(pattern, matcher);\n }\n\n return [matcher[0], matcher[1].match(filename)];\n })\n .reduce(\n (acc, [negated, match]) => (negated ? acc && match : acc || match),\n false\n );\n};\n"],"file":"isFeatureEnabled.js"}
@@ -0,0 +1,49 @@
1
+ const isNativeResolverAlias = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
2
+ const toAliasTargets = (replacement) => {
3
+ if (typeof replacement === "string") {
4
+ return [replacement];
5
+ }
6
+ if (Array.isArray(replacement) && replacement.every((item) => typeof item === "string")) {
7
+ return replacement;
8
+ }
9
+ return null;
10
+ };
11
+ export const toNativeResolverAlias = (alias) => {
12
+ const nativeAlias = {};
13
+ const entries = Array.isArray(alias) ? alias : isNativeResolverAlias(alias) ? Object.entries(alias).map(([find, replacement]) => ({
14
+ find,
15
+ replacement
16
+ })) : [];
17
+ entries.forEach((rawEntry) => {
18
+ if (!isNativeResolverAlias(rawEntry)) {
19
+ return;
20
+ }
21
+ const entry = rawEntry;
22
+ const find = "find" in entry ? entry.find : entry.name;
23
+ const replacement = "replacement" in entry ? entry.replacement : entry.alias;
24
+ const targets = toAliasTargets(replacement);
25
+ if (typeof find !== "string" || !targets) {
26
+ return;
27
+ }
28
+ nativeAlias[find] = targets;
29
+ });
30
+ return nativeAlias;
31
+ };
32
+ export const mergeOxcResolverAlias = (oxcOptions, bundlerAlias) => {
33
+ if (Object.keys(bundlerAlias).length === 0) {
34
+ return oxcOptions;
35
+ }
36
+ const resolver = oxcOptions?.resolver ?? {};
37
+ const configuredAlias = isNativeResolverAlias(resolver.alias) ? resolver.alias : {};
38
+ return {
39
+ ...oxcOptions,
40
+ resolver: {
41
+ ...resolver,
42
+ alias: {
43
+ ...bundlerAlias,
44
+ ...configuredAlias
45
+ }
46
+ }
47
+ };
48
+ };
49
+ //# sourceMappingURL=nativeResolverOptions.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"AAcA,MAAM,yBAAyB,UAC7B,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,MAAM;AAEtE,MAAM,kBACJ,gBAC4C;AAC5C,KAAI,OAAO,gBAAgB,UAAU;AACnC,SAAO,CAAC,YAAY;;AAGtB,KACE,MAAM,QAAQ,YAAY,IAC1B,YAAY,OAAO,SAAS,OAAO,SAAS,SAAS,EACrD;AACA,SAAO;;AAGT,QAAO;;AAGT,OAAO,MAAM,yBACX,UACwB;CACxB,MAAM,cAAmC,EAAE;CAE3C,MAAM,UAAU,MAAM,QAAQ,MAAM,GAChC,QACA,sBAAsB,MAAM,GAC1B,OAAO,QAAQ,MAAM,CAAC,KAAK,CAAC,MAAM,kBAAkB;EAClD;EACA;EACD,EAAE,GACH,EAAE;AAER,SAAQ,SAAS,aAAa;AAC5B,MAAI,CAAC,sBAAsB,SAAS,EAAE;AACpC;;EAGF,MAAM,QAAQ;EACd,MAAM,OAAO,UAAU,QAAQ,MAAM,OAAO,MAAM;EAClD,MAAM,cACJ,iBAAiB,QAAQ,MAAM,cAAc,MAAM;EACrD,MAAM,UAAU,eAAe,YAAY;AAE3C,MAAI,OAAO,SAAS,YAAY,CAAC,SAAS;AACxC;;AAGF,cAAY,QAAQ;GACpB;AAEF,QAAO;;AAGT,OAAO,MAAM,yBACX,YACA,iBAC2B;AAC3B,KAAI,OAAO,KAAK,aAAa,CAAC,WAAW,GAAG;AAC1C,SAAO;;CAGT,MAAM,WAAW,YAAY,YAAY,EAAE;CAC3C,MAAM,kBAAkB,sBAAsB,SAAS,MAAM,GACzD,SAAS,QACT,EAAE;AAEN,QAAO;EACL,GAAG;EACH,UAAU;GACR,GAAG;GACH,OAAO;IACL,GAAG;IACH,GAAG;IACJ;GACF;EACF","names":[],"sources":["../../src/options/nativeResolverOptions.ts"],"version":3,"sourcesContent":["import type { OxcOptions } from './types';\n\nexport type NativeResolverAlias = Record<\n string,\n Array<string | undefined | null>\n>;\n\ntype AliasEntry = {\n alias?: unknown;\n find?: unknown;\n name?: unknown;\n replacement?: unknown;\n};\n\nconst isNativeResolverAlias = (value: unknown): value is NativeResolverAlias =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst toAliasTargets = (\n replacement: unknown\n): Array<string | undefined | null> | null => {\n if (typeof replacement === 'string') {\n return [replacement];\n }\n\n if (\n Array.isArray(replacement) &&\n replacement.every((item) => typeof item === 'string')\n ) {\n return replacement;\n }\n\n return null;\n};\n\nexport const toNativeResolverAlias = (\n alias: unknown\n): NativeResolverAlias => {\n const nativeAlias: NativeResolverAlias = {};\n\n const entries = Array.isArray(alias)\n ? alias\n : isNativeResolverAlias(alias)\n ? Object.entries(alias).map(([find, replacement]) => ({\n find,\n replacement,\n }))\n : [];\n\n entries.forEach((rawEntry) => {\n if (!isNativeResolverAlias(rawEntry)) {\n return;\n }\n\n const entry = rawEntry as AliasEntry;\n const find = 'find' in entry ? entry.find : entry.name;\n const replacement =\n 'replacement' in entry ? entry.replacement : entry.alias;\n const targets = toAliasTargets(replacement);\n\n if (typeof find !== 'string' || !targets) {\n return;\n }\n\n nativeAlias[find] = targets;\n });\n\n return nativeAlias;\n};\n\nexport const mergeOxcResolverAlias = (\n oxcOptions: OxcOptions | undefined,\n bundlerAlias: NativeResolverAlias\n): OxcOptions | undefined => {\n if (Object.keys(bundlerAlias).length === 0) {\n return oxcOptions;\n }\n\n const resolver = oxcOptions?.resolver ?? {};\n const configuredAlias = isNativeResolverAlias(resolver.alias)\n ? resolver.alias\n : {};\n\n return {\n ...oxcOptions,\n resolver: {\n ...resolver,\n alias: {\n ...bundlerAlias,\n ...configuredAlias,\n },\n },\n };\n};\n"],"file":"nativeResolverOptions.js"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=types.js.map
2
+ //# sourceMappingURL=types.js.map