@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.
Files changed (66) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +13 -0
  3. package/dist/arraysIntersects.d.ts +1 -0
  4. package/dist/arraysIntersects.js +12 -0
  5. package/dist/arraysIntersects.mjs +8 -0
  6. package/dist/checkForUndefined.d.ts +2 -0
  7. package/dist/checkForUndefined.js +12 -0
  8. package/dist/checkForUndefined.mjs +6 -0
  9. package/dist/convertConditionToQuery.d.ts +2 -0
  10. package/dist/convertConditionToQuery.js +60 -0
  11. package/dist/convertConditionToQuery.mjs +72 -0
  12. package/dist/date.d.ts +7 -0
  13. package/dist/date.js +42 -0
  14. package/dist/date.mjs +101 -0
  15. package/dist/deepClone.d.ts +1 -0
  16. package/dist/deepClone.js +9 -0
  17. package/dist/deepClone.mjs +3 -0
  18. package/dist/deepMerge.d.ts +5 -0
  19. package/dist/deepMerge.js +39 -0
  20. package/dist/deepMerge.mjs +66 -0
  21. package/dist/dynamicImport.d.ts +1 -0
  22. package/dist/dynamicImport.js +16 -0
  23. package/dist/dynamicImport.mjs +145 -0
  24. package/dist/either.d.ts +9 -0
  25. package/dist/either.js +37 -0
  26. package/dist/either.mjs +32 -0
  27. package/dist/evaluateCondition.d.ts +5 -0
  28. package/dist/evaluateCondition.js +57 -0
  29. package/dist/evaluateCondition.mjs +63 -0
  30. package/dist/formatValue.d.ts +2 -0
  31. package/dist/formatValue.js +55 -0
  32. package/dist/formatValue.mjs +59 -0
  33. package/dist/freshItem.d.ts +2 -0
  34. package/dist/freshItem.js +36 -0
  35. package/dist/freshItem.mjs +133 -0
  36. package/dist/getMissingProperties.d.ts +2 -0
  37. package/dist/getMissingProperties.js +38 -0
  38. package/dist/getMissingProperties.mjs +50 -0
  39. package/dist/getReferenceProperty.d.ts +2 -0
  40. package/dist/getReferenceProperty.js +19 -0
  41. package/dist/getReferenceProperty.mjs +11 -0
  42. package/dist/getValueFromPath.d.ts +1 -0
  43. package/dist/getValueFromPath.js +10 -0
  44. package/dist/getValueFromPath.mjs +6 -0
  45. package/dist/http.d.ts +20 -0
  46. package/dist/http.js +51 -0
  47. package/dist/http.mjs +224 -0
  48. package/dist/index.d.ts +20 -0
  49. package/dist/index.js +36 -0
  50. package/dist/index.mjs +20 -0
  51. package/dist/isReference.d.ts +2 -0
  52. package/dist/isReference.js +9 -0
  53. package/dist/isReference.mjs +3 -0
  54. package/dist/isRequired.d.ts +2 -0
  55. package/dist/isRequired.js +18 -0
  56. package/dist/isRequired.mjs +14 -0
  57. package/dist/pipe.d.ts +4 -0
  58. package/dist/pipe.js +28 -0
  59. package/dist/pipe.mjs +259 -0
  60. package/dist/schema.d.ts +20 -0
  61. package/dist/schema.js +74 -0
  62. package/dist/schema.mjs +72 -0
  63. package/dist/serialize.d.ts +3 -0
  64. package/dist/serialize.js +33 -0
  65. package/dist/serialize.mjs +38 -0
  66. 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
+ }();
@@ -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,2 @@
1
+ import type { Property, RefProperty, ArrayOfRefs } from '@aeriajs/types';
2
+ export declare const isReference: (property: Property) => property is RefProperty | ArrayOfRefs;
@@ -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,3 @@
1
+ export var isReference = function(property) {
2
+ return "items" in property ? "$ref" in property.items : "$ref" in property;
3
+ };
@@ -0,0 +1,2 @@
1
+ import type { Description } from '@aeriajs/types';
2
+ export declare const isRequired: (propName: string, required: NonNullable<Description['required']>, subject: any) => boolean;
@@ -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;