@zajno/common 2.6.6 → 2.6.7
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/cjs/api/builder.js +13 -8
- package/cjs/api/builder.js.map +1 -1
- package/cjs/api/endpoint.js +10 -0
- package/cjs/api/endpoint.js.map +1 -1
- package/cjs/api/helpers.js.map +1 -1
- package/cjs/structures/path/builder.helpers.js +180 -0
- package/cjs/structures/path/builder.helpers.js.map +1 -0
- package/cjs/structures/path/builder.js +21 -106
- package/cjs/structures/path/builder.js.map +1 -1
- package/cjs/structures/path/types.helpers.js +3 -0
- package/cjs/structures/path/types.helpers.js.map +1 -0
- package/esm/api/builder.js +12 -8
- package/esm/api/builder.js.map +1 -1
- package/esm/api/endpoint.js +10 -0
- package/esm/api/endpoint.js.map +1 -1
- package/esm/api/helpers.js.map +1 -1
- package/esm/structures/path/builder.helpers.js +172 -0
- package/esm/structures/path/builder.helpers.js.map +1 -0
- package/esm/structures/path/builder.js +20 -104
- package/esm/structures/path/builder.js.map +1 -1
- package/esm/structures/path/types.helpers.js +2 -0
- package/esm/structures/path/types.helpers.js.map +1 -0
- package/package.json +1 -1
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/tsconfig.types.tsbuildinfo +1 -1
- package/types/api/builder.d.ts +5 -0
- package/types/api/endpoint.d.ts +2 -0
- package/types/api/endpoint.types.d.ts +4 -1
- package/types/api/extensions/contentType.d.ts +1 -1
- package/types/api/helpers.d.ts +3 -1
- package/types/structures/path/builder.d.ts +5 -4
- package/types/structures/path/builder.helpers.d.ts +8 -0
- package/types/structures/path/types.d.ts +32 -27
- package/types/structures/path/types.helpers.d.ts +23 -0
- package/types/types/misc.d.ts +4 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { CombineOptions, combineUrls } from './utils.js';
|
|
2
|
+
export const staticFactory = (strings) => {
|
|
3
|
+
const parts = strings.slice();
|
|
4
|
+
let defaultOptions = undefined;
|
|
5
|
+
return {
|
|
6
|
+
build: (_, options) => combineUrls(CombineOptions.merge(defaultOptions, options), ...parts),
|
|
7
|
+
template: (_, options) => combineUrls(CombineOptions.merge(defaultOptions, options), ...parts),
|
|
8
|
+
args: [],
|
|
9
|
+
as() { return this; },
|
|
10
|
+
withDefaults(defaults) {
|
|
11
|
+
defaultOptions = defaults;
|
|
12
|
+
return this;
|
|
13
|
+
},
|
|
14
|
+
withBuildTransform() { return this; },
|
|
15
|
+
withTemplateTransform() { return this; },
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export function constructStatic(input) {
|
|
19
|
+
let staticPath = undefined;
|
|
20
|
+
/* istanbul ignore else -- @preserve */
|
|
21
|
+
if (Array.isArray(input)) {
|
|
22
|
+
staticPath = combineUrls(...input);
|
|
23
|
+
}
|
|
24
|
+
else if (typeof input === 'string') {
|
|
25
|
+
staticPath = input;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
throw new Error('Path.construct: Invalid input, expected string | string[]');
|
|
29
|
+
}
|
|
30
|
+
return staticFactory([staticPath]);
|
|
31
|
+
}
|
|
32
|
+
;
|
|
33
|
+
export function constructDynamic(strings, ...paramsRaw) {
|
|
34
|
+
if (paramsRaw.length === 0) {
|
|
35
|
+
return staticFactory(strings);
|
|
36
|
+
}
|
|
37
|
+
// Collect metadata about parameters
|
|
38
|
+
const params = paramsRaw.map((p, index) => {
|
|
39
|
+
const isOptional = p.endsWith(Tokens.Optional);
|
|
40
|
+
return {
|
|
41
|
+
raw: p,
|
|
42
|
+
// Remove optional token from the end of the parameter name
|
|
43
|
+
name: isOptional
|
|
44
|
+
? p.slice(0, -Tokens.Optional.length)
|
|
45
|
+
: p,
|
|
46
|
+
index,
|
|
47
|
+
isOptional,
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
let defaultOptions = undefined;
|
|
51
|
+
let buildTransforms = null;
|
|
52
|
+
let templateTransforms = null;
|
|
53
|
+
const build = (args, options, transforms = buildTransforms) => {
|
|
54
|
+
const parts = [];
|
|
55
|
+
const getValue = !args
|
|
56
|
+
? (() => null)
|
|
57
|
+
: Array.isArray(args)
|
|
58
|
+
? (arg) => args[arg.index]?.toString()
|
|
59
|
+
: (arg) => args[arg.name]?.toString();
|
|
60
|
+
for (let i = 0; i < strings.length; ++i) {
|
|
61
|
+
parts.push(strings[i]);
|
|
62
|
+
if (i >= params.length) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const info = params[i];
|
|
66
|
+
let v = getValue(info);
|
|
67
|
+
if (v != null) {
|
|
68
|
+
const t = transforms?.[info.name];
|
|
69
|
+
if (t) {
|
|
70
|
+
v = t(v, info);
|
|
71
|
+
}
|
|
72
|
+
parts.push(v);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return combineUrls(CombineOptions.merge(defaultOptions, options), ...parts);
|
|
76
|
+
};
|
|
77
|
+
const template = (transform, options) => {
|
|
78
|
+
const baseTransform = templateTransforms
|
|
79
|
+
? (v, info) => {
|
|
80
|
+
const t = templateTransforms[info.name];
|
|
81
|
+
return t ? t(v, info) : v;
|
|
82
|
+
}
|
|
83
|
+
: (v) => v;
|
|
84
|
+
let resTransform;
|
|
85
|
+
if (transform && typeof transform === 'function') {
|
|
86
|
+
resTransform = (v, info) => transform(baseTransform(v, info), info);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const { prefix = '', suffix = '', optionalSuffix = Tokens.Optional, } = typeof transform === 'string'
|
|
90
|
+
? { prefix: transform }
|
|
91
|
+
: transform || {};
|
|
92
|
+
resTransform = (v, info) => {
|
|
93
|
+
const value = baseTransform(v, info);
|
|
94
|
+
return `${prefix}${value}${info.isOptional ? optionalSuffix : ''}${suffix}`;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const args = params.map(param => resTransform(param.name, param));
|
|
98
|
+
return build(args, options, {});
|
|
99
|
+
};
|
|
100
|
+
let _args = undefined;
|
|
101
|
+
const result = {
|
|
102
|
+
build,
|
|
103
|
+
template,
|
|
104
|
+
get args() {
|
|
105
|
+
if (!_args) {
|
|
106
|
+
_args = params.map(p => p.name);
|
|
107
|
+
}
|
|
108
|
+
return _args;
|
|
109
|
+
},
|
|
110
|
+
as() { return this; },
|
|
111
|
+
asOptional() {
|
|
112
|
+
return constructDynamic(strings, ...params.map(p => p.isOptional ? p.raw : `${p.raw}${Tokens.Optional}`));
|
|
113
|
+
},
|
|
114
|
+
withDefaults(defaults) {
|
|
115
|
+
defaultOptions = defaults;
|
|
116
|
+
return this;
|
|
117
|
+
},
|
|
118
|
+
withBuildTransform(transforms) {
|
|
119
|
+
buildTransforms = transforms;
|
|
120
|
+
return this;
|
|
121
|
+
},
|
|
122
|
+
withTemplateTransform(transforms) {
|
|
123
|
+
templateTransforms = transforms;
|
|
124
|
+
return this;
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
const Tokens = {
|
|
130
|
+
Separator: '/',
|
|
131
|
+
Optional: '?',
|
|
132
|
+
Arg: ':',
|
|
133
|
+
};
|
|
134
|
+
export function guardIsStatic(value) {
|
|
135
|
+
return typeof value === 'string' || Array.isArray(value);
|
|
136
|
+
}
|
|
137
|
+
export function normalizeInput(inputs) {
|
|
138
|
+
if (!inputs.length) {
|
|
139
|
+
return [];
|
|
140
|
+
}
|
|
141
|
+
const normalizeString = (input) => {
|
|
142
|
+
const part = input.trim();
|
|
143
|
+
if (part.startsWith(Tokens.Arg)) {
|
|
144
|
+
const cleaned = part.slice(Tokens.Arg.length);
|
|
145
|
+
return constructDynamic `${cleaned}`;
|
|
146
|
+
}
|
|
147
|
+
return part;
|
|
148
|
+
};
|
|
149
|
+
const extractParts = (input) => {
|
|
150
|
+
if (input.includes(Tokens.Separator)) {
|
|
151
|
+
return input.split(Tokens.Separator)
|
|
152
|
+
.map(normalizeString)
|
|
153
|
+
.filter(Boolean);
|
|
154
|
+
}
|
|
155
|
+
return normalizeString(input);
|
|
156
|
+
};
|
|
157
|
+
return inputs.map(input => {
|
|
158
|
+
if (typeof input === 'string') {
|
|
159
|
+
return extractParts(input);
|
|
160
|
+
}
|
|
161
|
+
if (Array.isArray(input)) {
|
|
162
|
+
return input.map(i => {
|
|
163
|
+
if (typeof i === 'string') {
|
|
164
|
+
return extractParts(i);
|
|
165
|
+
}
|
|
166
|
+
return i;
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
return input;
|
|
170
|
+
}).flat();
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=builder.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.helpers.js","sourceRoot":"","sources":["../../../../src/structures/path/builder.helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,107 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
const staticFactory = (strings) => {
|
|
4
|
-
const parts = strings.slice();
|
|
5
|
-
let defaultOptions = undefined;
|
|
6
|
-
return {
|
|
7
|
-
build: (_, options) => combineUrls(CombineOptions.merge(defaultOptions, options), ...parts),
|
|
8
|
-
template: (_, options) => combineUrls(CombineOptions.merge(defaultOptions, options), ...parts),
|
|
9
|
-
args: [],
|
|
10
|
-
as() { return this; },
|
|
11
|
-
withDefaults(defaults) {
|
|
12
|
-
defaultOptions = defaults;
|
|
13
|
-
return this;
|
|
14
|
-
},
|
|
15
|
-
withBuildTransform() { return this; },
|
|
16
|
-
withTemplateTransform() { return this; },
|
|
17
|
-
};
|
|
18
|
-
};
|
|
1
|
+
import { constructDynamic, constructStatic, guardIsStatic, normalizeInput, } from './builder.helpers.js';
|
|
2
|
+
import { combineUrls } from './utils.js';
|
|
19
3
|
/** Tagged template literal to create a path builder */
|
|
20
4
|
export function build(strings, ...params) {
|
|
21
|
-
|
|
22
|
-
return staticFactory(strings);
|
|
23
|
-
}
|
|
24
|
-
let defaultOptions = undefined;
|
|
25
|
-
let buildTransforms = null;
|
|
26
|
-
let templateTransforms = null;
|
|
27
|
-
const build = (args, options, transforms = buildTransforms) => {
|
|
28
|
-
const parts = [];
|
|
29
|
-
const getValue = !args
|
|
30
|
-
? (() => null)
|
|
31
|
-
: Array.isArray(args)
|
|
32
|
-
? (_key, index) => args[index]?.toString()
|
|
33
|
-
: (key, _index) => args[key]?.toString();
|
|
34
|
-
for (let i = 0; i < strings.length; ++i) {
|
|
35
|
-
parts.push(strings[i]);
|
|
36
|
-
if (i < params.length) {
|
|
37
|
-
let v = getValue(params[i], i);
|
|
38
|
-
if (v != null) {
|
|
39
|
-
const t = transforms?.[params[i]];
|
|
40
|
-
if (t) {
|
|
41
|
-
v = t(v);
|
|
42
|
-
}
|
|
43
|
-
parts.push(v);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return combineUrls(CombineOptions.merge(defaultOptions, options), ...parts);
|
|
48
|
-
};
|
|
49
|
-
const template = (prefix, options) => {
|
|
50
|
-
let args;
|
|
51
|
-
const t = templateTransforms
|
|
52
|
-
? (v) => {
|
|
53
|
-
const t = templateTransforms[v];
|
|
54
|
-
return t ? t(v) : v;
|
|
55
|
-
}
|
|
56
|
-
: (v) => v;
|
|
57
|
-
if (typeof prefix === 'string') {
|
|
58
|
-
args = params.map(p => prefix + t(p));
|
|
59
|
-
}
|
|
60
|
-
else if (typeof prefix === 'function') {
|
|
61
|
-
args = params.map((p, i) => prefix(t(p), i));
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
args = params.map(t);
|
|
65
|
-
}
|
|
66
|
-
return build(args, options, {});
|
|
67
|
-
};
|
|
68
|
-
const result = {
|
|
69
|
-
build,
|
|
70
|
-
template,
|
|
71
|
-
args: params,
|
|
72
|
-
as() { return this; },
|
|
73
|
-
asOptional() { return this; },
|
|
74
|
-
withDefaults(defaults) {
|
|
75
|
-
defaultOptions = defaults;
|
|
76
|
-
return this;
|
|
77
|
-
},
|
|
78
|
-
withBuildTransform(transforms) {
|
|
79
|
-
buildTransforms = transforms;
|
|
80
|
-
return this;
|
|
81
|
-
},
|
|
82
|
-
withTemplateTransform(transforms) {
|
|
83
|
-
templateTransforms = transforms;
|
|
84
|
-
return this;
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
|
-
const constructStatic = (input) => {
|
|
90
|
-
let staticPath = undefined;
|
|
91
|
-
/* istanbul ignore else -- @preserve */
|
|
92
|
-
if (Array.isArray(input)) {
|
|
93
|
-
staticPath = combineUrls(...input);
|
|
94
|
-
}
|
|
95
|
-
else if (typeof input === 'string') {
|
|
96
|
-
staticPath = input;
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
throw new Error('Path.construct: Invalid input, expected string | string[]');
|
|
100
|
-
}
|
|
101
|
-
return staticFactory([staticPath]);
|
|
102
|
-
};
|
|
103
|
-
function guardIsStatic(value) {
|
|
104
|
-
return typeof value === 'string' || Array.isArray(value);
|
|
5
|
+
return constructDynamic(strings, ...params);
|
|
105
6
|
}
|
|
106
7
|
export const Empty = build ``;
|
|
107
8
|
/**
|
|
@@ -113,7 +14,8 @@ export const Empty = build ``;
|
|
|
113
14
|
* - manually implementing `Builder<string[]>`
|
|
114
15
|
* - another `construct` call
|
|
115
16
|
*/
|
|
116
|
-
export function construct(...
|
|
17
|
+
export function construct(...inputsRaw) {
|
|
18
|
+
const inputs = normalizeInput(inputsRaw);
|
|
117
19
|
if (!inputs.length) {
|
|
118
20
|
return Empty;
|
|
119
21
|
}
|
|
@@ -138,7 +40,21 @@ export function construct(...inputs) {
|
|
|
138
40
|
const result = {
|
|
139
41
|
build: (args, options) => {
|
|
140
42
|
const innerOptions = skipOuterOptions(options);
|
|
141
|
-
|
|
43
|
+
let outputResults;
|
|
44
|
+
if (Array.isArray(args)) {
|
|
45
|
+
// if args is array, we need to split it into parts so each `output` will get its own args
|
|
46
|
+
let usedArgsCount = 0;
|
|
47
|
+
outputResults = outputs.map(o => {
|
|
48
|
+
const currentArgs = args.slice(usedArgsCount, usedArgsCount + o.args.length);
|
|
49
|
+
usedArgsCount += o.args.length;
|
|
50
|
+
return o.build(currentArgs, innerOptions);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// in case of object we don't have to split args
|
|
55
|
+
outputResults = outputs.map(o => o.build(args, innerOptions));
|
|
56
|
+
}
|
|
57
|
+
return combineUrls(options, ...outputResults);
|
|
142
58
|
},
|
|
143
59
|
template: (prefix, options) => {
|
|
144
60
|
const innerOptions = skipOuterOptions(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../src/structures/path/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../src/structures/path/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.helpers.js","sourceRoot":"","sources":["../../../../src/structures/path/types.helpers.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
package/tsconfig.cjs.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/api/builder.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/helpers.ts","../src/api/index.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/processor.ts","../src/api/register.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/abstractions.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/file.ts","../src/logger/index.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/proxy.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.ts","../src/structures/path/utils.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
|
|
1
|
+
{"root":["../src/api/builder.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/helpers.ts","../src/api/index.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/processor.ts","../src/api/register.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/abstractions.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/file.ts","../src/logger/index.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/proxy.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.helpers.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.helpers.ts","../src/structures/path/types.ts","../src/structures/path/utils.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
|
package/tsconfig.esm.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/api/builder.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/helpers.ts","../src/api/index.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/processor.ts","../src/api/register.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/abstractions.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/file.ts","../src/logger/index.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/proxy.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.ts","../src/structures/path/utils.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
|
|
1
|
+
{"root":["../src/api/builder.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/helpers.ts","../src/api/index.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/processor.ts","../src/api/register.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/abstractions.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/file.ts","../src/logger/index.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/proxy.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.helpers.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.helpers.ts","../src/structures/path/types.ts","../src/structures/path/utils.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/api/builder.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/helpers.ts","../src/api/index.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/processor.ts","../src/api/register.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/abstractions.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/file.ts","../src/logger/index.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/proxy.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.ts","../src/structures/path/utils.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
|
|
1
|
+
{"root":["../src/api/builder.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/helpers.ts","../src/api/index.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/processor.ts","../src/api/register.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/abstractions.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/file.ts","../src/logger/index.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/proxy.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.helpers.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.helpers.ts","../src/structures/path/types.ts","../src/structures/path/utils.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
|
package/types/api/builder.d.ts
CHANGED
|
@@ -6,6 +6,11 @@ export type IEndpointCaller<T extends IEndpointInfo, TExtra extends object = Rec
|
|
|
6
6
|
export type ApiDefinition = IEndpointInfo | {
|
|
7
7
|
[key: string]: ApiDefinition;
|
|
8
8
|
};
|
|
9
|
+
export type ApiRemapped<T extends ApiDefinition, TResult> = T extends IEndpointInfo ? TResult : T extends Record<string, any> ? {
|
|
10
|
+
[K in keyof T]: ApiRemapped<T[K], TResult>;
|
|
11
|
+
} : never;
|
|
12
|
+
/** Converts each endpoint in a nested structure to something via transformer */
|
|
13
|
+
export declare function remapApisStructure<TApi extends ApiDefinition, TResult>(root: TApi, transformer: (api: IEndpointInfo) => TResult): ApiRemapped<TApi, TResult>;
|
|
9
14
|
export type ApiRunner<T, TExtra extends Record<string, any>> = T extends IEndpointInfo ? IEndpointCaller<T, TExtra> : T extends Record<string, any> ? {
|
|
10
15
|
[K in keyof T]: ApiRunner<T[K], TExtra>;
|
|
11
16
|
} : never;
|
package/types/api/endpoint.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export interface ApiEndpoint extends IEndpointInfo.Base {
|
|
|
29
29
|
withErrors<TErr>(errorProcessor?: (err: TErr) => void): this & IEndpointInfo.IErrors<TErr>;
|
|
30
30
|
/** Applies headers type. */
|
|
31
31
|
withHeaders<THeads>(_headersMarker?: THeads): this & IEndpointInfo.IHeaders<THeads>;
|
|
32
|
+
/** Helper chain method for finalizing the type. Can make some runtime optimizations as well. */
|
|
33
|
+
finalize(): IEndpointInfo.Finalized<this>;
|
|
32
34
|
}
|
|
33
35
|
export declare namespace ApiEndpoint {
|
|
34
36
|
function isEndpoint(obj: any): obj is IEndpointInfo;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Path } from '../structures/path/index.js';
|
|
2
|
-
import
|
|
2
|
+
import { RemoveFunctionFields } from '../types/functions.js';
|
|
3
|
+
import type { AnyObject, Coalesce, EmptyObjectNullable, Expand } from '../types/misc.js';
|
|
3
4
|
import type { EndpointMethods } from './methods.js';
|
|
4
5
|
/**
|
|
5
6
|
* Definition of an abstract REST API endpoint.
|
|
@@ -61,5 +62,7 @@ export declare namespace IEndpointInfo {
|
|
|
61
62
|
export type ExtractOut<T> = T extends IOut<infer TOut> ? TOut : never;
|
|
62
63
|
export type ExtractErrors<T> = T extends IErrors<infer TErrors> ? TErrors : Any;
|
|
63
64
|
export type ExtractHeaders<T> = T extends IHeaders<infer THeaders> ? THeaders : Any;
|
|
65
|
+
type MergeOmit<T, K> = Omit<T, keyof K> & K;
|
|
66
|
+
export type Finalized<T extends Base> = Expand<Readonly<RemoveFunctionFields<MergeOmit<T, IIn<ExtractIn<T, object | null>>> & MergeOmit<T, IOut<ExtractOut<T>>> & MergeOmit<T, IPath<T extends IPath<infer TPath> ? TPath : Path.IBuilder>> & MergeOmit<T, IQuery<ExtractQuery<T, object>>> & MergeOmit<T, IErrors<ExtractErrors<T>>> & MergeOmit<T, IHeaders<ExtractHeaders<T>>>>>>;
|
|
64
67
|
export {};
|
|
65
68
|
}
|
|
@@ -4,7 +4,7 @@ import type { ApiEndpoint, IEndpointInfo } from '../endpoint.js';
|
|
|
4
4
|
*
|
|
5
5
|
*/
|
|
6
6
|
export interface IEndpointInputContentType {
|
|
7
|
-
/**
|
|
7
|
+
/** Endpoint request content-type, if was specified. */
|
|
8
8
|
readonly contentType?: string;
|
|
9
9
|
/** Marks this endpoint with Content-Type header to be set as 'application/x-www-form-urlencoded'. */
|
|
10
10
|
asUrlEncoded(): this;
|
package/types/api/helpers.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export declare const DefaultSettings: {
|
|
|
4
4
|
basePrefix: string;
|
|
5
5
|
};
|
|
6
6
|
export declare function setDefaults(settings: Partial<typeof DefaultSettings>): void;
|
|
7
|
+
type PrefixOptions = string | boolean;
|
|
7
8
|
export declare function getPath<T extends IEndpointInfo.Base & IEndpointInfo.IPathAbstract>(endpoint: T, pathArgs: IEndpointInfo.ExtractPath<T>, prefix?: string | boolean): string;
|
|
8
|
-
export declare function getTemplate<T extends IEndpointInfo>(endpoint: T, prefix?:
|
|
9
|
+
export declare function getTemplate<T extends IEndpointInfo>(endpoint: T, prefix?: PrefixOptions): string;
|
|
9
10
|
export declare function getFormattedDisplayName(endpoint: IEndpointInfo): string;
|
|
11
|
+
export {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { BaseInput, CombineBuilders,
|
|
2
|
-
export * from './types.js';
|
|
1
|
+
import { BaseInput, CombineBuilders, SwitchBuilder } from './types.js';
|
|
2
|
+
export type * from './types.js';
|
|
3
|
+
export type { TemplateTransform } from './types.helpers.js';
|
|
3
4
|
/** Tagged template literal to create a path builder */
|
|
4
5
|
export declare function build<TArgs extends string[]>(strings: TemplateStringsArray, ...params: TArgs): SwitchBuilder<TArgs>;
|
|
5
|
-
export declare const Empty: StaticBuilder;
|
|
6
|
+
export declare const Empty: import("./types.js").StaticBuilder;
|
|
6
7
|
/**
|
|
7
8
|
* For input, use any amount of arguments, each one can be:
|
|
8
9
|
*
|
|
@@ -12,4 +13,4 @@ export declare const Empty: StaticBuilder;
|
|
|
12
13
|
* - manually implementing `Builder<string[]>`
|
|
13
14
|
* - another `construct` call
|
|
14
15
|
*/
|
|
15
|
-
export declare function construct<TArr extends BaseInput[]>(...
|
|
16
|
+
export declare function construct<TArr extends BaseInput[]>(...inputsRaw: TArr): CombineBuilders<TArr>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BaseInput, Builder, StaticBuilder, StaticInput } from './types.js';
|
|
2
|
+
export declare const staticFactory: (strings: readonly string[]) => StaticBuilder;
|
|
3
|
+
export declare function constructStatic(input: StaticInput): StaticBuilder & {
|
|
4
|
+
asOptional?(): never;
|
|
5
|
+
};
|
|
6
|
+
export declare function constructDynamic(strings: TemplateStringsArray, ...paramsRaw: string[]): StaticBuilder | Builder<readonly string[]>;
|
|
7
|
+
export declare function guardIsStatic(value: any): value is StaticInput;
|
|
8
|
+
export declare function normalizeInput(inputs: BaseInput[]): BaseInput[];
|