filter-scan-dir 1.5.5 → 1.6.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/{dist/index.js → dist-cjs/index.cjs} +32 -21
- package/dist-cjs/index.cjs.map +1 -0
- package/{dist → dist-cjs}/index.d.ts +11 -8
- package/dist-cjs/index.js.map +1 -0
- package/dist-cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist-cjs/util.cjs +46 -0
- package/dist-cjs/util.cjs.map +1 -0
- package/dist-cjs/util.d.ts +20 -0
- package/dist-cjs/util.js.map +1 -0
- package/dist-esm/index.d.ts +141 -0
- package/dist-esm/index.js +342 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/tsconfig.esm.tsbuildinfo +1 -0
- package/dist-esm/util.d.ts +20 -0
- package/dist-esm/util.js +41 -0
- package/dist-esm/util.js.map +1 -0
- package/index.cjs +12 -0
- package/package.json +40 -17
- package/dist/index.js.map +0 -1
- package/dist/util.d.ts +0 -14
- package/dist/util.js +0 -56
- package/dist/util.js.map +0 -1
- package/lib/index.d.ts +0 -14
- package/lib/index.js +0 -11
|
@@ -4,11 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
7
|
+
exports.filterScanDir = filterScanDir;
|
|
8
|
+
exports.filterScanDirSync = filterScanDirSync;
|
|
8
9
|
const fs_1 = __importDefault(require("fs"));
|
|
9
10
|
const path_1 = __importDefault(require("path"));
|
|
10
11
|
const util_1 = __importDefault(require("util"));
|
|
11
|
-
const
|
|
12
|
+
const util_ts_1 = require("./util.cjs");
|
|
12
13
|
/**
|
|
13
14
|
* create a new ExtrasData object
|
|
14
15
|
*
|
|
@@ -19,8 +20,8 @@ const util_2 = require("./util");
|
|
|
19
20
|
* @param options
|
|
20
21
|
* @returns
|
|
21
22
|
*/
|
|
22
|
-
function makeExtrasData(file, fullFile, path, stat, options) {
|
|
23
|
-
const dirFile = options.
|
|
23
|
+
function makeExtrasData(file, fullFile, path, stat, files, options) {
|
|
24
|
+
const dirFile = (0, util_ts_1.join2)(options._sep, path, file);
|
|
24
25
|
const ix = file.lastIndexOf(".");
|
|
25
26
|
if (ix > 0) {
|
|
26
27
|
return {
|
|
@@ -31,6 +32,7 @@ function makeExtrasData(file, fullFile, path, stat, options) {
|
|
|
31
32
|
dirFile,
|
|
32
33
|
ext: file.substring(ix),
|
|
33
34
|
noExt: file.substring(0, ix),
|
|
35
|
+
files,
|
|
34
36
|
};
|
|
35
37
|
}
|
|
36
38
|
else {
|
|
@@ -42,6 +44,7 @@ function makeExtrasData(file, fullFile, path, stat, options) {
|
|
|
42
44
|
dirFile,
|
|
43
45
|
ext: "",
|
|
44
46
|
noExt: file,
|
|
47
|
+
files,
|
|
45
48
|
};
|
|
46
49
|
}
|
|
47
50
|
}
|
|
@@ -91,6 +94,15 @@ function processDir(options, extras) {
|
|
|
91
94
|
* @returns
|
|
92
95
|
*/
|
|
93
96
|
function processFile(options, extras) {
|
|
97
|
+
// If includeDir is false and includeSymlink is not true, skip symlinks
|
|
98
|
+
// This prevents symlinks to directories from being included as files
|
|
99
|
+
if (!options.includeDir &&
|
|
100
|
+
!options.includeSymlink &&
|
|
101
|
+
extras.stat &&
|
|
102
|
+
extras.stat.isSymbolicLink &&
|
|
103
|
+
extras.stat.isSymbolicLink()) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
94
106
|
if (options.ignoreExt.length > 0 && options.ignoreExt.indexOf(extras.ext) >= 0) {
|
|
95
107
|
return false;
|
|
96
108
|
}
|
|
@@ -127,14 +139,15 @@ function getResult(options) {
|
|
|
127
139
|
*/
|
|
128
140
|
function walkSync(path, options, level = 0) {
|
|
129
141
|
try {
|
|
130
|
-
|
|
142
|
+
// Use Path.join to normalize the directory path once at entry
|
|
143
|
+
const dir = path_1.default.join(options.dir, path);
|
|
131
144
|
let files = fs_1.default.readdirSync(dir, options.readdirOpts);
|
|
132
145
|
if (options.sortFiles) {
|
|
133
146
|
if (options.fullStat) {
|
|
134
147
|
files = files.sort();
|
|
135
148
|
}
|
|
136
149
|
else {
|
|
137
|
-
files = files.sort(
|
|
150
|
+
files = files.sort(util_ts_1.direntCmp);
|
|
138
151
|
}
|
|
139
152
|
}
|
|
140
153
|
const dirs = [];
|
|
@@ -144,13 +157,13 @@ function walkSync(path, options, level = 0) {
|
|
|
144
157
|
const file = files[ix];
|
|
145
158
|
let extras;
|
|
146
159
|
if (options.fullStat) {
|
|
147
|
-
const fullFile = options.
|
|
160
|
+
const fullFile = (0, util_ts_1.join2)(options._sep, dir, file);
|
|
148
161
|
const stat = fs_1.default.lstatSync(fullFile);
|
|
149
|
-
extras = makeExtrasData(file, fullFile, path, stat, options);
|
|
162
|
+
extras = makeExtrasData(file, fullFile, path, stat, files, options);
|
|
150
163
|
}
|
|
151
164
|
else {
|
|
152
|
-
const fullFile = options.
|
|
153
|
-
extras = makeExtrasData(file.name, fullFile, path, file, options);
|
|
165
|
+
const fullFile = (0, util_ts_1.join2)(options._sep, dir, file.name);
|
|
166
|
+
extras = makeExtrasData(file.name, fullFile, path, file, files, options);
|
|
154
167
|
}
|
|
155
168
|
if (extras.stat.isDirectory()) {
|
|
156
169
|
dirs.push(extras);
|
|
@@ -192,14 +205,15 @@ const asyncLStat = util_1.default.promisify(fs_1.default.lstat);
|
|
|
192
205
|
*/
|
|
193
206
|
async function walk(path, options, level = 0) {
|
|
194
207
|
try {
|
|
195
|
-
|
|
208
|
+
// Use Path.join to normalize the directory path once at entry
|
|
209
|
+
const dir = path_1.default.join(options.dir, path);
|
|
196
210
|
let files = await asyncReaddir(dir, options.readdirOpts);
|
|
197
211
|
if (options.sortFiles) {
|
|
198
212
|
if (options.fullStat) {
|
|
199
213
|
files = files.sort();
|
|
200
214
|
}
|
|
201
215
|
else {
|
|
202
|
-
files = files.sort(
|
|
216
|
+
files = files.sort(util_ts_1.direntCmp);
|
|
203
217
|
}
|
|
204
218
|
}
|
|
205
219
|
const dirs = [];
|
|
@@ -209,13 +223,13 @@ async function walk(path, options, level = 0) {
|
|
|
209
223
|
const file = files[ix];
|
|
210
224
|
let extras;
|
|
211
225
|
if (options.fullStat) {
|
|
212
|
-
const fullFile = options.
|
|
226
|
+
const fullFile = (0, util_ts_1.join2)(options._sep, dir, file);
|
|
213
227
|
const stat = await asyncLStat(fullFile);
|
|
214
|
-
extras = makeExtrasData(file, fullFile, path, stat, options);
|
|
228
|
+
extras = makeExtrasData(file, fullFile, path, stat, files, options);
|
|
215
229
|
}
|
|
216
230
|
else {
|
|
217
|
-
const fullFile = options.
|
|
218
|
-
extras = makeExtrasData(file.name, fullFile, path, file, options);
|
|
231
|
+
const fullFile = (0, util_ts_1.join2)(options._sep, dir, file.name);
|
|
232
|
+
extras = makeExtrasData(file.name, fullFile, path, file, files, options);
|
|
219
233
|
}
|
|
220
234
|
if (extras.stat.isDirectory()) {
|
|
221
235
|
dirs.push(extras);
|
|
@@ -298,7 +312,7 @@ function makeOptions(opts) {
|
|
|
298
312
|
const prependCwd = (options.hasOwnProperty("includeRoot") ? options.includeRoot : options.prependCwd) ||
|
|
299
313
|
false;
|
|
300
314
|
const opts2 = Object.assign({
|
|
301
|
-
|
|
315
|
+
_sep: sep,
|
|
302
316
|
maxLevel: Infinity,
|
|
303
317
|
prefix: "",
|
|
304
318
|
prependCwd,
|
|
@@ -319,7 +333,6 @@ function makeOptions(opts) {
|
|
|
319
333
|
.filter((x) => x),
|
|
320
334
|
_concurrentCount: 0,
|
|
321
335
|
});
|
|
322
|
-
opts2._join2 = (0, util_2.makePathJoin2)(sep, opts2.dir, opts2.prefix);
|
|
323
336
|
if (!opts2.fullStat) {
|
|
324
337
|
opts2.readdirOpts = { withFileTypes: true };
|
|
325
338
|
}
|
|
@@ -329,10 +342,8 @@ function filterScanDir(options = {}) {
|
|
|
329
342
|
const options2 = makeOptions(options);
|
|
330
343
|
return walk(options2.prefix, options2);
|
|
331
344
|
}
|
|
332
|
-
exports.filterScanDir = filterScanDir;
|
|
333
345
|
function filterScanDirSync(options = {}) {
|
|
334
346
|
const options2 = makeOptions(options);
|
|
335
347
|
return walkSync(options2.prefix, options2);
|
|
336
348
|
}
|
|
337
|
-
|
|
338
|
-
//# sourceMappingURL=index.js.map
|
|
349
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { Dirent, Stats } from "fs";
|
|
3
2
|
/**
|
|
4
3
|
* type of the 3rd argument for the filter callback
|
|
5
4
|
*/
|
|
6
|
-
export
|
|
5
|
+
export type ExtrasData = {
|
|
7
6
|
/** name of the file being considered */
|
|
8
7
|
file: string;
|
|
9
8
|
/** path to the directory being processed that contains the file */
|
|
@@ -18,11 +17,13 @@ export declare type ExtrasData = {
|
|
|
18
17
|
ext: string;
|
|
19
18
|
/** file name without the extension */
|
|
20
19
|
noExt: string;
|
|
20
|
+
/** files in the directory */
|
|
21
|
+
files: (string | Dirent)[];
|
|
21
22
|
};
|
|
22
23
|
/**
|
|
23
24
|
* Info from the filter callback to indicate what to do next
|
|
24
25
|
*/
|
|
25
|
-
export
|
|
26
|
+
export type FilterInfo = {
|
|
26
27
|
/** name of the group to add the file or directory (if grouping is enabled) */
|
|
27
28
|
group?: string;
|
|
28
29
|
/** if `true` then skip the file or directory, else add it */
|
|
@@ -39,7 +40,7 @@ export declare type FilterInfo = {
|
|
|
39
40
|
* - _string_ - name of the group to add the file or directory (if grouping is enabled)
|
|
40
41
|
* - _FilterInfo_ - see type {@link FilterInfo} for details
|
|
41
42
|
*/
|
|
42
|
-
export
|
|
43
|
+
export type FilterResult = boolean | string | FilterInfo;
|
|
43
44
|
/**
|
|
44
45
|
* filter callback for file or directory entry
|
|
45
46
|
* @param file - name of the file/dir being considered
|
|
@@ -48,11 +49,11 @@ export declare type FilterResult = boolean | string | FilterInfo;
|
|
|
48
49
|
* first level directory.
|
|
49
50
|
* @param extras - extras data
|
|
50
51
|
*/
|
|
51
|
-
export
|
|
52
|
+
export type FilterCallback = (file: string, path: string, extras: ExtrasData) => FilterResult;
|
|
52
53
|
/**
|
|
53
54
|
* Options for filterScanDir
|
|
54
55
|
*/
|
|
55
|
-
export
|
|
56
|
+
export type Options = {
|
|
56
57
|
/** current working directory to start scanning */
|
|
57
58
|
cwd?: string;
|
|
58
59
|
/**
|
|
@@ -68,6 +69,8 @@ export declare type Options = {
|
|
|
68
69
|
sortFiles?: boolean;
|
|
69
70
|
/** include directories in result */
|
|
70
71
|
includeDir?: boolean;
|
|
72
|
+
/** include symlinks in result (when includeDir is false, symlinks to directories are excluded unless this is true) */
|
|
73
|
+
includeSymlink?: boolean;
|
|
71
74
|
/** zero base max level of directories to recurse into. Default: `Infinity` */
|
|
72
75
|
maxLevel?: number;
|
|
73
76
|
/**
|
|
@@ -108,7 +111,7 @@ export declare type Options = {
|
|
|
108
111
|
/**
|
|
109
112
|
* options specifically to set grouping flag `true` to enable grouping of files
|
|
110
113
|
*/
|
|
111
|
-
export
|
|
114
|
+
export type GroupingOptions = {
|
|
112
115
|
/**
|
|
113
116
|
* enable grouping of files
|
|
114
117
|
* This is default to disabled, so it's only expecting `true` to enable it.
|
|
@@ -121,7 +124,7 @@ export declare type GroupingOptions = {
|
|
|
121
124
|
* - The default `files` group will contain all files not assigned a group
|
|
122
125
|
* - All other files with a group will be assigned to that field
|
|
123
126
|
*/
|
|
124
|
-
export
|
|
127
|
+
export type GroupingResult = {
|
|
125
128
|
files: string[];
|
|
126
129
|
} & Record<string, string[]>;
|
|
127
130
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../src/index.ts","../src/util.ts"],"version":"5.9.3"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.join2 = exports.direntCmp = void 0;
|
|
4
|
+
/* @ignore */
|
|
5
|
+
/**
|
|
6
|
+
* compare Dirent for sorting
|
|
7
|
+
*
|
|
8
|
+
* @param a
|
|
9
|
+
* @param b
|
|
10
|
+
* @returns
|
|
11
|
+
* @ignore
|
|
12
|
+
*/
|
|
13
|
+
const direntCmp = (a, b) => {
|
|
14
|
+
if (a.name === b.name) {
|
|
15
|
+
return 0;
|
|
16
|
+
}
|
|
17
|
+
else if (a.name > b.name) {
|
|
18
|
+
return 1;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return -1;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.direntCmp = direntCmp;
|
|
25
|
+
/**
|
|
26
|
+
* Simple and fast path join for 2 arguments.
|
|
27
|
+
* Assumes first argument is already normalized and second is a simple filename.
|
|
28
|
+
*
|
|
29
|
+
* @param sep - path separator to use
|
|
30
|
+
* @param a - base path (should be normalized)
|
|
31
|
+
* @param b - path component to append (typically a filename)
|
|
32
|
+
* @returns joined path
|
|
33
|
+
*/
|
|
34
|
+
const join2 = (sep, a, b) => {
|
|
35
|
+
if (!a || a === ".") {
|
|
36
|
+
return b || a || ".";
|
|
37
|
+
}
|
|
38
|
+
else if (!b || b === ".") {
|
|
39
|
+
return a;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return a + sep + b;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.join2 = join2;
|
|
46
|
+
//# sourceMappingURL=util.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.cjs","sources":["util.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Dirent } from "fs";
|
|
2
|
+
/**
|
|
3
|
+
* compare Dirent for sorting
|
|
4
|
+
*
|
|
5
|
+
* @param a
|
|
6
|
+
* @param b
|
|
7
|
+
* @returns
|
|
8
|
+
* @ignore
|
|
9
|
+
*/
|
|
10
|
+
export declare const direntCmp: (a: Dirent, b: Dirent) => number;
|
|
11
|
+
/**
|
|
12
|
+
* Simple and fast path join for 2 arguments.
|
|
13
|
+
* Assumes first argument is already normalized and second is a simple filename.
|
|
14
|
+
*
|
|
15
|
+
* @param sep - path separator to use
|
|
16
|
+
* @param a - base path (should be normalized)
|
|
17
|
+
* @param b - path component to append (typically a filename)
|
|
18
|
+
* @returns joined path
|
|
19
|
+
*/
|
|
20
|
+
export declare const join2: (sep: string, a?: string, b?: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAIA,aAAa;AAEb;;;;;;;GAOG;AACI,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;IACxD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB;AAEF;;;;;;;;GAQG;AACI,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,CAAU,EAAE,CAAU,EAAU,EAAE;IACnE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IACvB,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AARW,QAAA,KAAK,SAQhB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Dirent, Stats } from "fs";
|
|
2
|
+
/**
|
|
3
|
+
* type of the 3rd argument for the filter callback
|
|
4
|
+
*/
|
|
5
|
+
export type ExtrasData = {
|
|
6
|
+
/** name of the file being considered */
|
|
7
|
+
file: string;
|
|
8
|
+
/** path to the directory being processed that contains the file */
|
|
9
|
+
path: string;
|
|
10
|
+
/** result from fs.lstat or readdir */
|
|
11
|
+
stat: Dirent | Stats;
|
|
12
|
+
/** full path with cwd + path + file */
|
|
13
|
+
fullFile: string;
|
|
14
|
+
/** path to file without cwd: path + file */
|
|
15
|
+
dirFile: string;
|
|
16
|
+
/** extsion of the file, ie: `.js` */
|
|
17
|
+
ext: string;
|
|
18
|
+
/** file name without the extension */
|
|
19
|
+
noExt: string;
|
|
20
|
+
/** files in the directory */
|
|
21
|
+
files: (string | Dirent)[];
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Info from the filter callback to indicate what to do next
|
|
25
|
+
*/
|
|
26
|
+
export type FilterInfo = {
|
|
27
|
+
/** name of the group to add the file or directory (if grouping is enabled) */
|
|
28
|
+
group?: string;
|
|
29
|
+
/** if `true` then skip the file or directory, else add it */
|
|
30
|
+
skip?: boolean;
|
|
31
|
+
/** stop the scanning and return the result immediately. */
|
|
32
|
+
stop?: boolean;
|
|
33
|
+
/** if not `undefined`, then use this as the value to add to the output */
|
|
34
|
+
formatName?: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* result from the filter callback
|
|
38
|
+
* - `false` or `undefined` - skip the file or directory
|
|
39
|
+
* - `true` - include the file in the default result
|
|
40
|
+
* - _string_ - name of the group to add the file or directory (if grouping is enabled)
|
|
41
|
+
* - _FilterInfo_ - see type {@link FilterInfo} for details
|
|
42
|
+
*/
|
|
43
|
+
export type FilterResult = boolean | string | FilterInfo;
|
|
44
|
+
/**
|
|
45
|
+
* filter callback for file or directory entry
|
|
46
|
+
* @param file - name of the file/dir being considered
|
|
47
|
+
* @param path - path to the directory containing the file. Not the full path,
|
|
48
|
+
* just the relative path from CWD. It's empty string for the files in the
|
|
49
|
+
* first level directory.
|
|
50
|
+
* @param extras - extras data
|
|
51
|
+
*/
|
|
52
|
+
export type FilterCallback = (file: string, path: string, extras: ExtrasData) => FilterResult;
|
|
53
|
+
/**
|
|
54
|
+
* Options for filterScanDir
|
|
55
|
+
*/
|
|
56
|
+
export type Options = {
|
|
57
|
+
/** current working directory to start scanning */
|
|
58
|
+
cwd?: string;
|
|
59
|
+
/**
|
|
60
|
+
* prefix to add to the paths to scan. It's applied after `cwd`.
|
|
61
|
+
* - The `prefix` will be in the resulting paths. Useful if you want
|
|
62
|
+
* to scan a dir further down from `cwd` but you don't want to prepend
|
|
63
|
+
* CWD to the resulting paths.
|
|
64
|
+
*/
|
|
65
|
+
prefix?: string;
|
|
66
|
+
/** prepend CWD to paths returned */
|
|
67
|
+
prependCwd?: boolean;
|
|
68
|
+
/** sort files from each dir */
|
|
69
|
+
sortFiles?: boolean;
|
|
70
|
+
/** include directories in result */
|
|
71
|
+
includeDir?: boolean;
|
|
72
|
+
/** include symlinks in result (when includeDir is false, symlinks to directories are excluded unless this is true) */
|
|
73
|
+
includeSymlink?: boolean;
|
|
74
|
+
/** zero base max level of directories to recurse into. Default: `Infinity` */
|
|
75
|
+
maxLevel?: number;
|
|
76
|
+
/**
|
|
77
|
+
* use `fs.lstat` to get stat of each file, instead of `readir`'s `withFileTypes` option.
|
|
78
|
+
*
|
|
79
|
+
* - *Default*: `true` - for significant performance improvement, set this to `false`
|
|
80
|
+
*
|
|
81
|
+
*/
|
|
82
|
+
fullStat?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* for async version only - numer of directories to process concurrently. *Default*: `50`
|
|
85
|
+
*
|
|
86
|
+
* - Set this to `0` or `1` to disable concurrent mode
|
|
87
|
+
*
|
|
88
|
+
* NOTE: setting this to a very large number, or `Infinity`, could potentially
|
|
89
|
+
* increase performance very significantly, however, there is a dimishing return
|
|
90
|
+
* and more memory usage, so the default is already fairly good.
|
|
91
|
+
*/
|
|
92
|
+
concurrency?: number;
|
|
93
|
+
/** set to `true` to throw errors instead of ignoring them */
|
|
94
|
+
rethrowError?: boolean;
|
|
95
|
+
/** callback to filter files. */
|
|
96
|
+
filter?: FilterCallback;
|
|
97
|
+
/** callback to filter directories. */
|
|
98
|
+
filterDir?: FilterCallback;
|
|
99
|
+
/** array or string of extensions to ignore. ext must include `.`, ie: `".js"` */
|
|
100
|
+
ignoreExt?: string | string[];
|
|
101
|
+
/** array or string of extensions to include only, apply after `ignoreExt` */
|
|
102
|
+
filterExt?: string | string[];
|
|
103
|
+
/**
|
|
104
|
+
* path separator to use to join entries
|
|
105
|
+
*
|
|
106
|
+
* - *Default*: `path.posix.sep`
|
|
107
|
+
* - If you didn't specify this, then `cwd` is automatically converted to use `/`.
|
|
108
|
+
*/
|
|
109
|
+
pathSep?: string;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* options specifically to set grouping flag `true` to enable grouping of files
|
|
113
|
+
*/
|
|
114
|
+
export type GroupingOptions = {
|
|
115
|
+
/**
|
|
116
|
+
* enable grouping of files
|
|
117
|
+
* This is default to disabled, so it's only expecting `true` to enable it.
|
|
118
|
+
*/
|
|
119
|
+
grouping: true;
|
|
120
|
+
} & Options;
|
|
121
|
+
/**
|
|
122
|
+
* The scanned result if grouping is enabled.
|
|
123
|
+
*
|
|
124
|
+
* - The default `files` group will contain all files not assigned a group
|
|
125
|
+
* - All other files with a group will be assigned to that field
|
|
126
|
+
*/
|
|
127
|
+
export type GroupingResult = {
|
|
128
|
+
files: string[];
|
|
129
|
+
} & Record<string, string[]>;
|
|
130
|
+
/**
|
|
131
|
+
* async version of filter scan dir
|
|
132
|
+
* @param options
|
|
133
|
+
* @returns
|
|
134
|
+
*/
|
|
135
|
+
export declare function filterScanDir(options?: string): Promise<string[]>;
|
|
136
|
+
export declare function filterScanDir(options?: Options): Promise<string[]>;
|
|
137
|
+
export declare function filterScanDir(options?: GroupingOptions): Promise<GroupingResult>;
|
|
138
|
+
/** sync version of filter scan dir */
|
|
139
|
+
export declare function filterScanDirSync(options?: string): string[];
|
|
140
|
+
export declare function filterScanDirSync(options?: Options): string[];
|
|
141
|
+
export declare function filterScanDirSync(options?: GroupingOptions): GroupingResult;
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/* eslint-disable max-statements, complexity, comma-dangle, max-params, max-depth */
|
|
2
|
+
import Fs from "fs";
|
|
3
|
+
import Path from "path";
|
|
4
|
+
import Util from "util";
|
|
5
|
+
import { direntCmp, join2 } from "./util.js";
|
|
6
|
+
/**
|
|
7
|
+
* create a new ExtrasData object
|
|
8
|
+
*
|
|
9
|
+
* @param file
|
|
10
|
+
* @param fullFile
|
|
11
|
+
* @param path
|
|
12
|
+
* @param stat
|
|
13
|
+
* @param options
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
function makeExtrasData(file, fullFile, path, stat, files, options) {
|
|
17
|
+
const dirFile = join2(options._sep, path, file);
|
|
18
|
+
const ix = file.lastIndexOf(".");
|
|
19
|
+
if (ix > 0) {
|
|
20
|
+
return {
|
|
21
|
+
file,
|
|
22
|
+
path,
|
|
23
|
+
stat,
|
|
24
|
+
fullFile,
|
|
25
|
+
dirFile,
|
|
26
|
+
ext: file.substring(ix),
|
|
27
|
+
noExt: file.substring(0, ix),
|
|
28
|
+
files,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return {
|
|
33
|
+
file,
|
|
34
|
+
path,
|
|
35
|
+
stat,
|
|
36
|
+
fullFile,
|
|
37
|
+
dirFile,
|
|
38
|
+
ext: "",
|
|
39
|
+
noExt: file,
|
|
40
|
+
files,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Add a file entry to the result
|
|
46
|
+
*
|
|
47
|
+
* @param result
|
|
48
|
+
* @param options
|
|
49
|
+
* @param extras
|
|
50
|
+
*/
|
|
51
|
+
function addResult(result, options, extras) {
|
|
52
|
+
const group = (options.grouping && typeof result === "string" ? result : result && result.group) || "files";
|
|
53
|
+
if (!options.result[group]) {
|
|
54
|
+
options.result[group] = [];
|
|
55
|
+
}
|
|
56
|
+
if (result.formatName !== undefined) {
|
|
57
|
+
options.result[group].push(result.formatName);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
options.result[group].push(options.prependCwd ? extras.fullFile : extras.dirFile);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Process a directory entry
|
|
65
|
+
*
|
|
66
|
+
* @param options
|
|
67
|
+
* @param extras
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
function processDir(options, extras) {
|
|
71
|
+
const filterResult = options.filterDir
|
|
72
|
+
? options.filterDir(extras.file, extras.path, extras)
|
|
73
|
+
: true;
|
|
74
|
+
if (filterResult) {
|
|
75
|
+
if (filterResult.skip !== true && options.includeDir) {
|
|
76
|
+
addResult(filterResult, options, extras);
|
|
77
|
+
}
|
|
78
|
+
return { stop: filterResult.stop, skip: filterResult.skip };
|
|
79
|
+
}
|
|
80
|
+
return { stop: false, skip: true };
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* process a file entry
|
|
84
|
+
*
|
|
85
|
+
* @param options
|
|
86
|
+
* @param extras
|
|
87
|
+
* @returns
|
|
88
|
+
*/
|
|
89
|
+
function processFile(options, extras) {
|
|
90
|
+
// If includeDir is false and includeSymlink is not true, skip symlinks
|
|
91
|
+
// This prevents symlinks to directories from being included as files
|
|
92
|
+
if (!options.includeDir &&
|
|
93
|
+
!options.includeSymlink &&
|
|
94
|
+
extras.stat &&
|
|
95
|
+
extras.stat.isSymbolicLink &&
|
|
96
|
+
extras.stat.isSymbolicLink()) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
if (options.ignoreExt.length > 0 && options.ignoreExt.indexOf(extras.ext) >= 0) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
if (options.filterExt.length > 0 && options.filterExt.indexOf(extras.ext) < 0) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
const filterResult = options.filter ? options.filter(extras.file, extras.path, extras) : true; // default to include
|
|
106
|
+
if (filterResult) {
|
|
107
|
+
if (filterResult.skip !== true) {
|
|
108
|
+
addResult(filterResult, options, extras);
|
|
109
|
+
}
|
|
110
|
+
return filterResult.stop;
|
|
111
|
+
}
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* get the result base on grouping enable flag
|
|
116
|
+
*
|
|
117
|
+
* @param options
|
|
118
|
+
* @returns
|
|
119
|
+
*/
|
|
120
|
+
function getResult(options) {
|
|
121
|
+
return options.grouping
|
|
122
|
+
? Object.assign({ files: [] }, options.result)
|
|
123
|
+
: options.result.files || [];
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* sync version of directory walk
|
|
127
|
+
*
|
|
128
|
+
* @param path
|
|
129
|
+
* @param options
|
|
130
|
+
* @param level
|
|
131
|
+
* @returns
|
|
132
|
+
*/
|
|
133
|
+
function walkSync(path, options, level = 0) {
|
|
134
|
+
try {
|
|
135
|
+
// Use Path.join to normalize the directory path once at entry
|
|
136
|
+
const dir = Path.join(options.dir, path);
|
|
137
|
+
let files = Fs.readdirSync(dir, options.readdirOpts);
|
|
138
|
+
if (options.sortFiles) {
|
|
139
|
+
if (options.fullStat) {
|
|
140
|
+
files = files.sort();
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
files = files.sort(direntCmp);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const dirs = [];
|
|
147
|
+
let stop = false;
|
|
148
|
+
// process files first
|
|
149
|
+
for (let ix = 0; !stop && ix < files.length; ix++) {
|
|
150
|
+
const file = files[ix];
|
|
151
|
+
let extras;
|
|
152
|
+
if (options.fullStat) {
|
|
153
|
+
const fullFile = join2(options._sep, dir, file);
|
|
154
|
+
const stat = Fs.lstatSync(fullFile);
|
|
155
|
+
extras = makeExtrasData(file, fullFile, path, stat, files, options);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
const fullFile = join2(options._sep, dir, file.name);
|
|
159
|
+
extras = makeExtrasData(file.name, fullFile, path, file, files, options);
|
|
160
|
+
}
|
|
161
|
+
if (extras.stat.isDirectory()) {
|
|
162
|
+
dirs.push(extras);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
stop = processFile(options, extras);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// now process dirs
|
|
169
|
+
if (!stop && dirs.length > 0) {
|
|
170
|
+
for (let ix = 0; ix < dirs.length; ix++) {
|
|
171
|
+
const extras = dirs[ix];
|
|
172
|
+
const flags = processDir(options, extras);
|
|
173
|
+
if (flags.stop) {
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
if (!flags.skip && level < options.maxLevel) {
|
|
177
|
+
walkSync(extras.dirFile, options, level + 1);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
if (options.rethrowError) {
|
|
184
|
+
throw err;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return getResult(options);
|
|
188
|
+
}
|
|
189
|
+
const asyncReaddir = Util.promisify(Fs.readdir);
|
|
190
|
+
const asyncLStat = Util.promisify(Fs.lstat);
|
|
191
|
+
/**
|
|
192
|
+
* async version of dir walk
|
|
193
|
+
*
|
|
194
|
+
* @param path
|
|
195
|
+
* @param options
|
|
196
|
+
* @param level
|
|
197
|
+
* @returns
|
|
198
|
+
*/
|
|
199
|
+
async function walk(path, options, level = 0) {
|
|
200
|
+
try {
|
|
201
|
+
// Use Path.join to normalize the directory path once at entry
|
|
202
|
+
const dir = Path.join(options.dir, path);
|
|
203
|
+
let files = await asyncReaddir(dir, options.readdirOpts);
|
|
204
|
+
if (options.sortFiles) {
|
|
205
|
+
if (options.fullStat) {
|
|
206
|
+
files = files.sort();
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
files = files.sort(direntCmp);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
const dirs = [];
|
|
213
|
+
let stop = false;
|
|
214
|
+
// process files first
|
|
215
|
+
for (let ix = 0; !stop && ix < files.length; ix++) {
|
|
216
|
+
const file = files[ix];
|
|
217
|
+
let extras;
|
|
218
|
+
if (options.fullStat) {
|
|
219
|
+
const fullFile = join2(options._sep, dir, file);
|
|
220
|
+
const stat = await asyncLStat(fullFile);
|
|
221
|
+
extras = makeExtrasData(file, fullFile, path, stat, files, options);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
const fullFile = join2(options._sep, dir, file.name);
|
|
225
|
+
extras = makeExtrasData(file.name, fullFile, path, file, files, options);
|
|
226
|
+
}
|
|
227
|
+
if (extras.stat.isDirectory()) {
|
|
228
|
+
dirs.push(extras);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
stop = processFile(options, extras);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// now process dirs
|
|
235
|
+
if (!stop && dirs.length > 0) {
|
|
236
|
+
let promises = [];
|
|
237
|
+
for (let ix = 0; ix < dirs.length; ix++) {
|
|
238
|
+
const extras = dirs[ix];
|
|
239
|
+
const flags = processDir(options, extras);
|
|
240
|
+
if (flags.stop) {
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
if (!flags.skip && level < options.maxLevel) {
|
|
244
|
+
const walkP = walk(extras.dirFile, options, level + 1);
|
|
245
|
+
if (options.concurrency > 1) {
|
|
246
|
+
if (options._concurrentCount < options.concurrency) {
|
|
247
|
+
options._concurrentCount++;
|
|
248
|
+
promises.push(walkP);
|
|
249
|
+
}
|
|
250
|
+
else if (promises.length) {
|
|
251
|
+
await Promise.all(promises);
|
|
252
|
+
options._concurrentCount -= promises.length;
|
|
253
|
+
promises = [walkP];
|
|
254
|
+
options._concurrentCount++;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
await walkP;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
await walkP;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (promises.length) {
|
|
266
|
+
await Promise.all(promises);
|
|
267
|
+
options._concurrentCount -= promises.length;
|
|
268
|
+
promises = [];
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
if (options.rethrowError) {
|
|
274
|
+
throw err;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return getResult(options);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* make a copy of the user's options with proper defaults
|
|
281
|
+
*
|
|
282
|
+
* @param opts
|
|
283
|
+
* @returns
|
|
284
|
+
*/
|
|
285
|
+
function makeOptions(opts) {
|
|
286
|
+
const options = typeof opts === "string" ? { cwd: opts } : opts;
|
|
287
|
+
const sep = options.pathSep || Path.posix.sep;
|
|
288
|
+
let cwd = options.cwd || options.dir || process.cwd();
|
|
289
|
+
if (!options.hasOwnProperty("pathSep") && cwd.includes("\\")) {
|
|
290
|
+
cwd = cwd.replace(/\\/g, "/");
|
|
291
|
+
}
|
|
292
|
+
const cleanExt = (ext) => {
|
|
293
|
+
if (!ext) {
|
|
294
|
+
return ext;
|
|
295
|
+
}
|
|
296
|
+
if (ext.startsWith("*.")) {
|
|
297
|
+
return ext.substring(1);
|
|
298
|
+
}
|
|
299
|
+
if (!ext.startsWith(".")) {
|
|
300
|
+
return `.${ext}`;
|
|
301
|
+
}
|
|
302
|
+
return ext;
|
|
303
|
+
};
|
|
304
|
+
// `includeRoot` was renamed to `prependCwd`, this avoid breaking code still using that
|
|
305
|
+
const prependCwd = (options.hasOwnProperty("includeRoot") ? options.includeRoot : options.prependCwd) ||
|
|
306
|
+
false;
|
|
307
|
+
const opts2 = Object.assign({
|
|
308
|
+
_sep: sep,
|
|
309
|
+
maxLevel: Infinity,
|
|
310
|
+
prefix: "",
|
|
311
|
+
prependCwd,
|
|
312
|
+
fullStat: true,
|
|
313
|
+
concurrency: 50,
|
|
314
|
+
readdirOpts: undefined,
|
|
315
|
+
grouping: undefined,
|
|
316
|
+
}, options, {
|
|
317
|
+
dir: cwd,
|
|
318
|
+
result: {},
|
|
319
|
+
ignoreExt: []
|
|
320
|
+
.concat(options.ignoreExt)
|
|
321
|
+
.map(cleanExt)
|
|
322
|
+
.filter((x) => x),
|
|
323
|
+
filterExt: []
|
|
324
|
+
.concat(options.filterExt)
|
|
325
|
+
.map(cleanExt)
|
|
326
|
+
.filter((x) => x),
|
|
327
|
+
_concurrentCount: 0,
|
|
328
|
+
});
|
|
329
|
+
if (!opts2.fullStat) {
|
|
330
|
+
opts2.readdirOpts = { withFileTypes: true };
|
|
331
|
+
}
|
|
332
|
+
return opts2;
|
|
333
|
+
}
|
|
334
|
+
export function filterScanDir(options = {}) {
|
|
335
|
+
const options2 = makeOptions(options);
|
|
336
|
+
return walk(options2.prefix, options2);
|
|
337
|
+
}
|
|
338
|
+
export function filterScanDirSync(options = {}) {
|
|
339
|
+
const options2 = makeOptions(options);
|
|
340
|
+
return walkSync(options2.prefix, options2);
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../src/index.ts","../src/util.ts"],"version":"5.9.3"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Dirent } from "fs";
|
|
2
|
+
/**
|
|
3
|
+
* compare Dirent for sorting
|
|
4
|
+
*
|
|
5
|
+
* @param a
|
|
6
|
+
* @param b
|
|
7
|
+
* @returns
|
|
8
|
+
* @ignore
|
|
9
|
+
*/
|
|
10
|
+
export declare const direntCmp: (a: Dirent, b: Dirent) => number;
|
|
11
|
+
/**
|
|
12
|
+
* Simple and fast path join for 2 arguments.
|
|
13
|
+
* Assumes first argument is already normalized and second is a simple filename.
|
|
14
|
+
*
|
|
15
|
+
* @param sep - path separator to use
|
|
16
|
+
* @param a - base path (should be normalized)
|
|
17
|
+
* @param b - path component to append (typically a filename)
|
|
18
|
+
* @returns joined path
|
|
19
|
+
*/
|
|
20
|
+
export declare const join2: (sep: string, a?: string, b?: string) => string;
|
package/dist-esm/util.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/* @ignore */
|
|
2
|
+
/**
|
|
3
|
+
* compare Dirent for sorting
|
|
4
|
+
*
|
|
5
|
+
* @param a
|
|
6
|
+
* @param b
|
|
7
|
+
* @returns
|
|
8
|
+
* @ignore
|
|
9
|
+
*/
|
|
10
|
+
export const direntCmp = (a, b) => {
|
|
11
|
+
if (a.name === b.name) {
|
|
12
|
+
return 0;
|
|
13
|
+
}
|
|
14
|
+
else if (a.name > b.name) {
|
|
15
|
+
return 1;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return -1;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Simple and fast path join for 2 arguments.
|
|
23
|
+
* Assumes first argument is already normalized and second is a simple filename.
|
|
24
|
+
*
|
|
25
|
+
* @param sep - path separator to use
|
|
26
|
+
* @param a - base path (should be normalized)
|
|
27
|
+
* @param b - path component to append (typically a filename)
|
|
28
|
+
* @returns joined path
|
|
29
|
+
*/
|
|
30
|
+
export const join2 = (sep, a, b) => {
|
|
31
|
+
if (!a || a === ".") {
|
|
32
|
+
return b || a || ".";
|
|
33
|
+
}
|
|
34
|
+
else if (!b || b === ".") {
|
|
35
|
+
return a;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return a + sep + b;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAIA,aAAa;AAEb;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;IACxD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,CAAU,EAAE,CAAU,EAAU,EAAE;IACnE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IACvB,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC"}
|
package/index.cjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const x = require("./dist-cjs/index.cjs");
|
|
4
|
+
|
|
5
|
+
function filterScanDir(...args) {
|
|
6
|
+
return x.filterScanDir(...args);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
module.exports = filterScanDir;
|
|
10
|
+
|
|
11
|
+
filterScanDir.filterScanDir = x.filterScanDir;
|
|
12
|
+
filterScanDir.filterScanDirSync = x.filterScanDirSync;
|
package/package.json
CHANGED
|
@@ -1,31 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "filter-scan-dir",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Recursively scan and filter directory for a flat array of files",
|
|
5
|
-
"
|
|
6
|
-
"types": "
|
|
5
|
+
"type": "module",
|
|
6
|
+
"types": "dist-esm/index.d.ts",
|
|
7
|
+
"main": "dist-cjs/index.cjs",
|
|
8
|
+
"module": "dist-esm/index.js",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./dist-esm/index.d.ts",
|
|
13
|
+
"default": "./dist-esm/index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./dist-cjs/index.d.ts",
|
|
17
|
+
"default": "./index.cjs"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"./package.json": "./package.json"
|
|
21
|
+
},
|
|
7
22
|
"scripts": {
|
|
8
|
-
"build": "
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
23
|
+
"build": "xrun --serial _clean _build:all _build:cjs:fix",
|
|
24
|
+
"_clean": "rm -rf dist-*",
|
|
25
|
+
"_build:all": "xrun --concurrent _build:esm _build:cjs",
|
|
26
|
+
"_build:esm": "tsc --build tsconfig.esm.json",
|
|
27
|
+
"_build:cjs": "tsc --build tsconfig.cjs.json",
|
|
28
|
+
"_build:cjs:fix": "ts2mjs --cjs --skip-ts --remove-source dist-cjs",
|
|
29
|
+
"test": "vitest run",
|
|
30
|
+
"test:watch": "vitest",
|
|
31
|
+
"test:ui": "vitest --ui",
|
|
32
|
+
"coverage": "vitest run --coverage",
|
|
33
|
+
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
34
|
+
"format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
35
|
+
"ci": "xrun --serial build test coverage",
|
|
36
|
+
"clean": "rm -rf dist-* coverage",
|
|
37
|
+
"prepublishOnly": "xrun ci",
|
|
38
|
+
"docs": "typedoc src/index.ts --out docs && touch docs/.nojekyll",
|
|
39
|
+
"postpack": "publish-util-postpack"
|
|
18
40
|
},
|
|
19
41
|
"repository": {
|
|
20
42
|
"type": "git",
|
|
21
|
-
"url": "https://github.com/jchip/filter-scan-dir.git"
|
|
43
|
+
"url": "git+https://github.com/jchip/filter-scan-dir.git"
|
|
22
44
|
},
|
|
23
45
|
"publishConfig": {
|
|
24
46
|
"registry": "https://registry.npmjs.com/"
|
|
25
47
|
},
|
|
26
48
|
"files": [
|
|
27
|
-
"
|
|
28
|
-
"
|
|
49
|
+
"index.cjs",
|
|
50
|
+
"dist-cjs",
|
|
51
|
+
"dist-esm"
|
|
29
52
|
],
|
|
30
53
|
"keywords": [
|
|
31
54
|
"util",
|
|
@@ -48,6 +71,6 @@
|
|
|
48
71
|
"homepage": "https://github.com/jchip/filter-scan-dir",
|
|
49
72
|
"dependencies": {},
|
|
50
73
|
"engines": {
|
|
51
|
-
"node": ">=
|
|
74
|
+
"node": ">=12"
|
|
52
75
|
}
|
|
53
76
|
}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Dirent } from "fs";
|
|
2
|
-
/**
|
|
3
|
-
* compare Dirent for sorting
|
|
4
|
-
*
|
|
5
|
-
* @param a
|
|
6
|
-
* @param b
|
|
7
|
-
* @returns
|
|
8
|
-
* @ignore
|
|
9
|
-
*/
|
|
10
|
-
export declare const direntCmp: (a: Dirent, b: Dirent) => number;
|
|
11
|
-
/**
|
|
12
|
-
* Make a specialized and simple but faster version of path.join that handles just 2 args
|
|
13
|
-
*/
|
|
14
|
-
export declare const makePathJoin2: (sep: string, cwd: string, prefix: string) => (...paths: string[]) => string;
|
package/dist/util.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.makePathJoin2 = exports.direntCmp = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
/* @ignore */
|
|
9
|
-
/**
|
|
10
|
-
* compare Dirent for sorting
|
|
11
|
-
*
|
|
12
|
-
* @param a
|
|
13
|
-
* @param b
|
|
14
|
-
* @returns
|
|
15
|
-
* @ignore
|
|
16
|
-
*/
|
|
17
|
-
const direntCmp = (a, b) => {
|
|
18
|
-
if (a.name === b.name) {
|
|
19
|
-
return 0;
|
|
20
|
-
}
|
|
21
|
-
else if (a.name > b.name) {
|
|
22
|
-
return 1;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return -1;
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
exports.direntCmp = direntCmp;
|
|
29
|
-
/**
|
|
30
|
-
* Make a specialized and simple but faster version of path.join that handles just 2 args
|
|
31
|
-
*/
|
|
32
|
-
const makePathJoin2 = (sep, cwd, prefix) => {
|
|
33
|
-
// user passed cwd or prefix that contains ../ or ..\\, which only path.join
|
|
34
|
-
// can handle
|
|
35
|
-
if (["../", "..\\"].find((s) => cwd.includes(s) || prefix.includes(s)) ||
|
|
36
|
-
(cwd.startsWith(".") && cwd.length > 1) ||
|
|
37
|
-
(prefix.startsWith(".") && prefix.length > 1)) {
|
|
38
|
-
return path_1.default.join;
|
|
39
|
-
}
|
|
40
|
-
return (a, b) => {
|
|
41
|
-
if (a === ".") {
|
|
42
|
-
return b || a;
|
|
43
|
-
}
|
|
44
|
-
else if (b === ".") {
|
|
45
|
-
return a || b;
|
|
46
|
-
}
|
|
47
|
-
else if (a && b) {
|
|
48
|
-
return a + sep + b;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
return a || b || ".";
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
exports.makePathJoin2 = makePathJoin2;
|
|
56
|
-
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAIxB,aAAa;AAEb;;;;;;;GAOG;AACI,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;IACxD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE;QACrB,OAAO,CAAC,CAAC;KACV;SAAM,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE;QAC1B,OAAO,CAAC,CAAC;KACV;SAAM;QACL,OAAO,CAAC,CAAC,CAAC;KACX;AACH,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB;AAEF;;GAEG;AACI,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE;IACxE,4EAA4E;IAC5E,aAAa;IACb,IACE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAC7C;QACA,OAAO,cAAI,CAAC,IAAI,CAAC;KAClB;IAED,OAAO,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;QAChC,IAAI,CAAC,KAAK,GAAG,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,CAAC;SACf;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC;SACf;aAAM,IAAI,CAAC,IAAI,CAAC,EAAE;YACjB,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SACpB;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;SACtB;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,aAAa,iBAsBxB"}
|
package/lib/index.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export * from "../dist/index.d";
|
|
2
|
-
|
|
3
|
-
import { filterScanDir as FSD, filterScanDirSync as FSDS } from "../dist/index.d";
|
|
4
|
-
|
|
5
|
-
// backward type compatible for legacy require("filter-scan-dir") usage
|
|
6
|
-
// new TS code should do `import {filterScanDir} from "filter-scan-dir"`
|
|
7
|
-
declare function asyncApi(options?: any): Promise<any>;
|
|
8
|
-
declare namespace asyncApi {
|
|
9
|
-
const sync: (options?: any) => any;
|
|
10
|
-
const filterScanDir: typeof FSD;
|
|
11
|
-
const filterScanDirSync: typeof FSDS;
|
|
12
|
-
}
|
|
13
|
-
// @ts-ignore
|
|
14
|
-
export = asyncApi;
|
package/lib/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const fsd = require("../dist");
|
|
4
|
-
|
|
5
|
-
const asyncApi = (options) => fsd.filterScanDir(options);
|
|
6
|
-
Object.defineProperties(asyncApi, {
|
|
7
|
-
sync: { value: fsd.filterScanDirSync },
|
|
8
|
-
filterScanDir: { value: fsd.filterScanDir },
|
|
9
|
-
filterScanDirSync: { value: fsd.filterScanDirSync },
|
|
10
|
-
});
|
|
11
|
-
module.exports = asyncApi;
|