@aeriajs/common 0.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/LICENSE +19 -0
- package/README.md +13 -0
- package/dist/arraysIntersects.d.ts +1 -0
- package/dist/arraysIntersects.js +12 -0
- package/dist/arraysIntersects.mjs +8 -0
- package/dist/checkForUndefined.d.ts +2 -0
- package/dist/checkForUndefined.js +12 -0
- package/dist/checkForUndefined.mjs +6 -0
- package/dist/convertConditionToQuery.d.ts +2 -0
- package/dist/convertConditionToQuery.js +60 -0
- package/dist/convertConditionToQuery.mjs +72 -0
- package/dist/date.d.ts +7 -0
- package/dist/date.js +42 -0
- package/dist/date.mjs +101 -0
- package/dist/deepClone.d.ts +1 -0
- package/dist/deepClone.js +9 -0
- package/dist/deepClone.mjs +3 -0
- package/dist/deepMerge.d.ts +5 -0
- package/dist/deepMerge.js +39 -0
- package/dist/deepMerge.mjs +66 -0
- package/dist/dynamicImport.d.ts +1 -0
- package/dist/dynamicImport.js +16 -0
- package/dist/dynamicImport.mjs +145 -0
- package/dist/either.d.ts +9 -0
- package/dist/either.js +37 -0
- package/dist/either.mjs +32 -0
- package/dist/evaluateCondition.d.ts +5 -0
- package/dist/evaluateCondition.js +57 -0
- package/dist/evaluateCondition.mjs +63 -0
- package/dist/formatValue.d.ts +2 -0
- package/dist/formatValue.js +55 -0
- package/dist/formatValue.mjs +59 -0
- package/dist/freshItem.d.ts +2 -0
- package/dist/freshItem.js +36 -0
- package/dist/freshItem.mjs +133 -0
- package/dist/getMissingProperties.d.ts +2 -0
- package/dist/getMissingProperties.js +38 -0
- package/dist/getMissingProperties.mjs +50 -0
- package/dist/getReferenceProperty.d.ts +2 -0
- package/dist/getReferenceProperty.js +19 -0
- package/dist/getReferenceProperty.mjs +11 -0
- package/dist/getValueFromPath.d.ts +1 -0
- package/dist/getValueFromPath.js +10 -0
- package/dist/getValueFromPath.mjs +6 -0
- package/dist/http.d.ts +20 -0
- package/dist/http.js +51 -0
- package/dist/http.mjs +224 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +36 -0
- package/dist/index.mjs +20 -0
- package/dist/isReference.d.ts +2 -0
- package/dist/isReference.js +9 -0
- package/dist/isReference.mjs +3 -0
- package/dist/isRequired.d.ts +2 -0
- package/dist/isRequired.js +18 -0
- package/dist/isRequired.mjs +14 -0
- package/dist/pipe.d.ts +4 -0
- package/dist/pipe.js +28 -0
- package/dist/pipe.mjs +259 -0
- package/dist/schema.d.ts +20 -0
- package/dist/schema.js +74 -0
- package/dist/schema.mjs +72 -0
- package/dist/serialize.d.ts +3 -0
- package/dist/serialize.js +33 -0
- package/dist/serialize.mjs +38 -0
- package/package.json +37 -0
package/dist/http.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.request = exports.defaultResponseTransformer = exports.defaultRequestTransformer = void 0;
|
|
4
|
+
const defaultRequestTransformer = async (url, payload, params) => {
|
|
5
|
+
const request = {
|
|
6
|
+
url,
|
|
7
|
+
params,
|
|
8
|
+
};
|
|
9
|
+
if (payload) {
|
|
10
|
+
if (params.method === 'GET' || params.method === 'HEAD') {
|
|
11
|
+
request.url += `?${new URLSearchParams(payload)}`;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
request.params.body = params.headers?.['content-type']?.startsWith('application/json')
|
|
15
|
+
? JSON.stringify(payload)
|
|
16
|
+
: payload;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return request;
|
|
20
|
+
};
|
|
21
|
+
exports.defaultRequestTransformer = defaultRequestTransformer;
|
|
22
|
+
const defaultResponseTransformer = async (response) => {
|
|
23
|
+
const result = response;
|
|
24
|
+
result.data = await response.text();
|
|
25
|
+
if (response.headers.get('content-type')?.startsWith('application/json')) {
|
|
26
|
+
const data = result.data = JSON.parse(result.data);
|
|
27
|
+
if (data.error && data.error instanceof Object) {
|
|
28
|
+
const error = new Error(data.error.message);
|
|
29
|
+
Object.assign(error, data.error);
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
exports.defaultResponseTransformer = defaultResponseTransformer;
|
|
36
|
+
const request = async (url, payload, config) => {
|
|
37
|
+
const { requestTransformer = exports.defaultRequestTransformer, responseTransformer = exports.defaultResponseTransformer, params = {
|
|
38
|
+
method: payload
|
|
39
|
+
? 'POST'
|
|
40
|
+
: 'GET',
|
|
41
|
+
headers: payload
|
|
42
|
+
? {
|
|
43
|
+
'content-type': 'application/json',
|
|
44
|
+
}
|
|
45
|
+
: {},
|
|
46
|
+
}, } = config || {};
|
|
47
|
+
const transformedRequest = await requestTransformer(url, payload, params);
|
|
48
|
+
const response = await fetch(transformedRequest.url, transformedRequest.params);
|
|
49
|
+
return responseTransformer(response);
|
|
50
|
+
};
|
|
51
|
+
exports.request = request;
|
package/dist/http.mjs
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
+
try {
|
|
3
|
+
var info = gen[key](arg);
|
|
4
|
+
var value = info.value;
|
|
5
|
+
} catch (error) {
|
|
6
|
+
reject(error);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (info.done) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
} else {
|
|
12
|
+
Promise.resolve(value).then(_next, _throw);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function _async_to_generator(fn) {
|
|
16
|
+
return function() {
|
|
17
|
+
var self = this, args = arguments;
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var gen = fn.apply(self, args);
|
|
20
|
+
function _next(value) {
|
|
21
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
+
}
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(undefined);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function _instanceof(left, right) {
|
|
31
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
32
|
+
return !!right[Symbol.hasInstance](left);
|
|
33
|
+
} else {
|
|
34
|
+
return left instanceof right;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function _ts_generator(thisArg, body) {
|
|
38
|
+
var f, y, t, g, _ = {
|
|
39
|
+
label: 0,
|
|
40
|
+
sent: function() {
|
|
41
|
+
if (t[0] & 1) throw t[1];
|
|
42
|
+
return t[1];
|
|
43
|
+
},
|
|
44
|
+
trys: [],
|
|
45
|
+
ops: []
|
|
46
|
+
};
|
|
47
|
+
return g = {
|
|
48
|
+
next: verb(0),
|
|
49
|
+
"throw": verb(1),
|
|
50
|
+
"return": verb(2)
|
|
51
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
52
|
+
return this;
|
|
53
|
+
}), g;
|
|
54
|
+
function verb(n) {
|
|
55
|
+
return function(v) {
|
|
56
|
+
return step([
|
|
57
|
+
n,
|
|
58
|
+
v
|
|
59
|
+
]);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function step(op) {
|
|
63
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
64
|
+
while(_)try {
|
|
65
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
66
|
+
if (y = 0, t) op = [
|
|
67
|
+
op[0] & 2,
|
|
68
|
+
t.value
|
|
69
|
+
];
|
|
70
|
+
switch(op[0]){
|
|
71
|
+
case 0:
|
|
72
|
+
case 1:
|
|
73
|
+
t = op;
|
|
74
|
+
break;
|
|
75
|
+
case 4:
|
|
76
|
+
_.label++;
|
|
77
|
+
return {
|
|
78
|
+
value: op[1],
|
|
79
|
+
done: false
|
|
80
|
+
};
|
|
81
|
+
case 5:
|
|
82
|
+
_.label++;
|
|
83
|
+
y = op[1];
|
|
84
|
+
op = [
|
|
85
|
+
0
|
|
86
|
+
];
|
|
87
|
+
continue;
|
|
88
|
+
case 7:
|
|
89
|
+
op = _.ops.pop();
|
|
90
|
+
_.trys.pop();
|
|
91
|
+
continue;
|
|
92
|
+
default:
|
|
93
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
94
|
+
_ = 0;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
98
|
+
_.label = op[1];
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
102
|
+
_.label = t[1];
|
|
103
|
+
t = op;
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
if (t && _.label < t[2]) {
|
|
107
|
+
_.label = t[2];
|
|
108
|
+
_.ops.push(op);
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
if (t[2]) _.ops.pop();
|
|
112
|
+
_.trys.pop();
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
op = body.call(thisArg, _);
|
|
116
|
+
} catch (e) {
|
|
117
|
+
op = [
|
|
118
|
+
6,
|
|
119
|
+
e
|
|
120
|
+
];
|
|
121
|
+
y = 0;
|
|
122
|
+
} finally{
|
|
123
|
+
f = t = 0;
|
|
124
|
+
}
|
|
125
|
+
if (op[0] & 5) throw op[1];
|
|
126
|
+
return {
|
|
127
|
+
value: op[0] ? op[1] : void 0,
|
|
128
|
+
done: true
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
export var defaultRequestTransformer = function() {
|
|
133
|
+
var _ref = _async_to_generator(function(url, payload, params) {
|
|
134
|
+
var request, _params_headers_contenttype, _params_headers;
|
|
135
|
+
return _ts_generator(this, function(_state) {
|
|
136
|
+
request = {
|
|
137
|
+
url: url,
|
|
138
|
+
params: params
|
|
139
|
+
};
|
|
140
|
+
if (payload) {
|
|
141
|
+
if (params.method === "GET" || params.method === "HEAD") {
|
|
142
|
+
request.url += "?".concat(new URLSearchParams(payload));
|
|
143
|
+
} else {
|
|
144
|
+
;
|
|
145
|
+
request.params.body = ((_params_headers = params.headers) === null || _params_headers === void 0 ? void 0 : (_params_headers_contenttype = _params_headers["content-type"]) === null || _params_headers_contenttype === void 0 ? void 0 : _params_headers_contenttype.startsWith("application/json")) ? JSON.stringify(payload) : payload;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return [
|
|
149
|
+
2,
|
|
150
|
+
request
|
|
151
|
+
];
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
return function defaultRequestTransformer(url, payload, params) {
|
|
155
|
+
return _ref.apply(this, arguments);
|
|
156
|
+
};
|
|
157
|
+
}();
|
|
158
|
+
export var defaultResponseTransformer = function() {
|
|
159
|
+
var _ref = _async_to_generator(function(response) {
|
|
160
|
+
var _response_headers_get, result, data, error;
|
|
161
|
+
return _ts_generator(this, function(_state) {
|
|
162
|
+
switch(_state.label){
|
|
163
|
+
case 0:
|
|
164
|
+
result = response;
|
|
165
|
+
return [
|
|
166
|
+
4,
|
|
167
|
+
response.text()
|
|
168
|
+
];
|
|
169
|
+
case 1:
|
|
170
|
+
result.data = _state.sent();
|
|
171
|
+
if ((_response_headers_get = response.headers.get("content-type")) === null || _response_headers_get === void 0 ? void 0 : _response_headers_get.startsWith("application/json")) {
|
|
172
|
+
data = result.data = JSON.parse(result.data);
|
|
173
|
+
if (data.error && _instanceof(data.error, Object)) {
|
|
174
|
+
error = new Error(data.error.message);
|
|
175
|
+
Object.assign(error, data.error);
|
|
176
|
+
throw error;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return [
|
|
180
|
+
2,
|
|
181
|
+
result
|
|
182
|
+
];
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
return function defaultResponseTransformer(response) {
|
|
187
|
+
return _ref.apply(this, arguments);
|
|
188
|
+
};
|
|
189
|
+
}();
|
|
190
|
+
export var request = function() {
|
|
191
|
+
var _ref = _async_to_generator(function(url, payload, config) {
|
|
192
|
+
var _ref, _ref_requestTransformer, requestTransformer, _ref_responseTransformer, responseTransformer, _ref_params, params, transformedRequest, response;
|
|
193
|
+
return _ts_generator(this, function(_state) {
|
|
194
|
+
switch(_state.label){
|
|
195
|
+
case 0:
|
|
196
|
+
_ref = config || {}, _ref_requestTransformer = _ref.requestTransformer, requestTransformer = _ref_requestTransformer === void 0 ? defaultRequestTransformer : _ref_requestTransformer, _ref_responseTransformer = _ref.responseTransformer, responseTransformer = _ref_responseTransformer === void 0 ? defaultResponseTransformer : _ref_responseTransformer, _ref_params = _ref.params, params = _ref_params === void 0 ? {
|
|
197
|
+
method: payload ? "POST" : "GET",
|
|
198
|
+
headers: payload ? {
|
|
199
|
+
"content-type": "application/json"
|
|
200
|
+
} : {}
|
|
201
|
+
} : _ref_params;
|
|
202
|
+
return [
|
|
203
|
+
4,
|
|
204
|
+
requestTransformer(url, payload, params)
|
|
205
|
+
];
|
|
206
|
+
case 1:
|
|
207
|
+
transformedRequest = _state.sent();
|
|
208
|
+
return [
|
|
209
|
+
4,
|
|
210
|
+
fetch(transformedRequest.url, transformedRequest.params)
|
|
211
|
+
];
|
|
212
|
+
case 2:
|
|
213
|
+
response = _state.sent();
|
|
214
|
+
return [
|
|
215
|
+
2,
|
|
216
|
+
responseTransformer(response)
|
|
217
|
+
];
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
return function request(url, payload, config) {
|
|
222
|
+
return _ref.apply(this, arguments);
|
|
223
|
+
};
|
|
224
|
+
}();
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export * from './arraysIntersects.js';
|
|
2
|
+
export * from './checkForUndefined.js';
|
|
3
|
+
export * from './convertConditionToQuery.js';
|
|
4
|
+
export * from './date.js';
|
|
5
|
+
export * from './deepClone.js';
|
|
6
|
+
export * from './deepMerge.js';
|
|
7
|
+
export * from './dynamicImport.js';
|
|
8
|
+
export * from './either.js';
|
|
9
|
+
export * from './evaluateCondition.js';
|
|
10
|
+
export * from './formatValue.js';
|
|
11
|
+
export * from './freshItem.js';
|
|
12
|
+
export * from './getMissingProperties.js';
|
|
13
|
+
export * from './getReferenceProperty.js';
|
|
14
|
+
export * from './getValueFromPath.js';
|
|
15
|
+
export * from './http.js';
|
|
16
|
+
export * from './isReference.js';
|
|
17
|
+
export * from './isRequired.js';
|
|
18
|
+
export * from './pipe.js';
|
|
19
|
+
export * from './schema.js';
|
|
20
|
+
export * from './serialize.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./arraysIntersects.js"), exports);
|
|
18
|
+
__exportStar(require("./checkForUndefined.js"), exports);
|
|
19
|
+
__exportStar(require("./convertConditionToQuery.js"), exports);
|
|
20
|
+
__exportStar(require("./date.js"), exports);
|
|
21
|
+
__exportStar(require("./deepClone.js"), exports);
|
|
22
|
+
__exportStar(require("./deepMerge.js"), exports);
|
|
23
|
+
__exportStar(require("./dynamicImport.js"), exports);
|
|
24
|
+
__exportStar(require("./either.js"), exports);
|
|
25
|
+
__exportStar(require("./evaluateCondition.js"), exports);
|
|
26
|
+
__exportStar(require("./formatValue.js"), exports);
|
|
27
|
+
__exportStar(require("./freshItem.js"), exports);
|
|
28
|
+
__exportStar(require("./getMissingProperties.js"), exports);
|
|
29
|
+
__exportStar(require("./getReferenceProperty.js"), exports);
|
|
30
|
+
__exportStar(require("./getValueFromPath.js"), exports);
|
|
31
|
+
__exportStar(require("./http.js"), exports);
|
|
32
|
+
__exportStar(require("./isReference.js"), exports);
|
|
33
|
+
__exportStar(require("./isRequired.js"), exports);
|
|
34
|
+
__exportStar(require("./pipe.js"), exports);
|
|
35
|
+
__exportStar(require("./schema.js"), exports);
|
|
36
|
+
__exportStar(require("./serialize.js"), exports);
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export * from "./arraysIntersects.mjs";
|
|
2
|
+
export * from "./checkForUndefined.mjs";
|
|
3
|
+
export * from "./convertConditionToQuery.mjs";
|
|
4
|
+
export * from "./date.mjs";
|
|
5
|
+
export * from "./deepClone.mjs";
|
|
6
|
+
export * from "./deepMerge.mjs";
|
|
7
|
+
export * from "./dynamicImport.mjs";
|
|
8
|
+
export * from "./either.mjs";
|
|
9
|
+
export * from "./evaluateCondition.mjs";
|
|
10
|
+
export * from "./formatValue.mjs";
|
|
11
|
+
export * from "./freshItem.mjs";
|
|
12
|
+
export * from "./getMissingProperties.mjs";
|
|
13
|
+
export * from "./getReferenceProperty.mjs";
|
|
14
|
+
export * from "./getValueFromPath.mjs";
|
|
15
|
+
export * from "./http.mjs";
|
|
16
|
+
export * from "./isReference.mjs";
|
|
17
|
+
export * from "./isRequired.mjs";
|
|
18
|
+
export * from "./pipe.mjs";
|
|
19
|
+
export * from "./schema.mjs";
|
|
20
|
+
export * from "./serialize.mjs";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isReference = void 0;
|
|
4
|
+
const isReference = (property) => {
|
|
5
|
+
return 'items' in property
|
|
6
|
+
? '$ref' in property.items
|
|
7
|
+
: '$ref' in property;
|
|
8
|
+
};
|
|
9
|
+
exports.isReference = isReference;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isRequired = void 0;
|
|
4
|
+
const evaluateCondition_js_1 = require("./evaluateCondition.js");
|
|
5
|
+
const isRequired = (propName, required, subject) => {
|
|
6
|
+
if (Array.isArray(required)) {
|
|
7
|
+
return required.includes(propName);
|
|
8
|
+
}
|
|
9
|
+
if (!(propName in required)) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const requiredProp = required[propName];
|
|
13
|
+
if (typeof requiredProp === 'boolean') {
|
|
14
|
+
return requiredProp;
|
|
15
|
+
}
|
|
16
|
+
return (0, evaluateCondition_js_1.evaluateCondition)(subject, requiredProp).satisfied;
|
|
17
|
+
};
|
|
18
|
+
exports.isRequired = isRequired;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { evaluateCondition } from "./evaluateCondition.mjs";
|
|
2
|
+
export var isRequired = function(propName, required, subject) {
|
|
3
|
+
if (Array.isArray(required)) {
|
|
4
|
+
return required.includes(propName);
|
|
5
|
+
}
|
|
6
|
+
if (!(propName in required)) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
var requiredProp = required[propName];
|
|
10
|
+
if (typeof requiredProp === "boolean") {
|
|
11
|
+
return requiredProp;
|
|
12
|
+
}
|
|
13
|
+
return evaluateCondition(subject, requiredProp).satisfied;
|
|
14
|
+
};
|
package/dist/pipe.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type PipeOptions = {
|
|
2
|
+
returnFirst?: boolean | ((value: any) => boolean);
|
|
3
|
+
};
|
|
4
|
+
export declare const pipe: <TFunction extends (...args: any) => any>(functions: TFunction[], options?: PipeOptions) => (value: Parameters<TFunction>[0], ...args: Parameters<TFunction> extends [unknown, ...infer Tail] ? Tail : []) => Promise<true | ReturnType<TFunction>>;
|
package/dist/pipe.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pipe = void 0;
|
|
4
|
+
const pipe = (functions, options) => {
|
|
5
|
+
const { returnFirst } = options || {};
|
|
6
|
+
return async (value, ...args) => {
|
|
7
|
+
let ret = value;
|
|
8
|
+
for (const fn of functions) {
|
|
9
|
+
ret = await fn(ret, ...args);
|
|
10
|
+
if (returnFirst && ret !== undefined) {
|
|
11
|
+
switch (typeof returnFirst) {
|
|
12
|
+
case 'function': {
|
|
13
|
+
const result = returnFirst(ret);
|
|
14
|
+
if (result) {
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
default: {
|
|
20
|
+
return ret;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return ret;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
exports.pipe = pipe;
|