locter 0.0.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.MD CHANGED
@@ -9,6 +9,8 @@ Locter is a library to locate and load a file regarding specific criteria.
9
9
 
10
10
  - [Installation](#installation)
11
11
  - [Usage](#usage)
12
+ - [Locator](#locator)
13
+ - [Loader](#loader)
12
14
 
13
15
  ## Installation
14
16
 
@@ -26,4 +28,106 @@ So please stay patient, till it is fully available ⭐.
26
28
 
27
29
  ## Usage
28
30
 
29
- coming soon...
31
+ The following examples are based on some shared assumptions:
32
+ - A folder named `files` exists in the root directory.
33
+ - The folder `files` contains the following files:
34
+ - example.js
35
+ - example.json
36
+ - example.ts
37
+ - example-long.ts
38
+
39
+
40
+ ### Locator
41
+
42
+ **Multiple**
43
+
44
+ Locating multiple files will return information about all files matching the pattern.
45
+
46
+ ```typescript
47
+ import { locateFiles } from 'locter';
48
+
49
+ (async () => {
50
+ let files = await locateFiles(
51
+ 'files/example.{js,.ts}',
52
+ {
53
+ path: process.cwd()
54
+ }
55
+ );
56
+
57
+ console.log(files);
58
+ /*
59
+ [
60
+ { path: 'files', name: 'example', extension: '.js'},
61
+ { path: 'files', name: 'example', extension: '.ts'}
62
+ ]
63
+ */
64
+
65
+ files = await locateFiles(
66
+ 'files/*.{js,ts}',
67
+ {
68
+ path: process.cwd()
69
+ }
70
+ );
71
+
72
+ console.log(files);
73
+ /*
74
+ [
75
+ { path: 'files', name: 'example', extension: '.js'},
76
+ { path: 'files', name: 'example', extension: '.ts'},
77
+ { path: 'files', name: 'example-long', extension: '.ts'},
78
+ ]
79
+ */
80
+ })
81
+ ```
82
+
83
+ A synchronous variant is also available: `locateFilesSync`
84
+
85
+ **Single**
86
+
87
+ Locating a single file will return information about the first file matching the pattern.
88
+
89
+ ```typescript
90
+ import { locateFile } from 'locter';
91
+
92
+ (async () => {
93
+ let file = await locateFile(
94
+ 'files/example.{js,.ts}',
95
+ {
96
+ path: process.cwd()
97
+ }
98
+ );
99
+
100
+ console.log(file);
101
+ /*
102
+ { path: 'files', name: 'example', extension: '.js'}
103
+ */
104
+ })
105
+ ```
106
+
107
+ A synchronous variant is also available: `locateFileSync`
108
+
109
+ ### Loader
110
+
111
+ The method will load the located file.
112
+
113
+ ```typescript
114
+ import { loadFile, locateFile } from 'locter';
115
+
116
+ (async () => {
117
+ const file = await locateFile(
118
+ 'files/example.{js,.ts}',
119
+ {
120
+ path: process.cwd()
121
+ }
122
+ );
123
+
124
+ const content = loadFile(file);
125
+
126
+ console.log(content);
127
+
128
+ // ...
129
+ })
130
+ ```
131
+
132
+ A synchronous variant is also available: `loadFileSync`
133
+
@@ -20,6 +20,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.loadJsonFileSync = exports.loadJsonFile = void 0;
22
22
  const fs_1 = __importDefault(require("fs"));
23
+ const utils_1 = require("../../utils");
23
24
  function loadJsonFile(filePath) {
24
25
  return __awaiter(this, void 0, void 0, function* () {
25
26
  try {
@@ -27,8 +28,7 @@ function loadJsonFile(filePath) {
27
28
  return JSON.parse(file.toString('utf-8'));
28
29
  }
29
30
  catch (e) {
30
- /* istanbul ignore next */
31
- return undefined;
31
+ return (0, utils_1.handleFileLoadError)(e);
32
32
  }
33
33
  });
34
34
  }
@@ -39,8 +39,7 @@ function loadJsonFileSync(filePath) {
39
39
  return JSON.parse(file.toString('utf-8'));
40
40
  }
41
41
  catch (e) {
42
- /* istanbul ignore next */
43
- return undefined;
42
+ return (0, utils_1.handleFileLoadError)(e);
44
43
  }
45
44
  }
46
45
  exports.loadJsonFileSync = loadJsonFileSync;
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/loader/file-type/json.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;AAEH,4CAAoB;AAEpB,SAAsB,YAAY,CAAC,QAAgB;;QAC/C,IAAI;YACA,MAAM,IAAI,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC7C;QAAC,OAAO,CAAC,EAAE;YACR,0BAA0B;YAC1B,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;CAAA;AARD,oCAQC;AAED,SAAgB,gBAAgB,CAAC,QAAgB;IAC7C,IAAI;QACA,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;KAC7C;IAAC,OAAO,CAAC,EAAE;QACR,0BAA0B;QAC1B,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AARD,4CAQC"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/loader/file-type/json.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;AAEH,4CAAoB;AACpB,uCAAkD;AAElD,SAAsB,YAAY,CAAC,QAAgB;;QAC/C,IAAI;YACA,MAAM,IAAI,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC7C;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,IAAA,2BAAmB,EAAC,CAAC,CAAC,CAAC;SACjC;IACL,CAAC;CAAA;AAPD,oCAOC;AAED,SAAgB,gBAAgB,CAAC,QAAgB;IAC7C,IAAI;QACA,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;KAC7C;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,IAAA,2BAAmB,EAAC,CAAC,CAAC,CAAC;KACjC;AACL,CAAC;AAPD,4CAOC"}
@@ -42,6 +42,7 @@ exports.loadScriptFileExport = exports.loadScriptFile = void 0;
42
42
  const utils_1 = require("./utils");
43
43
  const locator_1 = require("../../../locator");
44
44
  const utils_2 = require("../../utils");
45
+ const utils_3 = require("../../../utils");
45
46
  function loadScriptFile(data) {
46
47
  return __awaiter(this, void 0, void 0, function* () {
47
48
  const filePath = (0, locator_1.isLocatorInfo)(data) ?
@@ -51,8 +52,7 @@ function loadScriptFile(data) {
51
52
  return yield Promise.resolve().then(() => __importStar(require(filePath)));
52
53
  }
53
54
  catch (e) {
54
- /* istanbul ignore next */
55
- return undefined;
55
+ return (0, utils_3.handleFileLoadError)(e);
56
56
  }
57
57
  });
58
58
  }
@@ -67,8 +67,7 @@ function loadScriptFileExport(data, filterFn) {
67
67
  return (0, utils_1.getExportItem)(data, filterFn);
68
68
  }
69
69
  catch (e) {
70
- /* istanbul ignore next */
71
- return undefined;
70
+ return (0, utils_3.handleFileLoadError)(e);
72
71
  }
73
72
  });
74
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"async.js","sourceRoot":"","sources":["../../../../src/loader/file-type/script/async.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,mCAAwC;AAExC,8CAA8D;AAC9D,uCAAkD;AAElD,SAAsB,cAAc,CAAC,IAA0B;;QAC3D,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;YAClC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC;QAET,IAAI;YACA,OAAO,wDAAa,QAAQ,GAAC,CAAC;SACjC;QAAC,OAAO,CAAC,EAAE;YACR,0BAA0B;YAC1B,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;CAAA;AAXD,wCAWC;AAED,SAAsB,oBAAoB,CACtC,IAA0B,EAC1B,QAAyB;;QAEzB,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;YAClC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC;QAET,IAAI;YACA,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;YAE5C,OAAO,IAAA,qBAAa,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE;YACR,0BAA0B;YAC1B,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;CAAA;AAhBD,oDAgBC"}
1
+ {"version":3,"file":"async.js","sourceRoot":"","sources":["../../../../src/loader/file-type/script/async.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,mCAAwC;AAExC,8CAA8D;AAC9D,uCAAkD;AAClD,0CAAqD;AAErD,SAAsB,cAAc,CAAC,IAA0B;;QAC3D,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;YAClC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC;QAET,IAAI;YACA,OAAO,wDAAa,QAAQ,GAAC,CAAC;SACjC;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,IAAA,2BAAmB,EAAC,CAAC,CAAC,CAAC;SACjC;IACL,CAAC;CAAA;AAVD,wCAUC;AAED,SAAsB,oBAAoB,CACtC,IAA0B,EAC1B,QAAyB;;QAEzB,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;YAClC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC;QAET,IAAI;YACA,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;YAE5C,OAAO,IAAA,qBAAa,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,IAAA,2BAAmB,EAAC,CAAC,CAAC,CAAC;SACjC;IACL,CAAC;CAAA;AAfD,oDAeC"}
@@ -10,6 +10,7 @@ exports.loadScriptFileExportSync = exports.loadScriptFileSync = void 0;
10
10
  const utils_1 = require("./utils");
11
11
  const locator_1 = require("../../../locator");
12
12
  const utils_2 = require("../../utils");
13
+ const utils_3 = require("../../../utils");
13
14
  function loadScriptFileSync(data) {
14
15
  const filePath = (0, locator_1.isLocatorInfo)(data) ?
15
16
  (0, utils_2.buildLoaderFilePath)(data) :
@@ -19,8 +20,7 @@ function loadScriptFileSync(data) {
19
20
  return require(filePath);
20
21
  }
21
22
  catch (e) {
22
- /* istanbul ignore next */
23
- return undefined;
23
+ return (0, utils_3.handleFileLoadError)(e);
24
24
  }
25
25
  }
26
26
  exports.loadScriptFileSync = loadScriptFileSync;
@@ -33,8 +33,7 @@ function loadScriptFileExportSync(data, filterFn) {
33
33
  return (0, utils_1.getExportItem)(data, filterFn);
34
34
  }
35
35
  catch (e) {
36
- /* istanbul ignore next */
37
- return undefined;
36
+ return (0, utils_3.handleFileLoadError)(e);
38
37
  }
39
38
  }
40
39
  exports.loadScriptFileExportSync = loadScriptFileExportSync;
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../src/loader/file-type/script/sync.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,mCAAwC;AACxC,8CAA8D;AAC9D,uCAAkD;AAElD,SAAgB,kBAAkB,CAAC,IAA0B;IACzD,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;QAClC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC;IAET,IAAI;QACA,wGAAwG;QACxG,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACR,0BAA0B;QAC1B,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAZD,gDAYC;AAED,SAAgB,wBAAwB,CACpC,IAA0B,EAC1B,QAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;QAClC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC;IAET,IAAI;QACA,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAE1C,OAAO,IAAA,qBAAa,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACxC;IAAC,OAAO,CAAC,EAAE;QACR,0BAA0B;QAC1B,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAhBD,4DAgBC"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../src/loader/file-type/script/sync.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,mCAAwC;AACxC,8CAA8D;AAC9D,uCAAkD;AAClD,0CAAqD;AAErD,SAAgB,kBAAkB,CAAC,IAA0B;IACzD,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;QAClC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC;IAET,IAAI;QACA,wGAAwG;QACxG,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,IAAA,2BAAmB,EAAC,CAAC,CAAC,CAAC;KACjC;AACL,CAAC;AAXD,gDAWC;AAED,SAAgB,wBAAwB,CACpC,IAA0B,EAC1B,QAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;QAClC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC;IAET,IAAI;QACA,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAE1C,OAAO,IAAA,qBAAa,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACxC;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,IAAA,2BAAmB,EAAC,CAAC,CAAC,CAAC;KACjC;AACL,CAAC;AAfD,4DAeC"}
@@ -24,7 +24,7 @@ function loadFile(info) {
24
24
  return undefined;
25
25
  }
26
26
  const filePath = (0, utils_1.buildLoaderFilePath)(info);
27
- if (info.fileExtension === '.json') {
27
+ if (info.extension === '.json') {
28
28
  return (0, file_type_1.loadJsonFile)(filePath);
29
29
  }
30
30
  return (0, file_type_1.loadScriptFile)(filePath);
@@ -36,7 +36,7 @@ function loadFileSync(info) {
36
36
  return undefined;
37
37
  }
38
38
  const filePath = (0, utils_1.buildLoaderFilePath)(info);
39
- if (info.fileExtension === '.json') {
39
+ if (info.extension === '.json') {
40
40
  return (0, file_type_1.loadJsonFileSync)(filePath);
41
41
  }
42
42
  return (0, file_type_1.loadScriptFileSync)(filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/loader/module.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;AAGH,2CAEqB;AACrB,mCAA8C;AAE9C,SAAsB,QAAQ,CAAC,IAAiB;;QAC5C,IAAG,CAAC,IAAI,EAAE;YACN,OAAO,SAAS,CAAA;SACnB;QAED,MAAM,QAAQ,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;YAChC,OAAO,IAAA,wBAAY,EAAC,QAAQ,CAAC,CAAC;SACjC;QAED,OAAO,IAAA,0BAAc,EAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;CAAA;AAZD,4BAYC;AAED,SAAgB,YAAY,CAAC,IAAiB;IAC1C,IAAG,CAAC,IAAI,EAAE;QACN,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,QAAQ,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;IAE3C,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;QAChC,OAAO,IAAA,4BAAgB,EAAC,QAAQ,CAAC,CAAC;KACrC;IAED,OAAO,IAAA,8BAAkB,EAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAZD,oCAYC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/loader/module.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;AAGH,2CAEqB;AACrB,mCAA8C;AAE9C,SAAsB,QAAQ,CAAC,IAAiB;;QAC5C,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,QAAQ,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;YAC5B,OAAO,IAAA,wBAAY,EAAC,QAAQ,CAAC,CAAC;SACjC;QAED,OAAO,IAAA,0BAAc,EAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;CAAA;AAZD,4BAYC;AAED,SAAgB,YAAY,CAAC,IAAiB;IAC1C,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,QAAQ,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;IAE3C,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;QAC5B,OAAO,IAAA,4BAAgB,EAAC,QAAQ,CAAC,CAAC;KACrC;IAED,OAAO,IAAA,8BAAkB,EAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAZD,oCAYC"}
@@ -12,8 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.buildLoaderFilePath = void 0;
13
13
  const path_1 = __importDefault(require("path"));
14
14
  function buildLoaderFilePath(info) {
15
- return path_1.default.join(info.path, info.fileName) +
16
- (info.fileExtension === '.json' ? '.json' : '');
15
+ return path_1.default.join(info.path, info.name) + info.extension;
17
16
  }
18
17
  exports.buildLoaderFilePath = buildLoaderFilePath;
19
18
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/loader/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,gDAAwB;AAGxB,SAAgB,mBAAmB,CAAC,IAAiB;IACjD,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;QACtC,CAAC,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC;AAHD,kDAGC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/loader/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,gDAAwB;AAGxB,SAAgB,mBAAmB,CAAC,IAAiB;IACjD,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;AAC5D,CAAC;AAFD,kDAEC"}
@@ -0,0 +1,3 @@
1
+ import { LocatorInfo, LocatorOptions } from './type';
2
+ export declare function locateFiles(pattern: string | string[], options?: Partial<LocatorOptions>): Promise<LocatorInfo[]>;
3
+ export declare function locateFile(pattern: string | string[], options?: Partial<LocatorOptions>): Promise<LocatorInfo | undefined>;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.locateFile = exports.locateFiles = void 0;
22
+ const glob_1 = require("glob");
23
+ const path_1 = __importDefault(require("path"));
24
+ const util_1 = require("util");
25
+ const utils_1 = require("./utils");
26
+ const globAsync = (0, util_1.promisify)(glob_1.glob);
27
+ function locateFiles(pattern, options) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ options = (0, utils_1.buildLocatorOptions)(options);
30
+ const patterns = Array.isArray(pattern) ?
31
+ pattern :
32
+ [pattern];
33
+ const items = [];
34
+ for (let i = 0; i < patterns.length; i++) {
35
+ for (let j = 0; j < options.path.length; j++) {
36
+ const files = yield globAsync(patterns[i], {
37
+ absolute: true,
38
+ cwd: options.path[j],
39
+ nodir: true,
40
+ });
41
+ for (let k = 0; k < files.length; k++) {
42
+ const fileInfo = path_1.default.parse(files[k]);
43
+ items.push({
44
+ path: fileInfo.dir.split('/').join(path_1.default.sep),
45
+ name: fileInfo.name,
46
+ extension: fileInfo.ext,
47
+ });
48
+ }
49
+ }
50
+ }
51
+ return items;
52
+ });
53
+ }
54
+ exports.locateFiles = locateFiles;
55
+ function locateFile(pattern, options) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ options = (0, utils_1.buildLocatorOptions)(options);
58
+ const patterns = Array.isArray(pattern) ?
59
+ pattern :
60
+ [pattern];
61
+ for (let i = 0; i < patterns.length; i++) {
62
+ for (let j = 0; j < options.path.length; j++) {
63
+ const files = yield globAsync(patterns[i], {
64
+ absolute: true,
65
+ cwd: options.path[j],
66
+ nodir: true,
67
+ });
68
+ const element = files.shift();
69
+ if (element) {
70
+ const fileInfo = path_1.default.parse(element);
71
+ return {
72
+ path: fileInfo.dir.split('/').join(path_1.default.sep),
73
+ name: fileInfo.name,
74
+ extension: fileInfo.ext,
75
+ };
76
+ }
77
+ }
78
+ }
79
+ return undefined;
80
+ });
81
+ }
82
+ exports.locateFile = locateFile;
83
+ //# sourceMappingURL=async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/locator/async.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- export * from './module';
1
+ export * from './async';
2
+ export * from './sync';
2
3
  export * from './type';
3
4
  export * from './utils';
@@ -20,7 +20,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./module"), exports);
23
+ __exportStar(require("./async"), exports);
24
+ __exportStar(require("./sync"), exports);
24
25
  __exportStar(require("./type"), exports);
25
26
  __exportStar(require("./utils"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locator/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,yCAAuB;AACvB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locator/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,yCAAuB;AACvB,yCAAuB;AACvB,0CAAwB"}
@@ -0,0 +1,3 @@
1
+ import { LocatorInfo, LocatorOptions } from './type';
2
+ export declare function locateFilesSync(pattern: string | string[], options?: Partial<LocatorOptions>): LocatorInfo[];
3
+ export declare function locateFileSync(pattern: string | string[], options?: Partial<LocatorOptions>): LocatorInfo | undefined;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.locateFileSync = exports.locateFilesSync = void 0;
13
+ const glob_1 = require("glob");
14
+ const path_1 = __importDefault(require("path"));
15
+ const utils_1 = require("./utils");
16
+ function locateFilesSync(pattern, options) {
17
+ options = (0, utils_1.buildLocatorOptions)(options);
18
+ const patterns = Array.isArray(pattern) ?
19
+ pattern :
20
+ [pattern];
21
+ const items = [];
22
+ for (let i = 0; i < patterns.length; i++) {
23
+ for (let j = 0; j < options.path.length; j++) {
24
+ const files = (0, glob_1.sync)(patterns[i], {
25
+ absolute: true,
26
+ cwd: options.path[j],
27
+ nodir: true,
28
+ });
29
+ for (let k = 0; k < files.length; k++) {
30
+ const fileInfo = path_1.default.parse(files[k]);
31
+ items.push({
32
+ path: fileInfo.dir.split('/').join(path_1.default.sep),
33
+ name: fileInfo.name,
34
+ extension: fileInfo.ext,
35
+ });
36
+ }
37
+ }
38
+ }
39
+ return items;
40
+ }
41
+ exports.locateFilesSync = locateFilesSync;
42
+ function locateFileSync(pattern, options) {
43
+ options = (0, utils_1.buildLocatorOptions)(options);
44
+ const patterns = Array.isArray(pattern) ?
45
+ pattern :
46
+ [pattern];
47
+ for (let i = 0; i < patterns.length; i++) {
48
+ for (let j = 0; j < options.path.length; j++) {
49
+ const files = (0, glob_1.sync)(patterns[i], {
50
+ absolute: true,
51
+ cwd: options.path[j],
52
+ nodir: true,
53
+ });
54
+ const element = files.shift();
55
+ if (element) {
56
+ const fileInfo = path_1.default.parse(element);
57
+ return {
58
+ path: fileInfo.dir.split('/').join(path_1.default.sep),
59
+ name: fileInfo.name,
60
+ extension: fileInfo.ext,
61
+ };
62
+ }
63
+ }
64
+ }
65
+ return undefined;
66
+ }
67
+ exports.locateFileSync = locateFileSync;
68
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/locator/sync.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,+BAAwC;AACxC,gDAAwB;AAExB,mCAA8C;AAE9C,SAAgB,eAAe,CAC3B,OAA0B,EAC1B,OAAiC;IAEjC,OAAO,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;QACT,CAAC,OAAO,CAAC,CAAC;IAEd,MAAM,KAAK,GAAmB,EAAE,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAA,WAAQ,EAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBAChC,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpB,KAAK,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,QAAQ,GAAG,cAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEtC,KAAK,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,GAAG,CAAC;oBAC5C,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,SAAS,EAAE,QAAQ,CAAC,GAAG;iBAC1B,CAAC,CAAC;aACN;SACJ;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAjCD,0CAiCC;AAED,SAAgB,cAAc,CAC1B,OAA0B,EAC1B,OAAiC;IAEjC,OAAO,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;QACT,CAAC,OAAO,CAAC,CAAC;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAA,WAAQ,EAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBAChC,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpB,KAAK,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,OAAO,EAAE;gBACT,MAAM,QAAQ,GAAG,cAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAErC,OAAO;oBACH,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,GAAG,CAAC;oBAC5C,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,SAAS,EAAE,QAAQ,CAAC,GAAG;iBAC1B,CAAC;aACL;SACJ;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAhCD,wCAgCC"}
@@ -1,9 +1,8 @@
1
1
  export declare type LocatorInfo = {
2
2
  path: string;
3
- fileName: string;
4
- fileExtension: '.js' | '.ts' | '.json' | string;
3
+ name: string;
4
+ extension: '.js' | '.ts' | '.json' | string;
5
5
  };
6
6
  export declare type LocatorOptions = {
7
- extensions: string[] | string;
8
- paths: string | string[];
7
+ path: string | string[];
9
8
  };
@@ -10,10 +10,11 @@ exports.isLocatorInfo = exports.buildLocatorOptions = void 0;
10
10
  const utils_1 = require("../utils");
11
11
  function buildLocatorOptions(options) {
12
12
  options = options || {};
13
- options.paths = options.paths || [];
14
- options.paths = (0, utils_1.toArray)(options.paths);
15
- options.extensions = options.extensions ?
16
- (0, utils_1.toArray)(options.extensions) : ['.ts', '.js', '.json'];
13
+ options.path = options.path || [];
14
+ options.path = (0, utils_1.toArray)(options.path);
15
+ if (options.path.length === 0) {
16
+ options.path.push(process.cwd());
17
+ }
17
18
  return options;
18
19
  }
19
20
  exports.buildLocatorOptions = buildLocatorOptions;
@@ -30,11 +31,8 @@ function isLocatorInfo(data) {
30
31
  typeof data.fileName !== 'string') {
31
32
  return false;
32
33
  }
33
- if (!(0, utils_1.hasOwnProperty)(data, 'fileExtension') ||
34
- typeof data.fileExtension !== 'string') {
35
- return false;
36
- }
37
- return true;
34
+ return !(!(0, utils_1.hasOwnProperty)(data, 'fileExtension') ||
35
+ typeof data.fileExtension !== 'string');
38
36
  }
39
37
  exports.isLocatorInfo = isLocatorInfo;
40
38
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/locator/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,oCAAiD;AAEjD,SAAgB,mBAAmB,CAAC,OAAiC;IACjE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IACxB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IACpC,OAAO,CAAC,KAAK,GAAG,IAAA,eAAO,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEvC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,IAAA,eAAO,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAE1D,OAAO,OAAyB,CAAC;AACrC,CAAC;AATD,kDASC;AAED,0BAA0B;AAC1B,SAAgB,aAAa,CAAC,IAAa;IACvC,IAAG,OAAO,IAAI,KAAK,QAAQ,EAAE;QACzB,OAAO,KAAK,CAAC;KAChB;IAED,IACI,CAAC,IAAA,sBAAc,EAAC,IAAI,EAAE,MAAM,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAC/B;QACE,OAAO,KAAK,CAAC;KAChB;IAED,IACI,CAAC,IAAA,sBAAc,EAAC,IAAI,EAAE,UAAU,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EACnC;QACE,OAAO,KAAK,CAAC;KAChB;IAED,IACI,CAAC,IAAA,sBAAc,EAAC,IAAI,EAAE,eAAe,CAAC;QACtC,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EACxC;QACE,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AA3BD,sCA2BC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/locator/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,oCAAmD;AAEnD,SAAgB,mBAAmB,CAAC,OAAiC;IACjE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAExB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,OAAO,CAAC,IAAI,GAAG,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;KACpC;IAED,OAAO,OAAyB,CAAC;AACrC,CAAC;AAVD,kDAUC;AAED,0BAA0B;AAC1B,SAAgB,aAAa,CAAC,IAAa;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC1B,OAAO,KAAK,CAAC;KAChB;IAED,IACI,CAAC,IAAA,sBAAc,EAAC,IAAI,EAAE,MAAM,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAC/B;QACE,OAAO,KAAK,CAAC;KAChB;IAED,IACI,CAAC,IAAA,sBAAc,EAAC,IAAI,EAAE,UAAU,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EACnC;QACE,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,IAAI,EAAE,eAAe,CAAC;QAC3C,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;AAChD,CAAC;AArBD,sCAqBC"}
@@ -0,0 +1 @@
1
+ export declare function handleFileLoadError(e: unknown): undefined;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.handleFileLoadError = void 0;
10
+ /* istanbul ignore next */
11
+ function handleFileLoadError(e) {
12
+ if (e instanceof Error) {
13
+ throw e;
14
+ }
15
+ if (typeof e === 'string') {
16
+ throw new Error(e);
17
+ }
18
+ return undefined;
19
+ }
20
+ exports.handleFileLoadError = handleFileLoadError;
21
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,0BAA0B;AAC1B,SAAgB,mBAAmB,CAAC,CAAU;IAC1C,IAAI,CAAC,YAAY,KAAK,EAAE;QACpB,MAAM,CAAC,CAAC;KACX;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;KACtB;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAVD,kDAUC"}
@@ -1,2 +1,3 @@
1
+ export * from './error';
1
2
  export * from './has-own-property';
2
3
  export * from './to-array';
@@ -20,6 +20,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
+ __exportStar(require("./error"), exports);
23
24
  __exportStar(require("./has-own-property"), exports);
24
25
  __exportStar(require("./to-array"), exports);
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,qDAAmC;AACnC,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,qDAAmC;AACnC,6CAA2B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "locter",
3
- "version": "0.0.1",
3
+ "version": "0.2.0",
4
4
  "description": "Locter is a library to locate a file by criteria and load it",
5
5
  "author": {
6
6
  "name": "Peter Placzek",
@@ -31,18 +31,21 @@
31
31
  ],
32
32
  "license": "MIT",
33
33
  "devDependencies": {
34
- "@tada5hi/eslint-config-typescript": "^1.0.2",
34
+ "@tada5hi/eslint-config-typescript": "^1.0.4",
35
35
  "@types/glob": "^7.1.3",
36
36
  "@types/jest": "^27.5.0",
37
- "@types/node": "^17.0.31",
38
- "@types/yargs": "^17.0.10",
37
+ "@types/node": "^18.7.1",
38
+ "@types/yargs": "^17.0.11",
39
39
  "coveralls": "^3.1.0",
40
40
  "cross-env": "^7.0.3",
41
- "eslint": "^8.14.0",
41
+ "eslint": "^8.21.0",
42
42
  "jest": "^27.5.1",
43
- "np": "^7.6.1",
43
+ "np": "^7.6.2",
44
44
  "ts-jest": "^27.1.4",
45
- "ts-node": "^10.7.0",
46
- "typescript": "^4.6.4"
45
+ "ts-node": "^10.9.1",
46
+ "typescript": "^4.7.4"
47
+ },
48
+ "dependencies": {
49
+ "glob": "^8.0.3"
47
50
  }
48
51
  }
@@ -1,3 +0,0 @@
1
- import { LocatorInfo, LocatorOptions } from './type';
2
- export declare function locateFile(fileName: string, options?: Partial<LocatorOptions>): Promise<LocatorInfo | undefined>;
3
- export declare function locateFileSync(fileName: string, options?: Partial<LocatorOptions>): LocatorInfo | undefined;
@@ -1,71 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
- var __importDefault = (this && this.__importDefault) || function (mod) {
18
- return (mod && mod.__esModule) ? mod : { "default": mod };
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.locateFileSync = exports.locateFile = void 0;
22
- const path_1 = __importDefault(require("path"));
23
- const fs_1 = __importDefault(require("fs"));
24
- const utils_1 = require("./utils");
25
- function locateFile(fileName, options) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- options = (0, utils_1.buildLocatorOptions)(options);
28
- for (let i = 0; i < options.paths.length; i++) {
29
- const filePath = path_1.default.join(options.paths[i], fileName);
30
- for (let j = 0; j < options.extensions.length; j++) {
31
- const filePathWithExtension = filePath + options.extensions[j];
32
- try {
33
- yield fs_1.default.promises.access(filePathWithExtension, fs_1.default.constants.R_OK | fs_1.default.constants.F_OK);
34
- return {
35
- path: options.paths[i],
36
- fileName,
37
- fileExtension: options.extensions[j],
38
- };
39
- }
40
- catch (e) {
41
- // do nothing ;)
42
- }
43
- }
44
- }
45
- return undefined;
46
- });
47
- }
48
- exports.locateFile = locateFile;
49
- function locateFileSync(fileName, options) {
50
- options = (0, utils_1.buildLocatorOptions)(options);
51
- for (let i = 0; i < options.paths.length; i++) {
52
- const filePath = path_1.default.join(options.paths[i], fileName);
53
- for (let j = 0; j < options.extensions.length; j++) {
54
- const filePathWithExtension = filePath + options.extensions[j];
55
- try {
56
- fs_1.default.accessSync(filePathWithExtension, fs_1.default.constants.R_OK | fs_1.default.constants.F_OK);
57
- return {
58
- path: options.paths[i],
59
- fileName,
60
- fileExtension: options.extensions[j],
61
- };
62
- }
63
- catch (e) {
64
- // do nothing ;)
65
- }
66
- }
67
- }
68
- return undefined;
69
- }
70
- exports.locateFileSync = locateFileSync;
71
- //# sourceMappingURL=module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/locator/module.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;AAEH,gDAAwB;AACxB,4CAAoB;AAEpB,mCAA8C;AAE9C,SAAsB,UAAU,CAC5B,QAAgB,EAChB,OAAiC;;QAEjC,OAAO,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAEvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,MAAM,qBAAqB,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAE/D,IAAI;oBACA,MAAM,YAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAE,YAAE,CAAC,SAAS,CAAC,IAAI,GAAG,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAEvF,OAAO;wBACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;wBACtB,QAAQ;wBACR,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;qBACvC,CAAC;iBACL;gBAAC,OAAO,CAAC,EAAE;oBACR,gBAAgB;iBACnB;aACJ;SACJ;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CAAA;AA3BD,gCA2BC;AAED,SAAgB,cAAc,CAC1B,QAAgB,EAChB,OAAiC;IAEjC,OAAO,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,qBAAqB,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE/D,IAAI;gBACA,YAAE,CAAC,UAAU,CAAC,qBAAqB,EAAE,YAAE,CAAC,SAAS,CAAC,IAAI,GAAG,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAE5E,OAAO;oBACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtB,QAAQ;oBACR,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;iBACvC,CAAC;aACL;YAAC,OAAO,CAAC,EAAE;gBACR,gBAAgB;aACnB;SACJ;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AA3BD,wCA2BC"}