@aomex/internal-file-import 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @aomex/internal-file-import
2
2
 
3
+ ## 1.0.2
4
+
3
5
  ## 1.0.1
4
6
 
5
7
  ## 1.0.0
package/dist/index.js CHANGED
@@ -9,8 +9,7 @@ var normalizeGlobPath = (paths) => {
9
9
  return [{ pattern: [paths] }];
10
10
  }
11
11
  if (Array.isArray(paths)) {
12
- if (!paths.length)
13
- return [];
12
+ if (!paths.length) return [];
14
13
  return isStringArray(paths) ? [{ pattern: paths }] : paths;
15
14
  }
16
15
  return [paths];
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/path-to-file.ts","../src/normalize-glob-path.ts","../src/get-file-values.ts"],"sourcesContent":["import path from 'node:path';\nimport { stat } from 'node:fs/promises';\nimport { glob, type GlobOptionsWithFileTypesFalse, hasMagic } from 'glob';\nimport { normalizeGlobPath, type GlobPathOptions } from './normalize-glob-path';\n\nexport const pathToFiles = async (paths: GlobPathOptions): Promise<string[]> => {\n const opts = normalizeGlobPath(paths);\n\n const files = await Promise.all(\n opts.map((opt) => {\n const { dot, pattern: patterns } = opt;\n const ignore = (opt.ignore || []).slice();\n ignore.push('**/node_modules/**/**', '**/*.d.{ts,mts}');\n\n const options: GlobOptionsWithFileTypesFalse = {\n nodir: true,\n dot,\n ignore,\n absolute: true,\n withFileTypes: false,\n maxDepth: Infinity,\n };\n\n return Promise.all(\n patterns.map(async (pattern) => {\n if (!path.isAbsolute(pattern)) {\n pattern = path.resolve(pattern);\n }\n\n /**\n * 在windows系统默认使用反斜杠`\\`拼接路径,但是glob只支持正斜杠`/`.\n * @link https://github.com/isaacs/node-glob#windows\n */\n pattern = pattern.replace(/\\\\/g, path.posix.sep);\n\n /**\n * glob.hasMagic 不支持带反斜杠(\\)的路径。从glob@9.0.0起,花括号不再是魔术路径\n * @see https://github.com/isaacs/node-glob/issues/496\n */\n if (!hasMagic(pattern, { magicalBraces: true })) {\n const stats = await stat(pattern);\n if (!stats.isFile()) {\n pattern = path.posix.join(pattern, '**', '*.{ts,js,mts,mjs}');\n }\n }\n\n return glob(pattern, options);\n }),\n );\n }),\n );\n\n return [...new Set(files.flat(2))].sort();\n};\n","export interface GlobPathFullOptions {\n pattern: string[];\n ignore?: string[];\n dot?: boolean;\n}\n\nexport type GlobPathOptions =\n | string\n | string[]\n | GlobPathFullOptions\n | GlobPathFullOptions[];\n\nexport const normalizeGlobPath = (paths: GlobPathOptions): GlobPathFullOptions[] => {\n if (typeof paths === 'string') {\n return [{ pattern: [paths] }];\n }\n\n if (Array.isArray(paths)) {\n if (!paths.length) return [];\n return isStringArray(paths) ? [{ pattern: paths }] : paths;\n }\n\n return [paths];\n};\n\nconst isStringArray = (data: string[] | GlobPathFullOptions[]): data is string[] => {\n return typeof data[0] === 'string';\n};\n","export const getFileValues = async <T extends unknown>(\n files: string[],\n filterValues?: (item?: unknown) => boolean,\n): Promise<T[]> => {\n const totalFiles = new Set<T>();\n await Promise.all(\n files.map(async (file) => {\n const modules = await import(file);\n if (typeof modules === 'object') {\n Object.values(modules).forEach((item) => {\n totalFiles.add(item as any);\n });\n }\n }),\n );\n return filterValues ? [...totalFiles].filter(filterValues) : [...totalFiles];\n};\n"],"mappings":";AAAA,OAAO,UAAU;AACjB,SAAS,YAAY;AACrB,SAAS,MAA0C,gBAAgB;;;ACU5D,IAAM,oBAAoB,CAAC,UAAkD;AAClF,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;AAAA,EAC9B;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,QAAI,CAAC,MAAM;AAAQ,aAAO,CAAC;AAC3B,WAAO,cAAc,KAAK,IAAI,CAAC,EAAE,SAAS,MAAM,CAAC,IAAI;AAAA,EACvD;AAEA,SAAO,CAAC,KAAK;AACf;AAEA,IAAM,gBAAgB,CAAC,SAA6D;AAClF,SAAO,OAAO,KAAK,CAAC,MAAM;AAC5B;;;ADtBO,IAAM,cAAc,OAAO,UAA8C;AAC9E,QAAM,OAAO,kBAAkB,KAAK;AAEpC,QAAM,QAAQ,MAAM,QAAQ;AAAA,IAC1B,KAAK,IAAI,CAAC,QAAQ;AAChB,YAAM,EAAE,KAAK,SAAS,SAAS,IAAI;AACnC,YAAM,UAAU,IAAI,UAAU,CAAC,GAAG,MAAM;AACxC,aAAO,KAAK,yBAAyB,iBAAiB;AAEtD,YAAM,UAAyC;AAAA,QAC7C,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV,eAAe;AAAA,QACf,UAAU;AAAA,MACZ;AAEA,aAAO,QAAQ;AAAA,QACb,SAAS,IAAI,OAAO,YAAY;AAC9B,cAAI,CAAC,KAAK,WAAW,OAAO,GAAG;AAC7B,sBAAU,KAAK,QAAQ,OAAO;AAAA,UAChC;AAMA,oBAAU,QAAQ,QAAQ,OAAO,KAAK,MAAM,GAAG;AAM/C,cAAI,CAAC,SAAS,SAAS,EAAE,eAAe,KAAK,CAAC,GAAG;AAC/C,kBAAM,QAAQ,MAAM,KAAK,OAAO;AAChC,gBAAI,CAAC,MAAM,OAAO,GAAG;AACnB,wBAAU,KAAK,MAAM,KAAK,SAAS,MAAM,mBAAmB;AAAA,YAC9D;AAAA,UACF;AAEA,iBAAO,KAAK,SAAS,OAAO;AAAA,QAC9B,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK;AAC1C;;;AErDO,IAAM,gBAAgB,OAC3B,OACA,iBACiB;AACjB,QAAM,aAAa,oBAAI,IAAO;AAC9B,QAAM,QAAQ;AAAA,IACZ,MAAM,IAAI,OAAO,SAAS;AACxB,YAAM,UAAU,MAAM,OAAO;AAC7B,UAAI,OAAO,YAAY,UAAU;AAC/B,eAAO,OAAO,OAAO,EAAE,QAAQ,CAAC,SAAS;AACvC,qBAAW,IAAI,IAAW;AAAA,QAC5B,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO,eAAe,CAAC,GAAG,UAAU,EAAE,OAAO,YAAY,IAAI,CAAC,GAAG,UAAU;AAC7E;","names":[]}
1
+ {"version":3,"sources":["../src/path-to-file.ts","../src/normalize-glob-path.ts","../src/get-file-values.ts"],"sourcesContent":["import path from 'node:path';\nimport { stat } from 'node:fs/promises';\nimport { glob, type GlobOptionsWithFileTypesFalse, hasMagic } from 'glob';\nimport { normalizeGlobPath, type GlobPathOptions } from './normalize-glob-path';\n\nexport const pathToFiles = async (paths: GlobPathOptions): Promise<string[]> => {\n const opts = normalizeGlobPath(paths);\n\n const files = await Promise.all(\n opts.map((opt) => {\n const { dot, pattern: patterns } = opt;\n const ignore = (opt.ignore || []).slice();\n ignore.push('**/node_modules/**/**', '**/*.d.{ts,mts}');\n\n const options: GlobOptionsWithFileTypesFalse = {\n nodir: true,\n dot,\n ignore,\n absolute: true,\n withFileTypes: false,\n maxDepth: Infinity,\n };\n\n return Promise.all(\n patterns.map(async (pattern) => {\n if (!path.isAbsolute(pattern)) {\n pattern = path.resolve(pattern);\n }\n\n /**\n * 在windows系统默认使用反斜杠`\\`拼接路径,但是glob只支持正斜杠`/`.\n * @link https://github.com/isaacs/node-glob#windows\n */\n pattern = pattern.replace(/\\\\/g, path.posix.sep);\n\n /**\n * glob.hasMagic 不支持带反斜杠(\\)的路径。从glob@9.0.0起,花括号不再是魔术路径\n * @see https://github.com/isaacs/node-glob/issues/496\n */\n if (!hasMagic(pattern, { magicalBraces: true })) {\n const stats = await stat(pattern);\n if (!stats.isFile()) {\n pattern = path.posix.join(pattern, '**', '*.{ts,js,mts,mjs}');\n }\n }\n\n return glob(pattern, options);\n }),\n );\n }),\n );\n\n return [...new Set(files.flat(2))].sort();\n};\n","export interface GlobPathFullOptions {\n pattern: string[];\n ignore?: string[];\n dot?: boolean;\n}\n\nexport type GlobPathOptions =\n | string\n | string[]\n | GlobPathFullOptions\n | GlobPathFullOptions[];\n\nexport const normalizeGlobPath = (paths: GlobPathOptions): GlobPathFullOptions[] => {\n if (typeof paths === 'string') {\n return [{ pattern: [paths] }];\n }\n\n if (Array.isArray(paths)) {\n if (!paths.length) return [];\n return isStringArray(paths) ? [{ pattern: paths }] : paths;\n }\n\n return [paths];\n};\n\nconst isStringArray = (data: string[] | GlobPathFullOptions[]): data is string[] => {\n return typeof data[0] === 'string';\n};\n","export const getFileValues = async <T extends unknown>(\n files: string[],\n filterValues?: (item?: unknown) => boolean,\n): Promise<T[]> => {\n const totalFiles = new Set<T>();\n await Promise.all(\n files.map(async (file) => {\n const modules = await import(file);\n if (typeof modules === 'object') {\n Object.values(modules).forEach((item) => {\n totalFiles.add(item as any);\n });\n }\n }),\n );\n return filterValues ? [...totalFiles].filter(filterValues) : [...totalFiles];\n};\n"],"mappings":";AAAA,OAAO,UAAU;AACjB,SAAS,YAAY;AACrB,SAAS,MAA0C,gBAAgB;;;ACU5D,IAAM,oBAAoB,CAAC,UAAkD;AAClF,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;AAAA,EAC9B;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,QAAI,CAAC,MAAM,OAAQ,QAAO,CAAC;AAC3B,WAAO,cAAc,KAAK,IAAI,CAAC,EAAE,SAAS,MAAM,CAAC,IAAI;AAAA,EACvD;AAEA,SAAO,CAAC,KAAK;AACf;AAEA,IAAM,gBAAgB,CAAC,SAA6D;AAClF,SAAO,OAAO,KAAK,CAAC,MAAM;AAC5B;;;ADtBO,IAAM,cAAc,OAAO,UAA8C;AAC9E,QAAM,OAAO,kBAAkB,KAAK;AAEpC,QAAM,QAAQ,MAAM,QAAQ;AAAA,IAC1B,KAAK,IAAI,CAAC,QAAQ;AAChB,YAAM,EAAE,KAAK,SAAS,SAAS,IAAI;AACnC,YAAM,UAAU,IAAI,UAAU,CAAC,GAAG,MAAM;AACxC,aAAO,KAAK,yBAAyB,iBAAiB;AAEtD,YAAM,UAAyC;AAAA,QAC7C,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV,eAAe;AAAA,QACf,UAAU;AAAA,MACZ;AAEA,aAAO,QAAQ;AAAA,QACb,SAAS,IAAI,OAAO,YAAY;AAC9B,cAAI,CAAC,KAAK,WAAW,OAAO,GAAG;AAC7B,sBAAU,KAAK,QAAQ,OAAO;AAAA,UAChC;AAMA,oBAAU,QAAQ,QAAQ,OAAO,KAAK,MAAM,GAAG;AAM/C,cAAI,CAAC,SAAS,SAAS,EAAE,eAAe,KAAK,CAAC,GAAG;AAC/C,kBAAM,QAAQ,MAAM,KAAK,OAAO;AAChC,gBAAI,CAAC,MAAM,OAAO,GAAG;AACnB,wBAAU,KAAK,MAAM,KAAK,SAAS,MAAM,mBAAmB;AAAA,YAC9D;AAAA,UACF;AAEA,iBAAO,KAAK,SAAS,OAAO;AAAA,QAC9B,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK;AAC1C;;;AErDO,IAAM,gBAAgB,OAC3B,OACA,iBACiB;AACjB,QAAM,aAAa,oBAAI,IAAO;AAC9B,QAAM,QAAQ;AAAA,IACZ,MAAM,IAAI,OAAO,SAAS;AACxB,YAAM,UAAU,MAAM,OAAO;AAC7B,UAAI,OAAO,YAAY,UAAU;AAC/B,eAAO,OAAO,OAAO,EAAE,QAAQ,CAAC,SAAS;AACvC,qBAAW,IAAI,IAAW;AAAA,QAC5B,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO,eAAe,CAAC,GAAG,UAAU,EAAE,OAAO,YAAY,IAAI,CAAC,GAAG,UAAU;AAC7E;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aomex/internal-file-import",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "aomex根据文件路径导入模块",
5
5
  "type": "module",
6
6
  "types": "dist/index.d.ts",