@vpmedia/simplify 1.75.0 → 1.76.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 (54) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/index.js +1118 -25
  3. package/dist/index.js.map +1 -1
  4. package/package.json +8 -7
  5. package/dist/const/http_status.js +0 -133
  6. package/dist/const/http_status.js.map +0 -1
  7. package/dist/logging/AbstractLogHandler.js +0 -16
  8. package/dist/logging/AbstractLogHandler.js.map +0 -1
  9. package/dist/logging/ConsoleLogHandler.js +0 -41
  10. package/dist/logging/ConsoleLogHandler.js.map +0 -1
  11. package/dist/logging/Logger.js +0 -51
  12. package/dist/logging/Logger.js.map +0 -1
  13. package/dist/logging/OpenTelemetryLogHandler.js +0 -21
  14. package/dist/logging/OpenTelemetryLogHandler.js.map +0 -1
  15. package/dist/logging/SentryLogHandler.js +0 -36
  16. package/dist/logging/SentryLogHandler.js.map +0 -1
  17. package/dist/logging/const.js +0 -21
  18. package/dist/logging/const.js.map +0 -1
  19. package/dist/logging/util.js +0 -34
  20. package/dist/logging/util.js.map +0 -1
  21. package/dist/pagelifecycle/const.js +0 -27
  22. package/dist/pagelifecycle/const.js.map +0 -1
  23. package/dist/pagelifecycle/typedef.js +0 -2
  24. package/dist/pagelifecycle/typedef.js.map +0 -1
  25. package/dist/pagelifecycle/util.js +0 -117
  26. package/dist/pagelifecycle/util.js.map +0 -1
  27. package/dist/typecheck/TypeCheckError.js +0 -12
  28. package/dist/typecheck/TypeCheckError.js.map +0 -1
  29. package/dist/typecheck/TypeChecker.js +0 -69
  30. package/dist/typecheck/TypeChecker.js.map +0 -1
  31. package/dist/typecheck/util.js +0 -42
  32. package/dist/typecheck/util.js.map +0 -1
  33. package/dist/util/async.js +0 -39
  34. package/dist/util/async.js.map +0 -1
  35. package/dist/util/error.js +0 -27
  36. package/dist/util/error.js.map +0 -1
  37. package/dist/util/event_emitter.js +0 -127
  38. package/dist/util/event_emitter.js.map +0 -1
  39. package/dist/util/fetch.js +0 -75
  40. package/dist/util/fetch.js.map +0 -1
  41. package/dist/util/number.js +0 -52
  42. package/dist/util/number.js.map +0 -1
  43. package/dist/util/object.js +0 -83
  44. package/dist/util/object.js.map +0 -1
  45. package/dist/util/query.js +0 -24
  46. package/dist/util/query.js.map +0 -1
  47. package/dist/util/state.js +0 -19
  48. package/dist/util/state.js.map +0 -1
  49. package/dist/util/string.js +0 -59
  50. package/dist/util/string.js.map +0 -1
  51. package/dist/util/uuid.js +0 -27
  52. package/dist/util/uuid.js.map +0 -1
  53. package/dist/util/validate.js +0 -139
  54. package/dist/util/validate.js.map +0 -1
@@ -1,83 +0,0 @@
1
- const PROHIBITED_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
2
- /**
3
- * Purges object properties to free up memory.
4
- */
5
- export const purgeObject = (target) => {
6
- if (!target) {
7
- return;
8
- }
9
- for (const entry of Object.keys(target)) {
10
- target[entry] = null;
11
- }
12
- };
13
- /**
14
- * Merge two objects.
15
- */
16
- export const deepMerge = (target, source) => {
17
- if (typeof target !== 'object' || target === null) {
18
- return source;
19
- }
20
- if (typeof source !== 'object' || source === null) {
21
- return target;
22
- }
23
- for (const key of Object.keys(source)) {
24
- if (PROHIBITED_KEYS.has(key)) {
25
- throw new SyntaxError(`Security violation error. Cannot use "${key}" as object key.`);
26
- }
27
- if (typeof source[key] === 'object' && source[key] !== null) {
28
- if (!target[key] || typeof target[key] !== 'object') {
29
- target[key] = {};
30
- }
31
- deepMerge(target[key], source[key]);
32
- }
33
- else {
34
- target[key] = source[key];
35
- }
36
- }
37
- return target;
38
- };
39
- /**
40
- * Returns the sum value of an array of objects field.
41
- */
42
- export const getObjArrayPropSum = (arr, prop) => arr.reduce((accumulator, object) => accumulator + object[prop], 0);
43
- /**
44
- * Get object value by path.
45
- */
46
- export const getObjValueByPath = (obj, path) => {
47
- if (!obj || !path) {
48
- return null;
49
- }
50
- const keyParts = path.split('.');
51
- const nextKey = keyParts[0];
52
- if (keyParts.length === 1) {
53
- return obj[nextKey] === undefined ? null : obj[nextKey];
54
- }
55
- if (obj[nextKey] === undefined || obj[nextKey] === null) {
56
- return null;
57
- }
58
- return getObjValueByPath(obj[nextKey], keyParts.slice(1).join('.'));
59
- };
60
- /**
61
- * Set object value by path.
62
- * @throws {SyntaxError} Error when illegal path value has been provided.
63
- */
64
- export const setObjValueByPath = (obj, path, value) => {
65
- if (!obj || !path) {
66
- return;
67
- }
68
- const keyParts = path.split('.');
69
- const nextKey = keyParts[0];
70
- if (PROHIBITED_KEYS.has(nextKey)) {
71
- throw new SyntaxError(`Security violation error. Cannot use "${nextKey}" as parameter.`);
72
- }
73
- if (keyParts.length === 1) {
74
- obj[nextKey] = value;
75
- }
76
- else {
77
- if (obj[nextKey] === undefined || obj[nextKey] === null) {
78
- obj[nextKey] = {};
79
- }
80
- setObjValueByPath(obj[nextKey], keyParts.slice(1).join('.'), value);
81
- }
82
- };
83
- //# sourceMappingURL=object.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/util/object.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- const urlSearchParams = new URLSearchParams(globalThis.location?.search);
2
- export function sanitizeURLParam(input) {
3
- if (!input) {
4
- return input;
5
- }
6
- return input.replaceAll(/[^\w-]/giu, '');
7
- }
8
- /**
9
- * Get a URL parameter value.
10
- */
11
- export function getURLParam(key, defaultValue, isSanitize) {
12
- if (!key) {
13
- return (defaultValue ?? null);
14
- }
15
- const paramValue = urlSearchParams.get(key);
16
- if (paramValue === null || paramValue === undefined) {
17
- return (defaultValue ?? null);
18
- }
19
- if (isSanitize !== false) {
20
- return sanitizeURLParam(paramValue);
21
- }
22
- return paramValue;
23
- }
24
- //# sourceMappingURL=query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/util/query.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAQzE,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,GAA8B,EAC9B,YAAgB,EAChB,UAAoB;IAEpB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,YAAY,IAAI,IAAI,CAAM,CAAC;IACrC,CAAC;IACD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,CAAC,YAAY,IAAI,IAAI,CAAM,CAAC;IACrC,CAAC;IACD,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,UAAU,CAAW,CAAC;IAChD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,19 +0,0 @@
1
- import { underscoreToCamelCase } from './string.js';
2
- /**
3
- * Maps server data to client data.
4
- */
5
- export const serverDataToState = (data, isRecursive = false) => {
6
- if (Array.isArray(data)) {
7
- return data.map((entry) => serverDataToState(entry, isRecursive));
8
- }
9
- if (data !== null && typeof data === 'object') {
10
- const result = {};
11
- for (const [key, value] of Object.entries(data)) {
12
- const clientKey = underscoreToCamelCase(key);
13
- result[clientKey] = isRecursive ? serverDataToState(value, isRecursive) : value;
14
- }
15
- return result;
16
- }
17
- return data;
18
- };
19
- //# sourceMappingURL=state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/util/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAa,EAAE,WAAW,GAAG,KAAK,EAAO,EAAE;IAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Add leading zeros to a value to ensure it has a minimum width.
3
- */
4
- export const addLeadingZero = (value, size = 2) => {
5
- if (value === null || value === undefined) {
6
- return null;
7
- }
8
- let str = value.toString();
9
- while (str.length < size) {
10
- str = `0${str}`;
11
- }
12
- return str;
13
- };
14
- /**
15
- * Capitalize a string.
16
- */
17
- export const capitalize = (value) => {
18
- if (value === null || value === undefined) {
19
- return null;
20
- }
21
- if (!value || value.length === 0) {
22
- return value;
23
- }
24
- const normValue = value.toLowerCase();
25
- return normValue.charAt(0).toUpperCase() + normValue.slice(1);
26
- };
27
- /**
28
- * Converts underscore case string to camel case.
29
- */
30
- export const underscoreToCamelCase = (value) => value.replaceAll(/(_\w)/gu, (m) => m[1].toUpperCase());
31
- /**
32
- * Saves text file.
33
- */
34
- export const saveAsFile = (filename, text) => {
35
- const element = document.createElement('a');
36
- element.setAttribute('href', `data:text/plain;charset=utf-8,${encodeURIComponent(text)}`);
37
- element.setAttribute('download', filename);
38
- element.style.display = 'none';
39
- document.body.append(element);
40
- element.click();
41
- element.remove();
42
- };
43
- /**
44
- * Get type from value in human readable format.
45
- */
46
- export const getTypeFromValue = (value) => Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
47
- /**
48
- * Get value in human readable format.
49
- */
50
- export const getDisplayValue = (value) => {
51
- if (typeof value === 'string') {
52
- return `"${value}"`;
53
- }
54
- if (typeof value === 'object') {
55
- return JSON.stringify(value);
56
- }
57
- return String(value);
58
- };
59
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/util/string.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAyC,EAAE,IAAI,GAAG,CAAC,EAAiB,EAAE;IACnG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QACzB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAgC,EAAiB,EAAE;IAC5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC7D,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAQ,EAAE;IACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,iCAAiC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1F,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,CAAC;AACnB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAU,EAAE,CACzD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAU,EAAE;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,KAAK,GAAG,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC"}
package/dist/util/uuid.js DELETED
@@ -1,27 +0,0 @@
1
- /**
2
- * Convert a byte (0–255) to a 2-character hex string.
3
- */
4
- export const byteToHex = (byte) => (byte >>> 4).toString(16) + (byte & 0b1111).toString(16);
5
- /**
6
- * UUIDv4 fallback generator (RFC 4122 compliant).
7
- */
8
- export const randomUUIDFallback = () => {
9
- const bytes = crypto.getRandomValues
10
- ? crypto.getRandomValues(new Uint8Array(16))
11
- : Array.from({ length: 16 }, () => Math.floor(Math.random() * 256));
12
- bytes[6] = (bytes[6] & 0x0f) | 0x40;
13
- bytes[8] = (bytes[8] & 0x3f) | 0x80;
14
- let uuid = '';
15
- for (let index = 0; index < bytes.length; index += 1) {
16
- if (index === 4 || index === 6 || index === 8 || index === 10) {
17
- uuid += '-';
18
- }
19
- uuid += byteToHex(bytes[index]);
20
- }
21
- return uuid;
22
- };
23
- /**
24
- * Crypto UUIDv4 wrapper with fallback.
25
- */
26
- export const uuidv4 = () => typeof crypto.randomUUID === 'function' ? crypto.randomUUID() : randomUUIDFallback();
27
- //# sourceMappingURL=uuid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/util/uuid.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE5G;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAW,EAAE;IAC7C,MAAM,KAAK,GAA0B,MAAM,CAAC,eAAe;QACzD,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IAEtE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAErC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC9D,IAAI,IAAI,GAAG,CAAC;QACd,CAAC;QACD,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAW,EAAE,CACjC,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC"}
@@ -1,139 +0,0 @@
1
- import { isEqual, isGreater, isGreaterOrEqual, isInRange, isLess, isLessOrEqual } from './number.js';
2
- /**
3
- * Validates `value` as `boolean`.
4
- */
5
- export const isBoolean = (value) => typeof value === 'boolean';
6
- /**
7
- * Validates `value` as `number`.
8
- */
9
- export const isNumber = (value) => typeof value === 'number' && Number.isFinite(value);
10
- /**
11
- * Validates `value` as positive `number`.
12
- */
13
- export const isPositiveNumber = (value) => isNumber(value) && value > 0;
14
- /**
15
- * Validates `value` as non-negative `number`.
16
- */
17
- export const isNonNegativeNumber = (value) => isNumber(value) && value >= 0;
18
- /**
19
- * Validates `value` as `integer`.
20
- */
21
- export const isInteger = (value) => isNumber(value) && Number.isInteger(value);
22
- /**
23
- * Validates `value` as positive `integer`.
24
- */
25
- export const isPositiveInteger = (value) => isInteger(value) && value > 0;
26
- /**
27
- * Validates `value` as non-negative `integer`.
28
- */
29
- export const isNonNegativeInteger = (value) => isInteger(value) && value >= 0;
30
- /**
31
- * Validates `value` as `string`.
32
- */
33
- export const isString = (value) => typeof value === 'string';
34
- /**
35
- * Validates `value` as `array`.
36
- */
37
- export const isArray = (value) => Array.isArray(value);
38
- /**
39
- * Validates `value` as `null`.
40
- */
41
- export const isNull = (value) => value === null;
42
- /**
43
- * Validates `value` as `undefined`.
44
- */
45
- export const isUndefined = (value) => value === undefined;
46
- /**
47
- * Validates `value` as `null` or `undefined`.
48
- */
49
- export const isNullOrUndefined = (value) => isNull(value) || isUndefined(value);
50
- /**
51
- * Validates `value` as plain `object`.
52
- */
53
- export const isPlainObject = (value) => Object.prototype.toString.call(value) === '[object Object]';
54
- /**
55
- * Validates `value` as `function`.
56
- */
57
- export const isFunction = (value) => typeof value === 'function';
58
- /**
59
- * Validates `value` as `type`.
60
- */
61
- export const isInstance = (value, type) => isFunction(type) && value instanceof type;
62
- /**
63
- * Validates `value` as `enum`.
64
- */
65
- export const isEnum = (value, choices) => {
66
- if (!isString(value) && !isNumber(value)) {
67
- return false;
68
- }
69
- return ((isArray(choices) && choices.includes(value)) ||
70
- (isPlainObject(choices) && Object.values(choices).includes(value)) ||
71
- (isInstance(choices, Set) && choices.has(value)));
72
- };
73
- /**
74
- * Type check an array of values using a validator.
75
- */
76
- export const isArrayOf = (values, validator) => {
77
- if (!isArray(values)) {
78
- return false;
79
- }
80
- for (const value of values) {
81
- if (!validator(value)) {
82
- return false;
83
- }
84
- }
85
- return true;
86
- };
87
- /**
88
- * Type check a plain object of values using a validator.
89
- */
90
- export const isPlainObjectOf = (record, validator) => {
91
- if (!isPlainObject(record)) {
92
- return false;
93
- }
94
- for (const value of Object.values(record)) {
95
- if (!validator(value)) {
96
- return false;
97
- }
98
- }
99
- return true;
100
- };
101
- /**
102
- * Refine a base validator with an extra condition.
103
- */
104
- export const refineValidator = (base, predicate, name = null) => {
105
- const refinedValidator = (value) => base(value) && predicate(value);
106
- Object.defineProperty(refinedValidator, 'name', {
107
- value: isString(name) ? name : `${base.name}Refined`,
108
- });
109
- return refinedValidator;
110
- };
111
- /**
112
- * Logical OR of two validators.
113
- */
114
- export const isAnyOf = (a, b) => (value) => a(value) || b(value);
115
- export const isNumberGreater = (min) => refineValidator(isNumber, (value) => isGreater(value, min));
116
- export const isNumberGreaterOrEqual = (min) => refineValidator(isNumber, (value) => isGreaterOrEqual(value, min));
117
- export const isNumberLess = (min) => refineValidator(isNumber, (value) => isLess(value, min));
118
- export const isNumberLessOrEqual = (min) => refineValidator(isNumber, (value) => isLessOrEqual(value, min));
119
- export const isNumberInRange = (min, max) => refineValidator(isNumber, (value) => isInRange(value, min, max));
120
- export const isNumberEqual = (expected) => refineValidator(isNumber, (value) => isEqual(value, expected));
121
- export const isIntegerGreater = (min) => refineValidator(isInteger, (value) => isGreater(value, min));
122
- export const isIntegerGreaterOrEqual = (min) => refineValidator(isInteger, (value) => isGreaterOrEqual(value, min));
123
- export const isIntegerLess = (min) => refineValidator(isInteger, (value) => isLess(value, min));
124
- export const isIntegerLessOrEqual = (min) => refineValidator(isInteger, (value) => isLessOrEqual(value, min));
125
- export const isIntegerInRange = (min, max) => refineValidator(isInteger, (value) => isInRange(value, min, max));
126
- export const isIntegerEqual = (expected) => refineValidator(isInteger, (value) => isEqual(value, expected));
127
- export const isStringLengthGreater = (min) => refineValidator(isString, (value) => isGreater(value.length, min));
128
- export const isStringLengthGreaterOrEqual = (min) => refineValidator(isString, (value) => isGreaterOrEqual(value.length, min));
129
- export const isStringLengthLess = (min) => refineValidator(isString, (value) => isLess(value.length, min));
130
- export const isStringLengthLessOrEqual = (min) => refineValidator(isString, (value) => isLessOrEqual(value.length, min));
131
- export const isStringLengthInRange = (min, max) => refineValidator(isString, (value) => isInRange(value.length, min, max));
132
- export const isStringLengthEqual = (expected) => refineValidator(isString, (value) => isEqual(value.length, expected));
133
- export const isArrayLengthGreater = (min) => refineValidator(isArray, (value) => isGreater(value.length, min));
134
- export const isArrayLengthGreaterOrEqual = (min) => refineValidator(isArray, (value) => isGreaterOrEqual(value.length, min));
135
- export const isArrayLengthLess = (min) => refineValidator(isArray, (value) => isLess(value.length, min));
136
- export const isArrayLengthLessOrEqual = (min) => refineValidator(isArray, (value) => isLessOrEqual(value.length, min));
137
- export const isArrayLengthInRange = (min, max) => refineValidator(isArray, (value) => isInRange(value.length, min, max));
138
- export const isArrayLengthEqual = (expected) => refineValidator(isArray, (value) => isEqual(value.length, expected));
139
- //# sourceMappingURL=validate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/util/validate.ts"],"names":[],"mappings":"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"}