@mnaoumov/typescript-lib 0.0.0 → 1.0.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/@types/debug/package.json +4 -0
- package/LICENSE +21 -0
- package/README.md +7 -1
- package/dist/lib/cjs/@types/debug.d.cts +21 -0
- package/dist/lib/cjs/abort-controller.cjs +202 -0
- package/dist/lib/cjs/abort-controller.d.cts +135 -0
- package/dist/lib/cjs/aggregate-error.cjs +98 -0
- package/dist/lib/cjs/aggregate-error.d.cts +24 -0
- package/dist/lib/cjs/array-buffer.cjs +96 -0
- package/dist/lib/cjs/array-buffer.d.cts +16 -0
- package/dist/lib/cjs/array.cjs +134 -0
- package/dist/lib/cjs/array.d.cts +46 -0
- package/dist/lib/cjs/async-events.cjs +466 -0
- package/dist/lib/cjs/async-events.d.cts +456 -0
- package/dist/lib/cjs/async-operation-hook.cjs +113 -0
- package/dist/lib/cjs/async-operation-hook.d.cts +59 -0
- package/dist/lib/cjs/async.cjs +521 -0
- package/dist/lib/cjs/async.d.cts +414 -0
- package/dist/lib/cjs/beeper.cjs +126 -0
- package/dist/lib/cjs/beeper.d.cts +21 -0
- package/dist/lib/cjs/blob.cjs +160 -0
- package/dist/lib/cjs/blob.d.cts +59 -0
- package/dist/lib/cjs/bytes.cjs +114 -0
- package/dist/lib/cjs/bytes.d.cts +17 -0
- package/dist/lib/cjs/debug-controller.cjs +80 -0
- package/dist/lib/cjs/debug-controller.d.cts +87 -0
- package/dist/lib/cjs/debug.cjs +235 -0
- package/dist/lib/cjs/debug.d.cts +66 -0
- package/dist/lib/cjs/desktop-zip-extractor.cjs +215 -0
- package/dist/lib/cjs/desktop-zip-extractor.d.cts +95 -0
- package/dist/lib/cjs/disposable.cjs +414 -0
- package/dist/lib/cjs/disposable.d.cts +387 -0
- package/dist/lib/cjs/enum.cjs +100 -0
- package/dist/lib/cjs/enum.d.cts +24 -0
- package/dist/lib/cjs/error.cjs +297 -0
- package/dist/lib/cjs/error.d.cts +181 -0
- package/dist/lib/cjs/function.cjs +141 -0
- package/dist/lib/cjs/function.d.cts +128 -0
- package/dist/lib/cjs/html-element.cjs +341 -0
- package/dist/lib/cjs/html-element.d.cts +199 -0
- package/dist/lib/cjs/index.cjs +195 -0
- package/dist/lib/cjs/index.d.cts +33 -0
- package/dist/lib/cjs/jpeg-metadata.cjs +228 -0
- package/dist/lib/cjs/jpeg-metadata.d.cts +42 -0
- package/dist/lib/cjs/library.cjs +158 -0
- package/dist/lib/cjs/library.d.cts +96 -0
- package/dist/lib/cjs/object-utils.cjs +617 -0
- package/dist/lib/cjs/object-utils.d.cts +298 -0
- package/dist/lib/cjs/path.cjs +202 -0
- package/dist/lib/cjs/path.d.cts +154 -0
- package/dist/lib/cjs/reg-exp.cjs +254 -0
- package/dist/lib/cjs/reg-exp.d.cts +87 -0
- package/dist/lib/cjs/string.cjs +326 -0
- package/dist/lib/cjs/string.d.cts +361 -0
- package/dist/lib/cjs/transformers/date-transformer.cjs +129 -0
- package/dist/lib/cjs/transformers/date-transformer.d.cts +39 -0
- package/dist/lib/cjs/transformers/group-transformer.cjs +173 -0
- package/dist/lib/cjs/transformers/group-transformer.d.cts +70 -0
- package/dist/lib/cjs/transformers/index.cjs +123 -0
- package/dist/lib/cjs/transformers/index.d.cts +9 -0
- package/dist/lib/cjs/transformers/map-transformer.cjs +129 -0
- package/dist/lib/cjs/transformers/map-transformer.d.cts +41 -0
- package/dist/lib/cjs/transformers/set-transformer.cjs +129 -0
- package/dist/lib/cjs/transformers/set-transformer.d.cts +39 -0
- package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +127 -0
- package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +36 -0
- package/dist/lib/cjs/transformers/transformer.cjs +170 -0
- package/dist/lib/cjs/transformers/transformer.d.cts +70 -0
- package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +130 -0
- package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +42 -0
- package/dist/lib/cjs/transformers/typed-transformer.cjs +94 -0
- package/dist/lib/cjs/transformers/typed-transformer.d.cts +39 -0
- package/dist/lib/cjs/two-way-map.cjs +208 -0
- package/dist/lib/cjs/two-way-map.d.cts +101 -0
- package/dist/lib/cjs/type-guards.cjs +128 -0
- package/dist/lib/cjs/type-guards.d.cts +84 -0
- package/dist/lib/cjs/type.cjs +121 -0
- package/dist/lib/cjs/type.d.cts +122 -0
- package/dist/lib/cjs/typescript-lib-state.cjs +126 -0
- package/dist/lib/cjs/typescript-lib-state.d.cts +56 -0
- package/dist/lib/cjs/url.cjs +136 -0
- package/dist/lib/cjs/url.d.cts +74 -0
- package/dist/lib/cjs/value-provider.cjs +100 -0
- package/dist/lib/cjs/value-provider.d.cts +28 -0
- package/dist/lib/cjs/value-wrapper.cjs +144 -0
- package/dist/lib/cjs/value-wrapper.d.cts +47 -0
- package/dist/lib/esm/@types/debug.d.mts +21 -0
- package/dist/lib/esm/abort-controller.d.mts +135 -0
- package/dist/lib/esm/abort-controller.mjs +159 -0
- package/dist/lib/esm/aggregate-error.d.mts +24 -0
- package/dist/lib/esm/aggregate-error.mjs +60 -0
- package/dist/lib/esm/array-buffer.d.mts +16 -0
- package/dist/lib/esm/array-buffer.mjs +58 -0
- package/dist/lib/esm/array.d.mts +46 -0
- package/dist/lib/esm/array.mjs +93 -0
- package/dist/lib/esm/async-events.d.mts +456 -0
- package/dist/lib/esm/async-events.mjs +427 -0
- package/dist/lib/esm/async-operation-hook.d.mts +59 -0
- package/dist/lib/esm/async-operation-hook.mjs +71 -0
- package/dist/lib/esm/async.d.mts +414 -0
- package/dist/lib/esm/async.mjs +479 -0
- package/dist/lib/esm/beeper.d.mts +21 -0
- package/dist/lib/esm/beeper.mjs +88 -0
- package/dist/lib/esm/blob.d.mts +59 -0
- package/dist/lib/esm/blob.mjs +121 -0
- package/dist/lib/esm/bytes.d.mts +17 -0
- package/dist/lib/esm/bytes.mjs +76 -0
- package/dist/lib/esm/debug-controller.d.mts +87 -0
- package/dist/lib/esm/debug-controller.mjs +50 -0
- package/dist/lib/esm/debug.d.mts +66 -0
- package/dist/lib/esm/debug.mjs +185 -0
- package/dist/lib/esm/desktop-zip-extractor.d.mts +95 -0
- package/dist/lib/esm/desktop-zip-extractor.mjs +180 -0
- package/dist/lib/esm/disposable.d.mts +387 -0
- package/dist/lib/esm/disposable.mjs +360 -0
- package/dist/lib/esm/enum.d.mts +24 -0
- package/dist/lib/esm/enum.mjs +61 -0
- package/dist/lib/esm/error.d.mts +181 -0
- package/dist/lib/esm/error.mjs +248 -0
- package/dist/lib/esm/function.d.mts +128 -0
- package/dist/lib/esm/function.mjs +96 -0
- package/dist/lib/esm/html-element.d.mts +199 -0
- package/dist/lib/esm/html-element.mjs +291 -0
- package/dist/lib/esm/index.d.mts +33 -0
- package/dist/lib/esm/index.mjs +116 -0
- package/dist/lib/esm/jpeg-metadata.d.mts +42 -0
- package/dist/lib/esm/jpeg-metadata.mjs +189 -0
- package/dist/lib/esm/library.d.mts +96 -0
- package/dist/lib/esm/library.mjs +118 -0
- package/dist/lib/esm/object-utils.d.mts +298 -0
- package/dist/lib/esm/object-utils.mjs +567 -0
- package/dist/lib/esm/path.d.mts +154 -0
- package/dist/lib/esm/path.mjs +139 -0
- package/dist/lib/esm/reg-exp.d.mts +87 -0
- package/dist/lib/esm/reg-exp.mjs +213 -0
- package/dist/lib/esm/string.d.mts +361 -0
- package/dist/lib/esm/string.mjs +274 -0
- package/dist/lib/esm/transformers/date-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/date-transformer.mjs +91 -0
- package/dist/lib/esm/transformers/group-transformer.d.mts +70 -0
- package/dist/lib/esm/transformers/group-transformer.mjs +138 -0
- package/dist/lib/esm/transformers/index.d.mts +9 -0
- package/dist/lib/esm/transformers/index.mjs +68 -0
- package/dist/lib/esm/transformers/map-transformer.d.mts +41 -0
- package/dist/lib/esm/transformers/map-transformer.mjs +91 -0
- package/dist/lib/esm/transformers/set-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/set-transformer.mjs +91 -0
- package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +36 -0
- package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +89 -0
- package/dist/lib/esm/transformers/transformer.d.mts +70 -0
- package/dist/lib/esm/transformers/transformer.mjs +132 -0
- package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +42 -0
- package/dist/lib/esm/transformers/two-way-map-transformer.mjs +92 -0
- package/dist/lib/esm/transformers/typed-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/typed-transformer.mjs +56 -0
- package/dist/lib/esm/two-way-map.d.mts +101 -0
- package/dist/lib/esm/two-way-map.mjs +170 -0
- package/dist/lib/esm/type-guards.d.mts +84 -0
- package/dist/lib/esm/type-guards.mjs +85 -0
- package/dist/lib/esm/type.d.mts +122 -0
- package/dist/lib/esm/type.mjs +83 -0
- package/dist/lib/esm/typescript-lib-state.d.mts +56 -0
- package/dist/lib/esm/typescript-lib-state.mjs +84 -0
- package/dist/lib/esm/url.d.mts +74 -0
- package/dist/lib/esm/url.mjs +94 -0
- package/dist/lib/esm/value-provider.d.mts +28 -0
- package/dist/lib/esm/value-provider.mjs +62 -0
- package/dist/lib/esm/value-wrapper.d.mts +47 -0
- package/dist/lib/esm/value-wrapper.mjs +106 -0
- package/package.json +111 -13
- package/transformers/date-transformer/package.json +6 -0
- package/transformers/group-transformer/package.json +6 -0
- package/transformers/index/package.json +6 -0
- package/transformers/map-transformer/package.json +6 -0
- package/transformers/package.json +6 -0
- package/transformers/set-transformer/package.json +6 -0
- package/transformers/skip-private-property-transformer/package.json +6 -0
- package/transformers/transformer/package.json +6 -0
- package/transformers/two-way-map-transformer/package.json +6 -0
- package/transformers/typed-transformer/package.json +6 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function () {
|
|
7
|
+
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function ensureBrowserProcess() {
|
|
13
|
+
const browserProcess = {
|
|
14
|
+
browser: true,
|
|
15
|
+
cwd() {
|
|
16
|
+
return '/';
|
|
17
|
+
},
|
|
18
|
+
env: {},
|
|
19
|
+
platform: 'android'
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
23
|
+
const existingProcess = globalThis.process;
|
|
24
|
+
|
|
25
|
+
if (!existingProcess) {
|
|
26
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
|
+
globalThis.process = browserProcess;
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (existingProcess.versions?.node) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const existingProcessRecord = existingProcess;
|
|
36
|
+
|
|
37
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
|
+
existingProcessRecord[key] ??= value;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
existingProcessRecord['browser'] = true;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function keepName($unknown) {
|
|
45
|
+
return $unknown;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
(function initCjs() {
|
|
49
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
|
+
const globalThisRecord = globalThis;
|
|
51
|
+
ensureDisposeSymbols();
|
|
52
|
+
globalThisRecord['__name'] ??= keepName;
|
|
53
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
54
|
+
|
|
55
|
+
ensureBrowserProcess();
|
|
56
|
+
|
|
57
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
|
+
function extractDefault(module) {
|
|
59
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
60
|
+
}
|
|
61
|
+
})();
|
|
62
|
+
})();
|
|
63
|
+
|
|
64
|
+
"use strict";
|
|
65
|
+
var __defProp = Object.defineProperty;
|
|
66
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
67
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
68
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
69
|
+
var __export = (target, all) => {
|
|
70
|
+
for (var name in all)
|
|
71
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
72
|
+
};
|
|
73
|
+
var __copyProps = (to, from, except, desc) => {
|
|
74
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
75
|
+
for (let key of __getOwnPropNames(from))
|
|
76
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
77
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
78
|
+
}
|
|
79
|
+
return to;
|
|
80
|
+
};
|
|
81
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
82
|
+
var function_exports = {};
|
|
83
|
+
__export(function_exports, {
|
|
84
|
+
cloneFunction: () => cloneFunction,
|
|
85
|
+
createFunction: () => createFunction,
|
|
86
|
+
getFunctionExpressionString: () => getFunctionExpressionString,
|
|
87
|
+
noop: () => noop,
|
|
88
|
+
noopAsync: () => noopAsync,
|
|
89
|
+
noopAsyncSingletonPromise: () => noopAsyncSingletonPromise,
|
|
90
|
+
omitAsyncReturnType: () => omitAsyncReturnType,
|
|
91
|
+
omitReturnType: () => omitReturnType
|
|
92
|
+
});
|
|
93
|
+
module.exports = __toCommonJS(function_exports);
|
|
94
|
+
function getFunctionExpressionString($function) {
|
|
95
|
+
const functionString = $function.toString();
|
|
96
|
+
if (FUNCTION_EXPRESSION_RE.test(functionString)) {
|
|
97
|
+
return functionString;
|
|
98
|
+
}
|
|
99
|
+
const asyncMatch = ASYNC_KEYWORD_RE.exec(functionString);
|
|
100
|
+
return asyncMatch ? `async function ${functionString.slice(asyncMatch[0].length)}` : `function ${functionString}`;
|
|
101
|
+
}
|
|
102
|
+
function noop() {
|
|
103
|
+
}
|
|
104
|
+
const noopAsyncSingletonPromise = Promise.resolve();
|
|
105
|
+
function noopAsync() {
|
|
106
|
+
return noopAsyncSingletonPromise;
|
|
107
|
+
}
|
|
108
|
+
function omitAsyncReturnType($function) {
|
|
109
|
+
return async (...$arguments) => {
|
|
110
|
+
await $function(...$arguments);
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const FUNCTION_EXPRESSION_RE = /^(?:function\b|async\b\s*(?:function\b|\()|\()/;
|
|
114
|
+
const ASYNC_KEYWORD_RE = /^async\b\s*/;
|
|
115
|
+
function cloneFunction($function) {
|
|
116
|
+
return clonedFunction;
|
|
117
|
+
function clonedFunction(...$arguments) {
|
|
118
|
+
return $function.apply(this, $arguments);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function createFunction(params) {
|
|
122
|
+
const argumentNames = params.argumentNames ?? [];
|
|
123
|
+
return new Function(...argumentNames, params.functionBody);
|
|
124
|
+
}
|
|
125
|
+
function omitReturnType($function) {
|
|
126
|
+
return (...$arguments) => {
|
|
127
|
+
$function(...$arguments);
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
131
|
+
0 && (module.exports = {
|
|
132
|
+
cloneFunction,
|
|
133
|
+
createFunction,
|
|
134
|
+
getFunctionExpressionString,
|
|
135
|
+
noop,
|
|
136
|
+
noopAsync,
|
|
137
|
+
noopAsyncSingletonPromise,
|
|
138
|
+
omitAsyncReturnType,
|
|
139
|
+
omitReturnType
|
|
140
|
+
});
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Z1bmN0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgYW5kIHR5cGVzIGZvciB3b3JraW5nIHdpdGggZnVuY3Rpb25zLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdlbmVyaWMgYXN5bmMgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBBcmd1bWVudHMgLSBUaGUgYXJndW1lbnRzIG9mIHRoZSBmdW5jdGlvbi5cbiAqIEB0eXBlUGFyYW0gUmV0dXJuIC0gVGhlIGF3YWl0ZWQgcmV0dXJuIHR5cGUgb2YgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBHZW5lcmljQXN5bmNGdW5jdGlvbjxBcmd1bWVudHMgZXh0ZW5kcyB1bmtub3duW10gPSBuZXZlcltdLCBSZXR1cm4gPSB1bmtub3duPiA9IEdlbmVyaWNGdW5jdGlvbjxBcmd1bWVudHMsIFByb21pc2U8UmV0dXJuPj47XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdlbmVyaWMgYXN5bmMgdm9pZCBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIEFyZ3VtZW50cyAtIFRoZSBhcmd1bWVudHMgb2YgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBHZW5lcmljQXN5bmNWb2lkRnVuY3Rpb248QXJndW1lbnRzIGV4dGVuZHMgdW5rbm93bltdID0gbmV2ZXJbXT4gPSBHZW5lcmljQXN5bmNGdW5jdGlvbjxBcmd1bWVudHMsIHZvaWQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBnZW5lcmljIGZ1bmN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJndW1lbnRzIC0gVGhlIGFyZ3VtZW50cyBvZiB0aGUgZnVuY3Rpb24uXG4gKiBAdHlwZVBhcmFtIFJldHVybiAtIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNGdW5jdGlvbjxBcmd1bWVudHMgZXh0ZW5kcyB1bmtub3duW10gPSBuZXZlcltdLCBSZXR1cm4gPSB1bmtub3duPiA9ICguLi4kYXJndW1lbnRzOiBBcmd1bWVudHMpID0+IFJldHVybjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZ2VuZXJpYyBwcm9taXNhYmxlIGZ1bmN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJndW1lbnRzIC0gVGhlIGFyZ3VtZW50cyBvZiB0aGUgZnVuY3Rpb24uXG4gKiBAdHlwZVBhcmFtIFJldHVybiAtIFRoZSBhd2FpdGVkIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgR2VuZXJpY1Byb21pc2FibGVGdW5jdGlvbjxBcmd1bWVudHMgZXh0ZW5kcyB1bmtub3duW10gPSBuZXZlcltdLCBSZXR1cm4gPSB1bmtub3duPiA9IEdlbmVyaWNGdW5jdGlvbjxBcmd1bWVudHMsIFByb21pc2FibGU8UmV0dXJuPj47XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdlbmVyaWMgcHJvbWlzYWJsZSB2b2lkIGZ1bmN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJndW1lbnRzIC0gVGhlIGFyZ3VtZW50cyBvZiB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNQcm9taXNhYmxlVm9pZEZ1bmN0aW9uPEFyZ3VtZW50cyBleHRlbmRzIHVua25vd25bXSA9IG5ldmVyW10+ID0gR2VuZXJpY1Byb21pc2FibGVGdW5jdGlvbjxBcmd1bWVudHMsIHZvaWQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBnZW5lcmljIHZvaWQgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBBcmd1bWVudHMgLSBUaGUgYXJndW1lbnRzIG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgR2VuZXJpY1ZvaWRGdW5jdGlvbjxBcmd1bWVudHMgZXh0ZW5kcyB1bmtub3duW10gPSBuZXZlcltdPiA9IEdlbmVyaWNGdW5jdGlvbjxBcmd1bWVudHMsIHZvaWQ+O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgZnVuY3Rpb24gaW50byBhIHN0cmluZyB0aGF0IGlzIGEgdmFsaWQgZnVuY3Rpb24gZXhwcmVzc2lvbi5cbiAqXG4gKiBgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nKClgIG9uIGEgc2hvcnRoYW5kIG1ldGhvZCBsaWtlIGB7IGZuKCkge30gfWBcbiAqIHJldHVybnMgYFwiZm4oKSB7fVwiYCwgd2hpY2ggaXMgbm90IGEgdmFsaWQgZXhwcmVzc2lvbi5cbiAqIFRoaXMgaGVscGVyIGRldGVjdHMgdGhhdCBmb3JtIGFuZCBwcmVmaXhlcyBpdCB3aXRoIGBmdW5jdGlvbiBgLlxuICpcbiAqIEBwYXJhbSAkZnVuY3Rpb24gLSBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIHRoYXQgaXMgYSB2YWxpZCBmdW5jdGlvbiBleHByZXNzaW9uLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1mdW5jdGlvbi10eXBlIC0tIFdlIG5lZWQgdG8gdXNlIGBGdW5jdGlvbmAgdHlwZS5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGdW5jdGlvbkV4cHJlc3Npb25TdHJpbmcoJGZ1bmN0aW9uOiBGdW5jdGlvbik6IHN0cmluZyB7XG4gIGNvbnN0IGZ1bmN0aW9uU3RyaW5nID0gJGZ1bmN0aW9uLnRvU3RyaW5nKCk7XG5cbiAgaWYgKEZVTkNUSU9OX0VYUFJFU1NJT05fUkUudGVzdChmdW5jdGlvblN0cmluZykpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25TdHJpbmc7XG4gIH1cblxuICBjb25zdCBhc3luY01hdGNoID0gQVNZTkNfS0VZV09SRF9SRS5leGVjKGZ1bmN0aW9uU3RyaW5nKTtcbiAgcmV0dXJuIGFzeW5jTWF0Y2ggPyBgYXN5bmMgZnVuY3Rpb24gJHtmdW5jdGlvblN0cmluZy5zbGljZShhc3luY01hdGNoWzBdLmxlbmd0aCl9YCA6IGBmdW5jdGlvbiAke2Z1bmN0aW9uU3RyaW5nfWA7XG59XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90aGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKTogdm9pZCB7XG4gIC8vIERvZXMgbm90aGluZy5cbn1cblxuLyoqXG4gKiBBIHNpbmdsZXRvbiBuby1vcCBwcm9taXNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3ByZWZlci1ub29wLWFzeW5jIC0tIEF2b2lkIGNpcmN1bGFyIHJlZmVyZW5jZS5cbmV4cG9ydCBjb25zdCBub29wQXN5bmNTaW5nbGV0b25Qcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90aGluZy5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vb3BBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5vb3BBc3luY1NpbmdsZXRvblByb21pc2U7XG59XG5cbi8qKlxuICogTWFrZXMgYW4gYXN5bmMgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUgb3JpZ2luYWwgYXN5bmMgZnVuY3Rpb24gd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzIGFuZCBvbWl0cyB0aGUgcmV0dXJuIHZhbHVlLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJndW1lbnRzIC0gQXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uXG4gKiBAcGFyYW0gJGZ1bmN0aW9uIC0gRnVuY3Rpb24gdG8gYmUgY2FsbGVkLlxuICogQHJldHVybnMgQW4gYXN5bmMgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUgb3JpZ2luYWwgZnVuY3Rpb24gd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzIGFuZCBvbWl0cyB0aGUgcmV0dXJuIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb21pdEFzeW5jUmV0dXJuVHlwZTxBcmd1bWVudHMgZXh0ZW5kcyB1bmtub3duW10+KCRmdW5jdGlvbjogR2VuZXJpY0FzeW5jRnVuY3Rpb248QXJndW1lbnRzPik6IEdlbmVyaWNBc3luY1ZvaWRGdW5jdGlvbjxBcmd1bWVudHM+IHtcbiAgcmV0dXJuIGFzeW5jICguLi4kYXJndW1lbnRzOiBBcmd1bWVudHMpID0+IHtcbiAgICBhd2FpdCAkZnVuY3Rpb24oLi4uJGFyZ3VtZW50cyk7XG4gIH07XG59XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgYXJlIGFscmVhZHkgdmFsaWQgZnVuY3Rpb24gZXhwcmVzc2lvbnM6XG4gKiAtIGBmdW5jdGlvbiAuLi5gIChrZXl3b3JkLCBub3QgaWRlbnRpZmllciBsaWtlIGBmdW5jdGlvbjFgKVxuICogLSBgKGAgKGFycm93IGZ1bmN0aW9uKVxuICogLSBgYXN5bmNcXGJgIGZvbGxvd2VkIGJ5IGBmdW5jdGlvblxcYmAgb3IgYChgIChhc3luYyBmdW5jdGlvbi9hcnJvdylcbiAqL1xuY29uc3QgRlVOQ1RJT05fRVhQUkVTU0lPTl9SRSA9IC9eKD86ZnVuY3Rpb25cXGJ8YXN5bmNcXGJcXHMqKD86ZnVuY3Rpb25cXGJ8XFwoKXxcXCgpLztcblxuLyoqXG4gKiBNYXRjaGVzIHRoZSBgYXN5bmNgIGtleXdvcmQgKHdvcmQgYm91bmRhcnksIG5vdCBgYXN5bmMxYCkgZm9sbG93ZWQgYnkgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAqIFVzZWQgdG8gc3RyaXAgdGhlIGBhc3luY2AgcHJlZml4IGZyb20gYXN5bmMgc2hvcnRoYW5kIG1ldGhvZHMgYmVmb3JlIHJlLWFkZGluZyBgYXN5bmMgZnVuY3Rpb25gLlxuICovXG5jb25zdCBBU1lOQ19LRVlXT1JEX1JFID0gL15hc3luY1xcYlxccyovO1xuXG50eXBlIEFyZ3VtZW50TmFtZXNPZjxUIGV4dGVuZHMgR2VuZXJpY0Z1bmN0aW9uPiA9IE1hcFRvQXJndW1lbnROYW1lczxQYXJhbWV0ZXJzPFQ+PjtcblxuaW50ZXJmYWNlIENyZWF0ZUZ1bmN0aW9uQXJndW1lbnRsZXNzUGFyYW1zIHtcbiAgcmVhZG9ubHkgZnVuY3Rpb25Cb2R5OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDcmVhdGVGdW5jdGlvblBhcmFtczxURnVuY3Rpb24gZXh0ZW5kcyBHZW5lcmljRnVuY3Rpb24+IGV4dGVuZHMgQ3JlYXRlRnVuY3Rpb25Bcmd1bWVudGxlc3NQYXJhbXMge1xuICByZWFkb25seSBhcmd1bWVudE5hbWVzOiBBcmd1bWVudE5hbWVzT2Y8VEZ1bmN0aW9uPjtcbn1cblxudHlwZSBNYXBUb0FyZ3VtZW50TmFtZXM8VEFyZ3VtZW50cyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSB7XG4gIHJlYWRvbmx5IFtLIGluIGtleW9mIFRBcmd1bWVudHNdOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIENsb25lIGEgZnVuY3Rpb24gYnkgY3JlYXRpbmcgYSBuZXcgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUgb3JpZ2luYWwgZnVuY3Rpb24uXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgZm9yIGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlIG9mIGEgZnVuY3Rpb24gdGhhdCBoYXMgdGhlIHNhbWUgYmVoYXZpb3IgYnV0IGlzIG5vdCBzdHJpY3RseSBlcXVhbCB0byB0aGUgb3JpZ2luYWwgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBURnVuY3Rpb24gLSBUaGUgdHlwZSBvZiB0aGUgZnVuY3Rpb24gdG8gY2xvbmUuXG4gKiBAcGFyYW0gJGZ1bmN0aW9uIC0gVGhlIGZ1bmN0aW9uIHRvIGNsb25lLlxuICogQHJldHVybnMgQSBuZXcgZnVuY3Rpb24gdGhhdCBoYXMgdGhlIHNhbWUgYmVoYXZpb3IgYXMgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVGdW5jdGlvbjxURnVuY3Rpb24gZXh0ZW5kcyBHZW5lcmljRnVuY3Rpb24+KCRmdW5jdGlvbjogVEZ1bmN0aW9uKTogVEZ1bmN0aW9uIHtcbiAgcmV0dXJuIGNsb25lZEZ1bmN0aW9uIGFzIFRGdW5jdGlvbjtcblxuICBmdW5jdGlvbiBjbG9uZWRGdW5jdGlvbih0aGlzOiBUaGlzUGFyYW1ldGVyVHlwZTxURnVuY3Rpb24+LCAuLi4kYXJndW1lbnRzOiBQYXJhbWV0ZXJzPFRGdW5jdGlvbj4pOiBSZXR1cm5UeXBlPFRGdW5jdGlvbj4ge1xuICAgIHJldHVybiAkZnVuY3Rpb24uYXBwbHkodGhpcywgJGFyZ3VtZW50cykgYXMgUmV0dXJuVHlwZTxURnVuY3Rpb24+O1xuICB9XG59XG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmcm9tIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXJzLlxuICpcbiAqIEZ1bmN0aW9uIGlzIGFyZ3VtZW50bGVzcywgc28gYGFyZ05hbWVzYCBpcyBub3QgbmVlZGVkLlxuICpcbiAqIEB0eXBlUGFyYW0gVEZ1bmN0aW9uIC0gVGhlIHR5cGUgb2YgdGhlIGZ1bmN0aW9uIHRvIGNyZWF0ZS5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byBjcmVhdGUgdGhlIGZ1bmN0aW9uIHdpdGguXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIGNyZWF0ZWQgZnJvbSB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMgLS0gV2UgbmVlZCByZXR1cm4gdHlwZS5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGdW5jdGlvbjxURnVuY3Rpb24gZXh0ZW5kcyAoKSA9PiB1bmtub3duPihwYXJhbXM6IENyZWF0ZUZ1bmN0aW9uQXJndW1lbnRsZXNzUGFyYW1zKTogVEZ1bmN0aW9uO1xuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gZnJvbSB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycy5cbiAqXG4gKiBGdW5jdGlvbiBoYXMgYXJndW1lbnRzLCBzbyBgYXJnTmFtZXNgIGlzIHJlcXVpcmVkLlxuICpcbiAqIEB0eXBlUGFyYW0gVEZ1bmN0aW9uIC0gVGhlIHR5cGUgb2YgdGhlIGZ1bmN0aW9uIHRvIGNyZWF0ZS5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byBjcmVhdGUgdGhlIGZ1bmN0aW9uIHdpdGguXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIGNyZWF0ZWQgZnJvbSB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZ1bmN0aW9uPFRGdW5jdGlvbiBleHRlbmRzIEdlbmVyaWNGdW5jdGlvbj4ocGFyYW1zOiBDcmVhdGVGdW5jdGlvblBhcmFtczxURnVuY3Rpb24+KTogVEZ1bmN0aW9uO1xuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gZnJvbSB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycy5cbiAqXG4gKiBAdHlwZVBhcmFtIFRGdW5jdGlvbiAtIFRoZSB0eXBlIG9mIHRoZSBmdW5jdGlvbiB0byBjcmVhdGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIHRvIGNyZWF0ZSB0aGUgZnVuY3Rpb24gd2l0aC5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gY3JlYXRlZCBmcm9tIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnVuY3Rpb248VEZ1bmN0aW9uIGV4dGVuZHMgR2VuZXJpY0Z1bmN0aW9uPihcbiAgcGFyYW1zOiBDcmVhdGVGdW5jdGlvbkFyZ3VtZW50bGVzc1BhcmFtcyAmIFBhcnRpYWw8Q3JlYXRlRnVuY3Rpb25QYXJhbXM8VEZ1bmN0aW9uPj5cbik6IFRGdW5jdGlvbiB7XG4gIGNvbnN0IGFyZ3VtZW50TmFtZXMgPSBwYXJhbXMuYXJndW1lbnROYW1lcyA/PyBbXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wbGllZC1ldmFsIC0tIE5lZWQgZnVuY3Rpb24gY29uc3RydWN0b3JcbiAgcmV0dXJuIG5ldyBGdW5jdGlvbiguLi5hcmd1bWVudE5hbWVzLCBwYXJhbXMuZnVuY3Rpb25Cb2R5KSBhcyBURnVuY3Rpb247XG59XG5cbi8qKlxuICogTWFrZXMgYSBmdW5jdGlvbiB0aGF0IGNhbGxzIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiB3aXRoIHRoZSBwcm92aWRlZCBhcmd1bWVudHMgYW5kIG9taXRzIHRoZSByZXR1cm4gdmFsdWUuXG4gKlxuICogQHR5cGVQYXJhbSBBcmd1bWVudHMgLSBBcmd1bWVudHMgdG8gYmUgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbi5cbiAqIEBwYXJhbSAkZnVuY3Rpb24gLSBGdW5jdGlvbiB0byBiZSBjYWxsZWQuXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIHdpdGggdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBhbmQgb21pdHMgdGhlIHJldHVybiB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9taXRSZXR1cm5UeXBlPEFyZ3VtZW50cyBleHRlbmRzIHVua25vd25bXT4oJGZ1bmN0aW9uOiBHZW5lcmljRnVuY3Rpb248QXJndW1lbnRzPik6IEdlbmVyaWNWb2lkRnVuY3Rpb248QXJndW1lbnRzPiB7XG4gIHJldHVybiAoLi4uJGFyZ3VtZW50czogQXJndW1lbnRzKSA9PiB7XG4gICAgJGZ1bmN0aW9uKC4uLiRhcmd1bWVudHMpO1xuICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0VPLFNBQVMsNEJBQTRCLFdBQTZCO0FBQ3ZFLFFBQU0saUJBQWlCLFVBQVUsU0FBUztBQUUxQyxNQUFJLHVCQUF1QixLQUFLLGNBQWMsR0FBRztBQUMvQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sYUFBYSxpQkFBaUIsS0FBSyxjQUFjO0FBQ3ZELFNBQU8sYUFBYSxrQkFBa0IsZUFBZSxNQUFNLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLFlBQVksY0FBYztBQUNqSDtBQUtPLFNBQVMsT0FBYTtBQUU3QjtBQU1PLE1BQU0sNEJBQTRCLFFBQVEsUUFBUTtBQU9sRCxTQUFTLFlBQTJCO0FBQ3pDLFNBQU87QUFDVDtBQVNPLFNBQVMsb0JBQWlELFdBQWlGO0FBQ2hKLFNBQU8sVUFBVSxlQUEwQjtBQUN6QyxVQUFNLFVBQVUsR0FBRyxVQUFVO0FBQUEsRUFDL0I7QUFDRjtBQVFBLE1BQU0seUJBQXlCO0FBTS9CLE1BQU0sbUJBQW1CO0FBeUJsQixTQUFTLGNBQWlELFdBQWlDO0FBQ2hHLFNBQU87QUFFUCxXQUFTLGtCQUFzRCxZQUEwRDtBQUN2SCxXQUFPLFVBQVUsTUFBTSxNQUFNLFVBQVU7QUFBQSxFQUN6QztBQUNGO0FBOEJPLFNBQVMsZUFDZCxRQUNXO0FBQ1gsUUFBTSxnQkFBZ0IsT0FBTyxpQkFBaUIsQ0FBQztBQUUvQyxTQUFPLElBQUksU0FBUyxHQUFHLGVBQWUsT0FBTyxZQUFZO0FBQzNEO0FBU08sU0FBUyxlQUE0QyxXQUF1RTtBQUNqSSxTQUFPLElBQUksZUFBMEI7QUFDbkMsY0FBVSxHQUFHLFVBQVU7QUFBQSxFQUN6QjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/// <reference path="./library.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Contains utility functions and types for working with functions.
|
|
6
|
+
*/
|
|
7
|
+
import type { Promisable } from 'type-fest' with { 'resolution-mode': 'import' };
|
|
8
|
+
/**
|
|
9
|
+
* Represents a generic async function.
|
|
10
|
+
*
|
|
11
|
+
* @typeParam Arguments - The arguments of the function.
|
|
12
|
+
* @typeParam Return - The awaited return type of the function.
|
|
13
|
+
*/
|
|
14
|
+
export type GenericAsyncFunction<Arguments extends unknown[] = never[], Return = unknown> = GenericFunction<Arguments, Promise<Return>>;
|
|
15
|
+
/**
|
|
16
|
+
* Represents a generic async void function.
|
|
17
|
+
*
|
|
18
|
+
* @typeParam Arguments - The arguments of the function.
|
|
19
|
+
*/
|
|
20
|
+
export type GenericAsyncVoidFunction<Arguments extends unknown[] = never[]> = GenericAsyncFunction<Arguments, void>;
|
|
21
|
+
/**
|
|
22
|
+
* Represents a generic function.
|
|
23
|
+
*
|
|
24
|
+
* @typeParam Arguments - The arguments of the function.
|
|
25
|
+
* @typeParam Return - The return type of the function.
|
|
26
|
+
*/
|
|
27
|
+
export type GenericFunction<Arguments extends unknown[] = never[], Return = unknown> = (...$arguments: Arguments) => Return;
|
|
28
|
+
/**
|
|
29
|
+
* Represents a generic promisable function.
|
|
30
|
+
*
|
|
31
|
+
* @typeParam Arguments - The arguments of the function.
|
|
32
|
+
* @typeParam Return - The awaited return type of the function.
|
|
33
|
+
*/
|
|
34
|
+
export type GenericPromisableFunction<Arguments extends unknown[] = never[], Return = unknown> = GenericFunction<Arguments, Promisable<Return>>;
|
|
35
|
+
/**
|
|
36
|
+
* Represents a generic promisable void function.
|
|
37
|
+
*
|
|
38
|
+
* @typeParam Arguments - The arguments of the function.
|
|
39
|
+
*/
|
|
40
|
+
export type GenericPromisableVoidFunction<Arguments extends unknown[] = never[]> = GenericPromisableFunction<Arguments, void>;
|
|
41
|
+
/**
|
|
42
|
+
* Represents a generic void function.
|
|
43
|
+
*
|
|
44
|
+
* @typeParam Arguments - The arguments of the function.
|
|
45
|
+
*/
|
|
46
|
+
export type GenericVoidFunction<Arguments extends unknown[] = never[]> = GenericFunction<Arguments, void>;
|
|
47
|
+
/**
|
|
48
|
+
* Converts a function into a string that is a valid function expression.
|
|
49
|
+
*
|
|
50
|
+
* `Function.prototype.toString()` on a shorthand method like `{ fn() {} }`
|
|
51
|
+
* returns `"fn() {}"`, which is not a valid expression.
|
|
52
|
+
* This helper detects that form and prefixes it with `function `.
|
|
53
|
+
*
|
|
54
|
+
* @param $function - The function to convert.
|
|
55
|
+
* @returns A string that is a valid function expression.
|
|
56
|
+
*/
|
|
57
|
+
export declare function getFunctionExpressionString($function: Function): string;
|
|
58
|
+
/**
|
|
59
|
+
* A function that does nothing.
|
|
60
|
+
*/
|
|
61
|
+
export declare function noop(): void;
|
|
62
|
+
/**
|
|
63
|
+
* A singleton no-op promise.
|
|
64
|
+
*/
|
|
65
|
+
export declare const noopAsyncSingletonPromise: Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* A function that does nothing.
|
|
68
|
+
*
|
|
69
|
+
* @returns A promise that resolves when the function is complete.
|
|
70
|
+
*/
|
|
71
|
+
export declare function noopAsync(): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Makes an async function that calls the original async function with the provided arguments and omits the return value.
|
|
74
|
+
*
|
|
75
|
+
* @typeParam Arguments - Arguments to be passed to the function.
|
|
76
|
+
* @param $function - Function to be called.
|
|
77
|
+
* @returns An async function that calls the original function with the provided arguments and omits the return value.
|
|
78
|
+
*/
|
|
79
|
+
export declare function omitAsyncReturnType<Arguments extends unknown[]>($function: GenericAsyncFunction<Arguments>): GenericAsyncVoidFunction<Arguments>;
|
|
80
|
+
type ArgumentNamesOf<T extends GenericFunction> = MapToArgumentNames<Parameters<T>>;
|
|
81
|
+
interface CreateFunctionArgumentlessParams {
|
|
82
|
+
readonly functionBody: string;
|
|
83
|
+
}
|
|
84
|
+
interface CreateFunctionParams<TFunction extends GenericFunction> extends CreateFunctionArgumentlessParams {
|
|
85
|
+
readonly argumentNames: ArgumentNamesOf<TFunction>;
|
|
86
|
+
}
|
|
87
|
+
type MapToArgumentNames<TArguments extends readonly unknown[]> = {
|
|
88
|
+
readonly [K in keyof TArguments]: string;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Clone a function by creating a new function that calls the original function.
|
|
92
|
+
*
|
|
93
|
+
* This is useful for creating a new instance of a function that has the same behavior but is not strictly equal to the original function.
|
|
94
|
+
*
|
|
95
|
+
* @typeParam TFunction - The type of the function to clone.
|
|
96
|
+
* @param $function - The function to clone.
|
|
97
|
+
* @returns A new function that has the same behavior as the original function.
|
|
98
|
+
*/
|
|
99
|
+
export declare function cloneFunction<TFunction extends GenericFunction>($function: TFunction): TFunction;
|
|
100
|
+
/**
|
|
101
|
+
* Creates a function from the provided parameters.
|
|
102
|
+
*
|
|
103
|
+
* Function is argumentless, so `argNames` is not needed.
|
|
104
|
+
*
|
|
105
|
+
* @typeParam TFunction - The type of the function to create.
|
|
106
|
+
* @param params - The parameters to create the function with.
|
|
107
|
+
* @returns A function created from the provided parameters.
|
|
108
|
+
*/
|
|
109
|
+
export declare function createFunction<TFunction extends () => unknown>(params: CreateFunctionArgumentlessParams): TFunction;
|
|
110
|
+
/**
|
|
111
|
+
* Creates a function from the provided parameters.
|
|
112
|
+
*
|
|
113
|
+
* Function has arguments, so `argNames` is required.
|
|
114
|
+
*
|
|
115
|
+
* @typeParam TFunction - The type of the function to create.
|
|
116
|
+
* @param params - The parameters to create the function with.
|
|
117
|
+
* @returns A function created from the provided parameters.
|
|
118
|
+
*/
|
|
119
|
+
export declare function createFunction<TFunction extends GenericFunction>(params: CreateFunctionParams<TFunction>): TFunction;
|
|
120
|
+
/**
|
|
121
|
+
* Makes a function that calls the original function with the provided arguments and omits the return value.
|
|
122
|
+
*
|
|
123
|
+
* @typeParam Arguments - Arguments to be passed to the function.
|
|
124
|
+
* @param $function - Function to be called.
|
|
125
|
+
* @returns A function that calls the original function with the provided arguments and omits the return value.
|
|
126
|
+
*/
|
|
127
|
+
export declare function omitReturnType<Arguments extends unknown[]>($function: GenericFunction<Arguments>): GenericVoidFunction<Arguments>;
|
|
128
|
+
export {};
|