@shuvi/utils 1.0.55 → 1.0.56
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/lib/async.d.ts +3 -3
- package/lib/async.js +1 -2
- package/lib/deepmerge.js +1 -2
- package/lib/defer.js +1 -2
- package/lib/escapeRegExp.js +1 -2
- package/lib/events.d.ts +4 -4
- package/lib/events.js +2 -3
- package/lib/file.js +3 -3
- package/lib/fileWatcher.d.ts +2 -2
- package/lib/fileWatcher.js +2 -2
- package/lib/htmlescape.js +2 -3
- package/lib/index.d.ts +3 -3
- package/lib/index.js +2 -2
- package/lib/once.js +1 -2
- package/lib/recursiveCopy.js +3 -4
- package/lib/recursiveDelete.js +4 -5
- package/lib/recursiveReaddir.d.ts +1 -1
- package/lib/recursiveReaddir.js +4 -5
- package/lib/resolve.d.ts +2 -2
- package/lib/string.js +1 -2
- package/package.json +1 -1
package/lib/async.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type Results<T = any> = T[] & {
|
|
2
2
|
first: T;
|
|
3
3
|
_firstFlag: boolean;
|
|
4
4
|
};
|
|
5
|
-
export
|
|
5
|
+
export type SimpleCallback = () => any;
|
|
6
6
|
export interface AsyncParallelIteratorCallback<T = unknown, E = unknown> {
|
|
7
7
|
(err?: E | null, value?: T): void;
|
|
8
8
|
}
|
|
@@ -15,5 +15,5 @@ export interface AsyncIterator<T, E> {
|
|
|
15
15
|
export interface ErrorCallback<T> {
|
|
16
16
|
(err?: T | null): void;
|
|
17
17
|
}
|
|
18
|
-
export
|
|
18
|
+
export type AsyncParallelCallback<T, E> = (finishedNum: number, values: Results<T>, errors: Results<E>, done: SimpleCallback) => any;
|
|
19
19
|
export declare function each<T = unknown, E = unknown>(targets: T[], handler: AsyncIterator<T, E>, cb?: ErrorCallback<E>): void;
|
package/lib/async.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.each =
|
|
3
|
+
exports.each = each;
|
|
4
4
|
function runParallel(targets, handler, cb) {
|
|
5
5
|
const values = [];
|
|
6
6
|
const errors = [];
|
|
@@ -53,4 +53,3 @@ function each(targets, handler, cb) {
|
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
|
-
exports.each = each;
|
package/lib/deepmerge.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deepmerge =
|
|
3
|
+
exports.deepmerge = deepmerge;
|
|
4
4
|
function mergeTwoObject(origin, target) {
|
|
5
5
|
if (target === null || typeof target === 'undefined') {
|
|
6
6
|
return origin;
|
|
@@ -24,4 +24,3 @@ function mergeTwoObject(origin, target) {
|
|
|
24
24
|
function deepmerge(...args) {
|
|
25
25
|
return args.reduce(mergeTwoObject, {});
|
|
26
26
|
}
|
|
27
|
-
exports.deepmerge = deepmerge;
|
package/lib/defer.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDefer =
|
|
3
|
+
exports.createDefer = createDefer;
|
|
4
4
|
function createDefer() {
|
|
5
5
|
let defer = {
|
|
6
6
|
resolve: null,
|
|
@@ -19,4 +19,3 @@ function createDefer() {
|
|
|
19
19
|
});
|
|
20
20
|
return defer;
|
|
21
21
|
}
|
|
22
|
-
exports.createDefer = createDefer;
|
package/lib/escapeRegExp.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.escapeRegExp =
|
|
3
|
+
exports.escapeRegExp = escapeRegExp;
|
|
4
4
|
function escapeRegExp(s) {
|
|
5
5
|
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
6
6
|
}
|
|
7
|
-
exports.escapeRegExp = escapeRegExp;
|
package/lib/events.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
1
|
+
type AnyHandler = (...args: any) => void;
|
|
2
|
+
export type RemoveListenerCallback = () => void | undefined;
|
|
3
|
+
export type Event<F extends AnyHandler> = {
|
|
4
4
|
toArray: () => F[];
|
|
5
5
|
length: number;
|
|
6
6
|
on: (fn: F) => RemoveListenerCallback;
|
|
@@ -9,7 +9,7 @@ export declare type Event<F extends AnyHandler> = {
|
|
|
9
9
|
export interface EventMap {
|
|
10
10
|
[key: string]: AnyHandler;
|
|
11
11
|
}
|
|
12
|
-
export
|
|
12
|
+
export type Events<EM extends EventMap = EventMap> = {
|
|
13
13
|
on<Name extends keyof EM, Handler = EM[Name]>(type: Name, handler: Handler): RemoveListenerCallback;
|
|
14
14
|
emit<Name extends keyof EM, Handler extends AnyHandler = EM[Name]>(type: string, ...args: Parameters<Handler>): void;
|
|
15
15
|
};
|
package/lib/events.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.createEvent = createEvent;
|
|
4
|
+
exports.createEvents = createEvents;
|
|
4
5
|
function createEvent() {
|
|
5
6
|
let handlers = [];
|
|
6
7
|
return {
|
|
@@ -22,7 +23,6 @@ function createEvent() {
|
|
|
22
23
|
}
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
|
-
exports.createEvent = createEvent;
|
|
26
26
|
function createEvents() {
|
|
27
27
|
const all = Object.create(null);
|
|
28
28
|
return {
|
|
@@ -43,4 +43,3 @@ function createEvents() {
|
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
-
exports.createEvents = createEvents;
|
package/lib/file.js
CHANGED
|
@@ -32,17 +32,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.normalizePath = exports.isDirectory = exports.resolveFile = exports.findFirstExistedFile =
|
|
35
|
+
exports.normalizePath = exports.isDirectory = exports.resolveFile = exports.findFirstExistedFile = void 0;
|
|
36
|
+
exports.withExts = withExts;
|
|
37
|
+
exports.removeExt = removeExt;
|
|
36
38
|
const fs = __importStar(require("fs"));
|
|
37
39
|
const path = __importStar(require("path"));
|
|
38
40
|
function withExts(file, extensions) {
|
|
39
41
|
return extensions.map(ext => `${file}${ext}`);
|
|
40
42
|
}
|
|
41
|
-
exports.withExts = withExts;
|
|
42
43
|
function removeExt(file) {
|
|
43
44
|
return file.replace(/\.\w+$/, '');
|
|
44
45
|
}
|
|
45
|
-
exports.removeExt = removeExt;
|
|
46
46
|
const findFirstExistedFile = (files) => {
|
|
47
47
|
for (let index = 0; index < files.length; index++) {
|
|
48
48
|
const file = files[index];
|
package/lib/fileWatcher.d.ts
CHANGED
|
@@ -14,6 +14,6 @@ export interface WatchOptions {
|
|
|
14
14
|
startTime?: number;
|
|
15
15
|
ignoreFileContentUpdate?: boolean;
|
|
16
16
|
}
|
|
17
|
-
export
|
|
18
|
-
export
|
|
17
|
+
export type WatchCallback = (event: WatchEvent) => void;
|
|
18
|
+
export type ChangeCallback = (file: string, time: number) => void;
|
|
19
19
|
export declare function watch({ files, directories, missing, aggregateTimeout, startTime, ignoreFileContentUpdate }: WatchOptions, callback: WatchCallback, callbackUndelayed?: ChangeCallback): () => void;
|
package/lib/fileWatcher.js
CHANGED
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.Watchpack = void 0;
|
|
7
|
+
exports.watch = watch;
|
|
7
8
|
const watchpack_1 = __importDefault(require("watchpack"));
|
|
8
9
|
exports.Watchpack = watchpack_1.default;
|
|
9
10
|
const watchpackExplanationType = {
|
|
@@ -78,4 +79,3 @@ function watch({ files, directories, missing, aggregateTimeout, startTime = Date
|
|
|
78
79
|
wp.close();
|
|
79
80
|
};
|
|
80
81
|
}
|
|
81
|
-
exports.watch = watch;
|
package/lib/htmlescape.js
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
// This utility is based on https://github.com/zertosh/htmlescape
|
|
3
3
|
// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.
|
|
5
|
+
exports.htmlEscapeJsonString = htmlEscapeJsonString;
|
|
6
|
+
exports.htmlEscapeContent = htmlEscapeContent;
|
|
6
7
|
const JSON_ESCAPE_LOOKUP = {
|
|
7
8
|
'&': '\\u0026',
|
|
8
9
|
'>': '\\u003e',
|
|
@@ -14,7 +15,6 @@ const JSON_ESCAPE_REGEX = /[&><\u2028\u2029]/g;
|
|
|
14
15
|
function htmlEscapeJsonString(str) {
|
|
15
16
|
return str.replace(JSON_ESCAPE_REGEX, (match) => JSON_ESCAPE_LOOKUP[match]);
|
|
16
17
|
}
|
|
17
|
-
exports.htmlEscapeJsonString = htmlEscapeJsonString;
|
|
18
18
|
const CONTENT_ESCAPE_LOOKUP = {
|
|
19
19
|
'&': '&',
|
|
20
20
|
'"': '"',
|
|
@@ -26,4 +26,3 @@ const CONTENT_ESCAPE_REGEX = /[&><\'\"]/g;
|
|
|
26
26
|
function htmlEscapeContent(str) {
|
|
27
27
|
return str.replace(CONTENT_ESCAPE_REGEX, (match) => CONTENT_ESCAPE_LOOKUP[match]);
|
|
28
28
|
}
|
|
29
|
-
exports.htmlEscapeContent = htmlEscapeContent;
|
package/lib/index.d.ts
CHANGED
|
@@ -3,12 +3,12 @@ export * from './defer';
|
|
|
3
3
|
export declare const EMPTY_OBJ: {};
|
|
4
4
|
export declare const extend: {
|
|
5
5
|
<T extends {}, U>(target: T, source: U): T & U;
|
|
6
|
-
<
|
|
7
|
-
<
|
|
6
|
+
<T extends {}, U, V>(target: T, source1: U, source2: V): T & U & V;
|
|
7
|
+
<T extends {}, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
|
|
8
8
|
(target: object, ...sources: any[]): any;
|
|
9
9
|
};
|
|
10
10
|
export declare const isArray: (arg: any) => arg is any[];
|
|
11
11
|
export declare const isObject: (val: unknown) => val is Record<any, any>;
|
|
12
12
|
export declare const isFunction: (val: unknown) => val is Function;
|
|
13
|
-
export declare const hasOwn: (val: object, key: string | symbol) => key is
|
|
13
|
+
export declare const hasOwn: (val: object, key: string | symbol) => key is keyof typeof val;
|
|
14
14
|
export declare function getType(obj: any): string;
|
package/lib/index.js
CHANGED
|
@@ -17,7 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.
|
|
20
|
+
exports.hasOwn = exports.isFunction = exports.isObject = exports.isArray = exports.extend = exports.EMPTY_OBJ = exports.NOOP = void 0;
|
|
21
|
+
exports.getType = getType;
|
|
21
22
|
var noopFn_1 = require("./noopFn");
|
|
22
23
|
Object.defineProperty(exports, "NOOP", { enumerable: true, get: function () { return __importDefault(noopFn_1).default; } });
|
|
23
24
|
__exportStar(require("./defer"), exports);
|
|
@@ -41,4 +42,3 @@ function getType(obj) {
|
|
|
41
42
|
// inspect [[Class]] for objects
|
|
42
43
|
return toString.call(obj).replace(objectRegExp, '$1');
|
|
43
44
|
}
|
|
44
|
-
exports.getType = getType;
|
package/lib/once.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.once =
|
|
3
|
+
exports.once = once;
|
|
4
4
|
function once(fn) {
|
|
5
5
|
let hasRun = false;
|
|
6
6
|
let result;
|
|
@@ -13,4 +13,3 @@ function once(fn) {
|
|
|
13
13
|
}
|
|
14
14
|
return wrapped;
|
|
15
15
|
}
|
|
16
|
-
exports.once = once;
|
package/lib/recursiveCopy.js
CHANGED
|
@@ -32,7 +32,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.recursiveCopy =
|
|
35
|
+
exports.recursiveCopy = recursiveCopy;
|
|
36
36
|
const path = __importStar(require("path"));
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
38
|
const util_1 = require("util");
|
|
@@ -42,8 +42,8 @@ const fsStat = (0, util_1.promisify)(fs.stat);
|
|
|
42
42
|
const fsReaddir = (0, util_1.promisify)(fs.readdir);
|
|
43
43
|
const fsCopyFile = (0, util_1.promisify)(fs.copyFile);
|
|
44
44
|
const COPYFILE_EXCL = fs.constants.COPYFILE_EXCL;
|
|
45
|
-
function recursiveCopy(
|
|
46
|
-
return __awaiter(this,
|
|
45
|
+
function recursiveCopy(source_1, dest_1) {
|
|
46
|
+
return __awaiter(this, arguments, void 0, function* (source, dest, { concurrency = 255, filter = () => true } = {}) {
|
|
47
47
|
const cwdPath = process.cwd();
|
|
48
48
|
const from = path.resolve(cwdPath, source);
|
|
49
49
|
const to = path.resolve(cwdPath, dest);
|
|
@@ -79,4 +79,3 @@ function recursiveCopy(source, dest, { concurrency = 255, filter = () => true }
|
|
|
79
79
|
yield _copy(from);
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
|
-
exports.recursiveCopy = recursiveCopy;
|
package/lib/recursiveDelete.js
CHANGED
|
@@ -32,7 +32,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.recursiveDelete =
|
|
35
|
+
exports.recursiveDelete = recursiveDelete;
|
|
36
36
|
const fs = __importStar(require("fs"));
|
|
37
37
|
const path_1 = require("path");
|
|
38
38
|
const util_1 = require("util");
|
|
@@ -41,7 +41,7 @@ const fsStat = (0, util_1.promisify)(fs.stat);
|
|
|
41
41
|
const fsRmdir = (0, util_1.promisify)(fs.rmdir);
|
|
42
42
|
const fsUnlink = (0, util_1.promisify)(fs.unlink);
|
|
43
43
|
const sleep = (0, util_1.promisify)(setTimeout);
|
|
44
|
-
const unlinkFile = (
|
|
44
|
+
const unlinkFile = (p_1, ...args_1) => __awaiter(void 0, [p_1, ...args_1], void 0, function* (p, t = 1) {
|
|
45
45
|
try {
|
|
46
46
|
yield fsUnlink(p);
|
|
47
47
|
}
|
|
@@ -68,8 +68,8 @@ const unlinkFile = (p, t = 1) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
68
68
|
* @param {RegExp} options.ignore Ignore certain files, only the relative file path is considered, not the full path
|
|
69
69
|
* @param {string} options.rootDir Used to replace the initial path, only the relative path is left, it's faster than path.relative.
|
|
70
70
|
*/
|
|
71
|
-
function recursiveDelete(
|
|
72
|
-
return __awaiter(this,
|
|
71
|
+
function recursiveDelete(dir_1) {
|
|
72
|
+
return __awaiter(this, arguments, void 0, function* (dir, { filter, ignore, rootDir = dir } = {}) {
|
|
73
73
|
let result;
|
|
74
74
|
try {
|
|
75
75
|
result = yield fsReaddir(dir);
|
|
@@ -108,4 +108,3 @@ function recursiveDelete(dir, { filter, ignore, rootDir = dir } = {}) {
|
|
|
108
108
|
})));
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
-
exports.recursiveDelete = recursiveDelete;
|
package/lib/recursiveReaddir.js
CHANGED
|
@@ -32,7 +32,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.
|
|
35
|
+
exports.recursiveReadDir = recursiveReadDir;
|
|
36
|
+
exports.recursiveReadDirSync = recursiveReadDirSync;
|
|
36
37
|
const fs = __importStar(require("fs"));
|
|
37
38
|
const path = __importStar(require("path"));
|
|
38
39
|
const util_1 = require("util");
|
|
@@ -54,8 +55,8 @@ function runTest(test, v) {
|
|
|
54
55
|
* @param {string} options.arr This doesn't have to be provided, it's used for the recursion
|
|
55
56
|
* @returns {Promise<string[]>} Promise array holding all relative paths
|
|
56
57
|
*/
|
|
57
|
-
function recursiveReadDir(
|
|
58
|
-
return __awaiter(this,
|
|
58
|
+
function recursiveReadDir(dir_1) {
|
|
59
|
+
return __awaiter(this, arguments, void 0, function* (dir, { filter, ignore, rootDir = dir, arr = [] } = {}) {
|
|
59
60
|
const result = yield fsReaddir(dir);
|
|
60
61
|
yield Promise.all(result.map((part) => __awaiter(this, void 0, void 0, function* () {
|
|
61
62
|
const absolutePath = path.join(dir, part);
|
|
@@ -76,7 +77,6 @@ function recursiveReadDir(dir, { filter, ignore, rootDir = dir, arr = [] } = {})
|
|
|
76
77
|
return arr.sort();
|
|
77
78
|
});
|
|
78
79
|
}
|
|
79
|
-
exports.recursiveReadDir = recursiveReadDir;
|
|
80
80
|
/**
|
|
81
81
|
* Recursively read directory
|
|
82
82
|
* @param {string} dir Directory to read
|
|
@@ -105,4 +105,3 @@ function recursiveReadDirSync(dir, { filter, ignore, rootDir = dir, arr = [] } =
|
|
|
105
105
|
});
|
|
106
106
|
return arr.sort();
|
|
107
107
|
}
|
|
108
|
-
exports.recursiveReadDirSync = recursiveReadDirSync;
|
package/lib/resolve.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import * as _resolve from 'resolve';
|
|
2
|
-
export
|
|
3
|
-
export declare const resolve: (id: string, opts?: _resolve.SyncOpts
|
|
2
|
+
export type ResolveOptions = _resolve.SyncOpts;
|
|
3
|
+
export declare const resolve: (id: string, opts?: _resolve.SyncOpts) => string;
|
package/lib/string.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.joinPath =
|
|
3
|
+
exports.joinPath = joinPath;
|
|
4
4
|
function joinPath(lead, ...paths) {
|
|
5
5
|
if (paths.length < 1) {
|
|
6
6
|
return lead;
|
|
@@ -9,4 +9,3 @@ function joinPath(lead, ...paths) {
|
|
|
9
9
|
'/' +
|
|
10
10
|
paths.join('/').replace(/\\/g, '/').replace(/\/+/g, '/').replace(/^\/+/, ''));
|
|
11
11
|
}
|
|
12
|
-
exports.joinPath = joinPath;
|