@ainc/fs 0.1.9 → 0.1.13

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 (128) hide show
  1. package/README.md +1 -0
  2. package/bin/cli.js +0 -0
  3. package/dist/copy.d.ts +1 -1
  4. package/dist/copy.d.ts.map +1 -1
  5. package/dist/copy.js +6 -3
  6. package/dist/copy.js.map +1 -1
  7. package/dist/find.d.ts +2 -2
  8. package/dist/find.d.ts.map +1 -1
  9. package/dist/find.js +12 -8
  10. package/dist/find.js.map +1 -1
  11. package/dist/findFile.d.ts +1 -1
  12. package/dist/findFile.d.ts.map +1 -1
  13. package/dist/findFile.js.map +1 -1
  14. package/dist/finddir.d.ts +1 -1
  15. package/dist/finddir.d.ts.map +1 -1
  16. package/dist/finddir.js.map +1 -1
  17. package/dist/helpers/FileResolver.d.ts +54 -0
  18. package/dist/helpers/FileResolver.d.ts.map +1 -0
  19. package/dist/helpers/FileResolver.js +184 -0
  20. package/dist/helpers/FileResolver.js.map +1 -0
  21. package/dist/helpers/compose.d.ts +14 -0
  22. package/dist/helpers/compose.d.ts.map +1 -0
  23. package/dist/helpers/compose.js +38 -0
  24. package/dist/helpers/compose.js.map +1 -0
  25. package/dist/helpers/each.d.ts +7 -0
  26. package/dist/helpers/each.d.ts.map +1 -0
  27. package/dist/helpers/each.js +21 -0
  28. package/dist/helpers/each.js.map +1 -0
  29. package/dist/helpers/match.d.ts +7 -0
  30. package/dist/helpers/match.d.ts.map +1 -0
  31. package/dist/helpers/match.js +30 -0
  32. package/dist/helpers/match.js.map +1 -0
  33. package/dist/helpers/normalizePath.d.ts +23 -0
  34. package/dist/helpers/normalizePath.d.ts.map +1 -0
  35. package/dist/helpers/normalizePath.js +37 -0
  36. package/dist/helpers/normalizePath.js.map +1 -0
  37. package/dist/helpers/safeCall.d.ts +7 -0
  38. package/dist/helpers/safeCall.d.ts.map +1 -0
  39. package/dist/helpers/safeCall.js +24 -0
  40. package/dist/helpers/safeCall.js.map +1 -0
  41. package/dist/helpers/split.d.ts +7 -0
  42. package/dist/helpers/split.d.ts.map +1 -0
  43. package/dist/helpers/split.js +25 -0
  44. package/dist/helpers/split.js.map +1 -0
  45. package/dist/includePaths.js +1 -1
  46. package/dist/includePaths.js.map +1 -1
  47. package/dist/index.d.ts +2 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +75 -73
  50. package/dist/index.js.map +1 -1
  51. package/dist/isRelativePath.d.ts.map +1 -1
  52. package/dist/isRelativePath.js +27 -1
  53. package/dist/isRelativePath.js.map +1 -1
  54. package/dist/json.d.ts +2 -2
  55. package/dist/json.d.ts.map +1 -1
  56. package/dist/json.js.map +1 -1
  57. package/dist/jsonc.d.ts +2 -2
  58. package/dist/jsonc.d.ts.map +1 -1
  59. package/dist/jsonc.js +2 -3
  60. package/dist/jsonc.js.map +1 -1
  61. package/dist/{stripComments.d.ts → normalizeJSON.d.ts} +2 -2
  62. package/dist/normalizeJSON.d.ts.map +1 -0
  63. package/dist/normalizeJSON.js +145 -0
  64. package/dist/normalizeJSON.js.map +1 -0
  65. package/dist/realpath.d.ts +13 -0
  66. package/dist/realpath.d.ts.map +1 -0
  67. package/dist/realpath.js +33 -0
  68. package/dist/realpath.js.map +1 -0
  69. package/dist/relative.d.ts.map +1 -1
  70. package/dist/relative.js +5 -1
  71. package/dist/relative.js.map +1 -1
  72. package/dist/resolve.d.ts +1 -0
  73. package/dist/resolve.d.ts.map +1 -1
  74. package/dist/resolve.js +1 -1
  75. package/dist/resolve.js.map +1 -1
  76. package/dist/resolvePath.d.ts +27 -0
  77. package/dist/resolvePath.d.ts.map +1 -0
  78. package/dist/resolvePath.js +178 -0
  79. package/dist/resolvePath.js.map +1 -0
  80. package/dist/stat.d.ts +1 -2
  81. package/dist/stat.d.ts.map +1 -1
  82. package/dist/supdir.d.ts +6 -0
  83. package/dist/supdir.d.ts.map +1 -1
  84. package/dist/supdir.js +28 -1
  85. package/dist/supdir.js.map +1 -1
  86. package/dist/writeFile.d.ts +8 -2
  87. package/dist/writeFile.d.ts.map +1 -1
  88. package/dist/writeFile.js +6 -3
  89. package/dist/writeFile.js.map +1 -1
  90. package/package.json +5 -5
  91. package/src/copy.ts +10 -4
  92. package/src/find.ts +16 -12
  93. package/src/findFile.ts +1 -1
  94. package/src/finddir.ts +1 -1
  95. package/src/helpers/FileResolver.ts +282 -0
  96. package/src/helpers/compose.ts +49 -0
  97. package/src/helpers/each.ts +19 -0
  98. package/src/helpers/match.ts +31 -0
  99. package/src/helpers/normalizePath.ts +51 -0
  100. package/src/helpers/safeCall.ts +21 -0
  101. package/src/helpers/split.ts +25 -0
  102. package/src/includePaths.ts +1 -1
  103. package/src/index.ts +2 -1
  104. package/src/isRelativePath.ts +36 -1
  105. package/src/json.ts +3 -3
  106. package/src/jsonc.ts +5 -6
  107. package/src/normalizeJSON.ts +167 -0
  108. package/src/realpath.ts +35 -0
  109. package/src/relative.ts +6 -1
  110. package/src/resolve.ts +2 -1
  111. package/src/resolvePath.ts +234 -0
  112. package/src/stat.ts +1 -1
  113. package/src/supdir.ts +31 -0
  114. package/src/writeFile.ts +11 -8
  115. package/dist/resolveAlias.d.ts +0 -21
  116. package/dist/resolveAlias.d.ts.map +0 -1
  117. package/dist/resolveAlias.js +0 -108
  118. package/dist/resolveAlias.js.map +0 -1
  119. package/dist/stripBOM.d.ts +0 -7
  120. package/dist/stripBOM.d.ts.map +0 -1
  121. package/dist/stripBOM.js +0 -24
  122. package/dist/stripBOM.js.map +0 -1
  123. package/dist/stripComments.d.ts.map +0 -1
  124. package/dist/stripComments.js +0 -100
  125. package/dist/stripComments.js.map +0 -1
  126. package/src/resolveAlias.ts +0 -153
  127. package/src/stripBOM.ts +0 -24
  128. package/src/stripComments.ts +0 -112
package/README.md CHANGED
@@ -42,6 +42,7 @@ import * as fs from '@ainc/fs';
42
42
  * findFile(name: string, dir = '.', options?: Options): string[];
43
43
  * json(file: string): object | null;
44
44
  * json(file: string, data: object): object | null;
45
+ * resolveFile(file: string, options?: Options): void | string;
45
46
  * resolveAlias(options: Options): ResolvePath;
46
47
  * isAbsolutePath(source: string): boolean;
47
48
  * isRelativePath(source: string): boolean;
package/bin/cli.js CHANGED
File without changes
package/dist/copy.d.ts CHANGED
@@ -29,7 +29,7 @@ interface Options {
29
29
  *****************************************
30
30
  */
31
31
  declare function copy(src: string, dest: string): void;
32
- declare function copy(src: string, dest: string, mode: string): void;
32
+ declare function copy(src: string, dest: string, mode: Options['mode']): void;
33
33
  declare function copy(src: string, dest: string, transform: Transform): void;
34
34
  declare function copy(src: string, dest: string, { mode, ignore, transform }: Options): void;
35
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":";AASA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAOzB;;;;GAIG;AACH,UAAU,SAAS;IACf,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC;CAC3D;AAGD;;;;GAIG;AACH,UAAU,OAAO;IACb,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAwDD;;;;GAIG;AACH,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;AAC/C,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;AAC7D,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;AACrE,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;AAwBrF;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":";AASA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAOzB;;;;GAIG;AACH,UAAU,SAAS;IACf,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC;CAC3D;AAGD;;;;GAIG;AACH,UAAU,OAAO;IACb,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AA8DD;;;;GAIG;AACH,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;AAC/C,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AACtE,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;AACrE,iBAAS,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;AAwBrF;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,CAAC"}
package/dist/copy.js CHANGED
@@ -45,18 +45,21 @@ function doCopy(src, dest, options) {
45
45
  return;
46
46
  }
47
47
  }
48
- // 复制文件或目录
48
+ // 复制目录
49
49
  if (isDirectory) {
50
50
  // 创建目标目录
51
51
  mkdir_1.mkdir(dest);
52
52
  // 复制子文件
53
- fs.readdirSync(src).forEach(name => {
53
+ return fs.readdirSync(src).forEach(name => {
54
54
  if (!ignore.includes(name)) {
55
55
  doCopy(path.join(src, name), path.join(dest, name), options);
56
56
  }
57
57
  });
58
58
  }
59
- else if (transform) {
59
+ // 创建目标目录
60
+ mkdir_1.mkdir(path.dirname(dest));
61
+ // 复制文件
62
+ if (transform) {
60
63
  fs.writeFileSync(dest, transform(fs.readFileSync(src, 'utf8'), srcStats.path, srcStats));
61
64
  }
62
65
  else {
package/dist/copy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"copy.js","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,yBAAyB;AACzB,6BAA6B;AAC7B,iCAA8B;AAC9B,mCAAgC;AAChC,mCAAgC;AAyBhC;;;;GAIG;AACH,SAAS,MAAM,CAAC,GAAW,EAAE,IAAY,EAAE,OAA0B;IACjE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAI,CAAC,GAAG,CAAC,CAAC;IAE3B,OAAO;IACP,IAAI,QAAQ,EAAE;QACV,IAAI,SAAS,GAAG,WAAI,CAAC,IAAI,CAAC,EACtB,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEzC,SAAS;QACT,IAAI,SAAS,EAAE;YACX,IAAI,IAAI,KAAK,OAAO,EAAE;gBAElB,SAAS;gBACT,aAAK,CAAC,IAAI,CAAC,CAAC;gBAEZ,OAAO;gBACP,SAAS,GAAG,IAAI,CAAC;aACpB;iBAAM,IAAI,IAAI,KAAK,OAAO,IAAI,WAAW,EAAE;gBACxC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE;oBAC1B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;iBACzD;aACJ;iBAAM;gBACH,OAAO;aACV;SACJ;QAED,UAAU;QACV,IAAI,WAAW,EAAE;YAEb,SAAS;YACT,aAAK,CAAC,IAAI,CAAC,CAAC;YAEZ,QAAQ;YACR,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;iBAChE;YACL,CAAC,CAAC,CAAC;SACN;aAAM,IAAI,SAAS,EAAE;YAClB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC5F;aAAM;YACH,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC9B;KACJ;AACL,CAAC;AAYD,SAAS,IAAI,CAAC,GAAW,EAAE,IAAY,EAAE,UAAwC,EAAE;IAC/E,MAAM,IAAI,GAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;IAE/E,OAAO;IACP,QAAQ,OAAO,OAAO,EAAE;QACpB,KAAK,UAAU;YACX,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YACzB,MAAM;QACV,KAAK,QAAQ;YACT,IAAI,CAAC,IAAI,GAAG,OAA0B,CAAC;YACvC,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM;QACV;YACI,MAAM;KACb;IAED,OAAO;IACP,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAyB,CAAC,CAAC;AACjD,CAAC;AAQQ,oBAAI"}
1
+ {"version":3,"file":"copy.js","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,yBAAyB;AACzB,6BAA6B;AAC7B,iCAA8B;AAC9B,mCAAgC;AAChC,mCAAgC;AAyBhC;;;;GAIG;AACH,SAAS,MAAM,CAAC,GAAW,EAAE,IAAY,EAAE,OAA0B;IACjE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAI,CAAC,GAAG,CAAC,CAAC;IAE3B,OAAO;IACP,IAAI,QAAQ,EAAE;QACV,IAAI,SAAS,GAAG,WAAI,CAAC,IAAI,CAAC,EACtB,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEzC,SAAS;QACT,IAAI,SAAS,EAAE;YACX,IAAI,IAAI,KAAK,OAAO,EAAE;gBAElB,SAAS;gBACT,aAAK,CAAC,IAAI,CAAC,CAAC;gBAEZ,OAAO;gBACP,SAAS,GAAG,IAAI,CAAC;aACpB;iBAAM,IAAI,IAAI,KAAK,OAAO,IAAI,WAAW,EAAE;gBACxC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE;oBAC1B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;iBACzD;aACJ;iBAAM;gBACH,OAAO;aACV;SACJ;QAED,OAAO;QACP,IAAI,WAAW,EAAE;YAEb,SAAS;YACT,aAAK,CAAC,IAAI,CAAC,CAAC;YAEZ,QAAQ;YACR,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;iBAChE;YACL,CAAC,CAAC,CAAC;SACN;QAED,SAAS;QACT,aAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1B,OAAO;QACP,IAAI,SAAS,EAAE;YACX,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC5F;aAAM;YACH,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC9B;KACJ;AACL,CAAC;AAYD,SAAS,IAAI,CAAC,GAAW,EAAE,IAAY,EAAE,UAAwC,EAAE;IAC/E,MAAM,IAAI,GAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;IAE/E,OAAO;IACP,QAAQ,OAAO,OAAO,EAAE;QACpB,KAAK,UAAU;YACX,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YACzB,MAAM;QACV,KAAK,QAAQ;YACT,IAAI,CAAC,IAAI,GAAG,OAA0B,CAAC;YACvC,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM;QACV;YACI,MAAM;KACb;IAED,OAAO;IACP,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAyB,CAAC,CAAC;AACjD,CAAC;AAQQ,oBAAI"}
package/dist/find.d.ts CHANGED
@@ -11,13 +11,13 @@ interface Options {
11
11
  * 创建匹配函数
12
12
  *****************************************
13
13
  */
14
- export declare function matchsWith(name: string): (str: string) => boolean;
14
+ export declare function matchsWith(name: string | RegExp): (str: string) => boolean;
15
15
  /**
16
16
  *****************************************
17
17
  * 查找目录
18
18
  *****************************************
19
19
  */
20
- declare function find(name: string, dir?: string, options?: Options): string[];
20
+ declare function find(name: string | RegExp, dir?: string, options?: Options): string[];
21
21
  /**
22
22
  *****************************************
23
23
  * 抛出接口
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,UAAU,OAAO;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAGD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CA6BjE;AAGD;;;;GAIG;AACH,iBAAS,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAM,EAAE,OAAO,GAAE,OAAY,GAAG,MAAM,EAAE,CAuBtE;AAGD;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,UAAU,OAAO;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAGD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAiC1E;AAGD;;;;GAIG;AACH,iBAAS,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAM,EAAE,OAAO,GAAE,OAAY,GAAG,MAAM,EAAE,CAuB/E;AAGD;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,CAAC"}
package/dist/find.js CHANGED
@@ -20,23 +20,27 @@ const isDirectory_1 = require("./isDirectory");
20
20
  *****************************************
21
21
  */
22
22
  function matchsWith(name) {
23
- // 匹配部
24
- if (name === '*') {
23
+ // 匹配正则
24
+ if (name instanceof RegExp) {
25
+ const reg = name;
26
+ // 返回函数
27
+ return (str) => reg.test(str);
28
+ }
29
+ // 匹配全部
30
+ if (name === '*' || !name) {
25
31
  return () => true;
26
32
  }
27
33
  // 匹配开头
28
34
  if (name.charAt(0) === '^') {
29
- // 获取匹配项
30
- name = name.slice(1);
35
+ const prefix = name.slice(1);
31
36
  // 返回匹配函数
32
- return (str) => str.startsWith(name);
37
+ return (str) => str.startsWith(prefix);
33
38
  }
34
39
  // 匹配结束
35
40
  if (name.charAt(name.length - 1) === '$') {
36
- // 获取匹配项
37
- name = name.slice(0, -1);
41
+ const suffix = name.slice(0, -1);
38
42
  // 返回匹配函数
39
- return (str) => str.endsWith(name);
43
+ return (str) => str.endsWith(suffix);
40
44
  }
41
45
  // 完全匹配
42
46
  return (str) => str === name;
package/dist/find.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,uCAAoC;AACpC,+CAA4C;AAa5C;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAY;IAEnC,MAAM;IACN,IAAI,IAAI,KAAK,GAAG,EAAE;QACd,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;KACrB;IAED,OAAO;IACP,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAExB,QAAQ;QACR,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAErB,SAAS;QACT,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAChD;IAED,OAAO;IACP,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QAEtC,QAAQ;QACR,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzB,SAAS;QACT,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC9C;IAED,OAAO;IACP,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC;AACzC,CAAC;AA7BD,gCA6BC;AAGD;;;;GAIG;AACH,SAAS,IAAI,CAAC,IAAY,EAAE,GAAG,GAAG,GAAG,EAAE,UAAmB,EAAE;IACxD,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,EACxB,MAAM,GAAa,EAAE,EACrB,MAAM,GAAa,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEvE,OAAO;IACP,iBAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAE9B,OAAO;YACP,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACnB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAClC;YAED,QAAQ;YACR,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aAC3D;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,OAAO,MAAM,CAAC;AAClB,CAAC;AAQQ,oBAAI"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,uCAAoC;AACpC,+CAA4C;AAa5C;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAqB;IAE5C,OAAO;IACP,IAAI,IAAI,YAAY,MAAM,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC;QAEjB,OAAO;QACP,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACzC;IAED,OAAO;IACP,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE;QACvB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;KACrB;IAED,OAAO;IACP,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7B,SAAS;QACT,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KAClD;IAED,OAAO;IACP,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjC,SAAS;QACT,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAChD;IAED,OAAO;IACP,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC;AACzC,CAAC;AAjCD,gCAiCC;AAGD;;;;GAIG;AACH,SAAS,IAAI,CAAC,IAAqB,EAAE,GAAG,GAAG,GAAG,EAAE,UAAmB,EAAE;IACjE,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,EACxB,MAAM,GAAa,EAAE,EACrB,MAAM,GAAa,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEvE,OAAO;IACP,iBAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAE9B,OAAO;YACP,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACnB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAClC;YAED,QAAQ;YACR,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aAC3D;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,OAAO,MAAM,CAAC;AAClB,CAAC;AAQQ,oBAAI"}
@@ -11,7 +11,7 @@ interface Options {
11
11
  * 查找目录
12
12
  *****************************************
13
13
  */
14
- declare function findFile(name: string, dir?: string, options?: Options): string[];
14
+ declare function findFile(name: string | RegExp, dir?: string, options?: Options): string[];
15
15
  /**
16
16
  *****************************************
17
17
  * 抛出接口
@@ -1 +1 @@
1
- {"version":3,"file":"findFile.d.ts","sourceRoot":"","sources":["../src/findFile.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,UAAU,OAAO;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAGD;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAM,EAAE,OAAO,GAAE,OAAY,GAAG,MAAM,EAAE,CAkB1E;AAGD;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"findFile.d.ts","sourceRoot":"","sources":["../src/findFile.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,UAAU,OAAO;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAGD;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAM,EAAE,OAAO,GAAE,OAAY,GAAG,MAAM,EAAE,CAkBnF;AAGD;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"findFile.js","sourceRoot":"","sources":["../src/findFile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,uCAAoC;AACpC,+CAA4C;AAC5C,iCAAoC;AAapC;;;;GAIG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAG,GAAG,GAAG,EAAE,UAAmB,EAAE;IAC5D,IAAI,KAAK,GAAG,iBAAU,CAAC,IAAI,CAAC,EACxB,MAAM,GAAa,EAAE,EACrB,MAAM,GAAa,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEvE,OAAO;IACP,iBAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aAC9D;iBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,OAAO,MAAM,CAAC;AAClB,CAAC;AAQQ,4BAAQ"}
1
+ {"version":3,"file":"findFile.js","sourceRoot":"","sources":["../src/findFile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,uCAAoC;AACpC,+CAA4C;AAC5C,iCAAoC;AAapC;;;;GAIG;AACH,SAAS,QAAQ,CAAC,IAAqB,EAAE,GAAG,GAAG,GAAG,EAAE,UAAmB,EAAE;IACrE,IAAI,KAAK,GAAG,iBAAU,CAAC,IAAI,CAAC,EACxB,MAAM,GAAa,EAAE,EACrB,MAAM,GAAa,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEvE,OAAO;IACP,iBAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aAC9D;iBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,OAAO,MAAM,CAAC;AAClB,CAAC;AAQQ,4BAAQ"}
package/dist/finddir.d.ts CHANGED
@@ -11,7 +11,7 @@ interface Options {
11
11
  * 查找目录
12
12
  *****************************************
13
13
  */
14
- declare function finddir(name: string, dir?: string, options?: Options): string[];
14
+ declare function finddir(name: string | RegExp, dir?: string, options?: Options): string[];
15
15
  /**
16
16
  *****************************************
17
17
  * 抛出接口
@@ -1 +1 @@
1
- {"version":3,"file":"finddir.d.ts","sourceRoot":"","sources":["../src/finddir.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,UAAU,OAAO;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAGD;;;;GAIG;AACH,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAM,EAAE,OAAO,GAAE,OAAY,GAAG,MAAM,EAAE,CAkBzE;AAGD;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"finddir.d.ts","sourceRoot":"","sources":["../src/finddir.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,UAAU,OAAO;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAGD;;;;GAIG;AACH,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAM,EAAE,OAAO,GAAE,OAAY,GAAG,MAAM,EAAE,CAkBlF;AAGD;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"finddir.js","sourceRoot":"","sources":["../src/finddir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,uCAAoC;AACpC,+CAA4C;AAC5C,iCAAoC;AAapC;;;;GAIG;AACH,SAAS,OAAO,CAAC,IAAY,EAAE,GAAG,GAAG,GAAG,EAAE,UAAmB,EAAE;IAC3D,IAAI,KAAK,GAAG,iBAAU,CAAC,IAAI,CAAC,EACxB,MAAM,GAAa,EAAE,EACrB,MAAM,GAAa,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEvE,OAAO;IACP,iBAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;iBAAM;gBACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aAC7D;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,OAAO,MAAM,CAAC;AAClB,CAAC;AAQQ,0BAAO"}
1
+ {"version":3,"file":"finddir.js","sourceRoot":"","sources":["../src/finddir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,uCAAoC;AACpC,+CAA4C;AAC5C,iCAAoC;AAapC;;;;GAIG;AACH,SAAS,OAAO,CAAC,IAAqB,EAAE,GAAG,GAAG,GAAG,EAAE,UAAmB,EAAE;IACpE,IAAI,KAAK,GAAG,iBAAU,CAAC,IAAI,CAAC,EACxB,MAAM,GAAa,EAAE,EACrB,MAAM,GAAa,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEvE,OAAO;IACP,iBAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;iBAAM;gBACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aAC7D;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,OAAO,MAAM,CAAC;AAClB,CAAC;AAQQ,0BAAO"}
@@ -0,0 +1,54 @@
1
+ import * as Module from 'module';
2
+ /**
3
+ *****************************************
4
+ * 声明属性
5
+ *****************************************
6
+ */
7
+ declare module 'module' {
8
+ const _extensions: Extensions;
9
+ function _nodeModulePaths(basePath: string): string[];
10
+ function _resolveFilename(id: string, parent?: Module, isMain?: boolean): void | string;
11
+ }
12
+ /**
13
+ *****************************************
14
+ * 扩展解析函数
15
+ *****************************************
16
+ */
17
+ declare type Extensions = Record<string, () => void>;
18
+ /**
19
+ *****************************************
20
+ * 配置项
21
+ *****************************************
22
+ */
23
+ export interface Options {
24
+ context?: string;
25
+ modules?: string[];
26
+ extensions?: string[];
27
+ mainFields?: string[];
28
+ useRelativePath?: boolean;
29
+ }
30
+ /**
31
+ *****************************************
32
+ * 解析函数
33
+ *****************************************
34
+ */
35
+ export declare type Handler = (id: string, context?: string) => void | string;
36
+ /**
37
+ *****************************************
38
+ * 文件解析器
39
+ *****************************************
40
+ */
41
+ export interface FileResolver {
42
+ resolvePath: Handler;
43
+ resolveFile: Handler;
44
+ resolveModule: Handler;
45
+ wrapHandler(handler: Handler): Handler;
46
+ }
47
+ /**
48
+ *****************************************
49
+ * 创建路径解析器
50
+ *****************************************
51
+ */
52
+ export declare function createFileResolver(options?: Options): FileResolver;
53
+ export {};
54
+ //# sourceMappingURL=FileResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileResolver.d.ts","sourceRoot":"","sources":["../../src/helpers/FileResolver.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAUjC;;;;GAIG;AACH,OAAO,QAAQ,QAAQ,CAAC;IACb,MAAM,WAAW,EAAE,UAAU,CAAC;IACrC,SAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7D,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;CAClG;AAGD;;;;GAIG;AACH,aAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;AAoE7C;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAGD;;;;GAIG;AACH,oBAAY,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,CAAC;AAGtE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;CAC1C;AAGD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,OAAY,GAAG,YAAY,CAkItE"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ *****************************************
3
+ * Created by edonet@163.com
4
+ * Created on 2021-06-19 00:16:40
5
+ *****************************************
6
+ */
7
+ 'use strict';
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createFileResolver = void 0;
10
+ /**
11
+ *****************************************
12
+ * 加载依赖
13
+ *****************************************
14
+ */
15
+ const path = require("path");
16
+ const Module = require("module");
17
+ const relative_1 = require("../relative");
18
+ const supdir_1 = require("../supdir");
19
+ const json_1 = require("../json");
20
+ const isRelativePath_1 = require("../isRelativePath");
21
+ const safeCall_1 = require("./safeCall");
22
+ const match_1 = require("./match");
23
+ const normalizePath_1 = require("./normalizePath");
24
+ /**
25
+ *****************************************
26
+ * 解析模块目录
27
+ *****************************************
28
+ */
29
+ function resolveModules(context, modules) {
30
+ const rules = [];
31
+ // 生成解析规则
32
+ modules.forEach(value => {
33
+ // 处理绝对路径
34
+ if (path.isAbsolute(value)) {
35
+ return rules.push([0, value]);
36
+ }
37
+ // 处理相对路径
38
+ if (isRelativePath_1.isRelativePath(value)) {
39
+ return rules.push([0, path.resolve(context, value)]);
40
+ }
41
+ // 处理模块路径
42
+ if (value) {
43
+ rules.push([value === 'node_modules' ? 1 : 2, value]);
44
+ }
45
+ });
46
+ // 返回解析函数
47
+ return (resolveFrom, paths) => {
48
+ const result = [];
49
+ // 添加路径
50
+ function add(value) {
51
+ result.includes(value) || result.push(value);
52
+ }
53
+ // 遍历规则
54
+ rules.forEach(([type, value]) => {
55
+ switch (type) {
56
+ case 0:
57
+ return add(value);
58
+ case 1:
59
+ return paths.forEach(add);
60
+ default:
61
+ return supdir_1.mapdir(resolveFrom, (dir) => add(path.join(dir, value)));
62
+ }
63
+ });
64
+ // 返回结果
65
+ return result;
66
+ };
67
+ }
68
+ /**
69
+ *****************************************
70
+ * 创建路径解析器
71
+ *****************************************
72
+ */
73
+ function createFileResolver(options = {}) {
74
+ const exts = options.extensions || ['.js', '.ts', '.mjs', '.jsx', '.tsx', '.json'];
75
+ const cached = new Map();
76
+ const mainFields = options.mainFields || ['main'];
77
+ const basePath = options.context || process.cwd();
78
+ const useRelativePath = !!options.useRelativePath;
79
+ const resolvePaths = resolveModules(basePath, options.modules || ['node_modules']);
80
+ // 执行函数函数
81
+ function invokeHandler(resolve) {
82
+ const extensions = Module._extensions;
83
+ const keys = Object.keys(extensions);
84
+ const cached = {};
85
+ // 添加扩展函数
86
+ keys.forEach(key => (cached[key] = extensions[key], delete extensions[key]));
87
+ exts.forEach(key => (extensions[key] = cached[key] || cached['.js']));
88
+ // 解析文件
89
+ const result = safeCall_1.safeCall(resolve);
90
+ // 清空扩展函数
91
+ exts.forEach(key => (delete extensions[key]));
92
+ keys.forEach(key => (extensions[key] = cached[key]));
93
+ // 返回结果
94
+ return result;
95
+ }
96
+ // 创建解析器
97
+ function createResolver(context) {
98
+ const filename = path.join(context, 'noop.js');
99
+ const module = new Module(filename);
100
+ const paths = resolvePaths(context, Module._nodeModulePaths(context));
101
+ // 更新模块信息
102
+ module.filename = filename;
103
+ module.paths = paths;
104
+ module.loaded = true;
105
+ // 创建解析器
106
+ const resolver = {
107
+ paths,
108
+ resolve(id) {
109
+ return invokeHandler(() => Module._resolveFilename(id, module, false));
110
+ },
111
+ };
112
+ // 生成缓存
113
+ cached.set(context, resolver);
114
+ // 返回解析函数
115
+ return resolver;
116
+ }
117
+ // 解析函数
118
+ function resolvePath(id, context) {
119
+ if (path.isAbsolute(id) || isRelativePath_1.isRelativePath(id)) {
120
+ return resolveFile(id, context);
121
+ }
122
+ else {
123
+ return resolveModule(id, context);
124
+ }
125
+ }
126
+ // 解析文件路径
127
+ function resolveFile(id, context) {
128
+ const resolveFrom = path.resolve(basePath, context || '');
129
+ const resolver = cached.get(resolveFrom) || createResolver(resolveFrom);
130
+ const data = normalizePath_1.normalizePath(id);
131
+ const resolvedPath = resolver.resolve(data.path);
132
+ // 解析失败
133
+ if (!resolvedPath) {
134
+ return;
135
+ }
136
+ // 返回解析结果
137
+ if (!useRelativePath) {
138
+ return resolvedPath + data.query + data.hash;
139
+ }
140
+ // 解析相对路径
141
+ return isRelativePath_1.isRelativePath(data.path) ? id : relative_1.relative(resolveFrom, id);
142
+ }
143
+ // 解析模块路径
144
+ function resolveModule(id, context) {
145
+ const resolveFrom = path.resolve(basePath, context || '');
146
+ const resolver = cached.get(resolveFrom) || createResolver(resolveFrom);
147
+ const data = normalizePath_1.normalizePath(id);
148
+ const resolvedPath = match_1.match(mainFields, (name) => {
149
+ // 使用默认解析
150
+ if (name === 'main') {
151
+ return resolver.resolve(id);
152
+ }
153
+ // 获取包配置信息
154
+ return match_1.match(resolver.paths, (dir) => {
155
+ const pkg = json_1.json(path.join(dir, id, 'package.json'));
156
+ // 存在配置
157
+ if (pkg === null || pkg === void 0 ? void 0 : pkg[name]) {
158
+ return resolver.resolve(path.resolve(dir, id, pkg[name]));
159
+ }
160
+ });
161
+ });
162
+ // 解析失败
163
+ if (!resolvedPath) {
164
+ return;
165
+ }
166
+ // 返回结果
167
+ return useRelativePath ? id : `${resolvedPath}${data.query}${data.hash}`;
168
+ }
169
+ // 包裹函数
170
+ function wrapHandler(resolve) {
171
+ return (id, context) => {
172
+ if (path.isAbsolute(id) || isRelativePath_1.isRelativePath(id)) {
173
+ return resolveFile(id, context);
174
+ }
175
+ else {
176
+ return resolve(id, context);
177
+ }
178
+ };
179
+ }
180
+ // 返回结果
181
+ return { resolvePath, resolveFile, resolveModule, wrapHandler };
182
+ }
183
+ exports.createFileResolver = createFileResolver;
184
+ //# sourceMappingURL=FileResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileResolver.js","sourceRoot":"","sources":["../../src/helpers/FileResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ *****************************************
3
+ * 解析规则
4
+ *****************************************
5
+ */
6
+ declare type Handler = (...args: any[]) => void | unknown;
7
+ /**
8
+ *****************************************
9
+ * 组合函数
10
+ *****************************************
11
+ */
12
+ export declare function compose<T extends Handler>(rules: T[]): T;
13
+ export {};
14
+ //# sourceMappingURL=compose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/helpers/compose.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,aAAK,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC;AAGlD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CA0BxD"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ *****************************************
3
+ * Created by edonet@163.com
4
+ * Created on 2021-12-16 22:20:04
5
+ *****************************************
6
+ */
7
+ 'use strict';
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.compose = void 0;
10
+ /**
11
+ *****************************************
12
+ * 组合函数
13
+ *****************************************
14
+ */
15
+ function compose(rules) {
16
+ // 无处理函数
17
+ if (rules.length === 0) {
18
+ return (() => undefined);
19
+ }
20
+ // 单一处理函数
21
+ if (rules.length === 1) {
22
+ return rules[0];
23
+ }
24
+ // 复合处理函数
25
+ function composed(...args) {
26
+ for (let idx = 0, len = rules.length; idx < len; idx++) {
27
+ const result = rules[idx](...args);
28
+ // 解析成功
29
+ if (result) {
30
+ return result;
31
+ }
32
+ }
33
+ }
34
+ // 返回结果
35
+ return composed;
36
+ }
37
+ exports.compose = compose;
38
+ //# sourceMappingURL=compose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/helpers/compose.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAWb;;;;GAIG;AACH,SAAgB,OAAO,CAAoB,KAAU;IAEjD,QAAQ;IACR,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAM,CAAC;KACjC;IAED,SAAS;IACT,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,SAAS;IACT,SAAS,QAAQ,CAAC,GAAG,IAAW;QAC5B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;YACpD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAEnC,OAAO;YACP,IAAI,MAAM,EAAE;gBACR,OAAO,MAAM,CAAC;aACjB;SACJ;IACL,CAAC;IAED,OAAO;IACP,OAAO,QAAa,CAAC;AACzB,CAAC;AA1BD,0BA0BC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ *****************************************
3
+ * 遍历对象
4
+ *****************************************
5
+ */
6
+ export declare function each<T>(target: T, handler: (value: T[keyof T], key: string) => void): void;
7
+ //# sourceMappingURL=each.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"each.d.ts","sourceRoot":"","sources":["../../src/helpers/each.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAI1F"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ *****************************************
3
+ * Created by edonet@163.com
4
+ * Created on 2021-12-18 16:52:32
5
+ *****************************************
6
+ */
7
+ 'use strict';
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.each = void 0;
10
+ /**
11
+ *****************************************
12
+ * 遍历对象
13
+ *****************************************
14
+ */
15
+ function each(target, handler) {
16
+ if (target && typeof target === 'object') {
17
+ Object.keys(target).forEach(key => handler(target[key], key));
18
+ }
19
+ }
20
+ exports.each = each;
21
+ //# sourceMappingURL=each.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"each.js","sourceRoot":"","sources":["../../src/helpers/each.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,SAAgB,IAAI,CAAI,MAAS,EAAE,OAAiD;IAChF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAc,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KAC5E;AACL,CAAC;AAJD,oBAIC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ *****************************************
3
+ * 匹配列表
4
+ *****************************************
5
+ */
6
+ export declare function match<T, P>(list: T[], handler: (data: T, index: number) => void | P): void | P;
7
+ //# sourceMappingURL=match.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../src/helpers/match.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAgB9F"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ *****************************************
3
+ * Created by edonet@163.com
4
+ * Created on 2021-12-16 00:10:41
5
+ *****************************************
6
+ */
7
+ 'use strict';
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.match = void 0;
10
+ /**
11
+ *****************************************
12
+ * 匹配列表
13
+ *****************************************
14
+ */
15
+ function match(list, handler) {
16
+ // 处理只有一个元素的情况
17
+ if (list.length === 1) {
18
+ return handler(list[0], 0);
19
+ }
20
+ // 处理列表
21
+ for (let idx = 0, len = list.length; idx < len; idx++) {
22
+ const result = handler(list[idx], idx);
23
+ // 返回结果
24
+ if (typeof result !== 'undefined') {
25
+ return result;
26
+ }
27
+ }
28
+ }
29
+ exports.match = match;
30
+ //# sourceMappingURL=match.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/helpers/match.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,CAAC;;;AAGb;;;;GAIG;AACH,SAAgB,KAAK,CAAO,IAAS,EAAE,OAA6C;IAEhF,cAAc;IACd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9B;IAED,OAAO;IACP,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAG,EAAE;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAEvC,OAAO;QACP,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC/B,OAAO,MAAM,CAAC;SACjB;KACJ;AACL,CAAC;AAhBD,sBAgBC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ *****************************************
3
+ * 路径信息
4
+ *****************************************
5
+ */
6
+ export interface PathInformation {
7
+ path: string;
8
+ query: string;
9
+ hash: string;
10
+ }
11
+ /**
12
+ *****************************************
13
+ * 切分字符
14
+ *****************************************
15
+ */
16
+ export declare function split(str: string, sep: string): [string, string];
17
+ /**
18
+ *****************************************
19
+ * 格式化路径
20
+ *****************************************
21
+ */
22
+ export declare function normalizePath(id: string): PathInformation;
23
+ //# sourceMappingURL=normalizePath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizePath.d.ts","sourceRoot":"","sources":["../../src/helpers/normalizePath.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAGD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAUhE;AAGD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,CAMzD"}