@sprucelabs/schema 28.1.3 → 28.2.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.
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
export default function assertOptions<Options extends Record<string, any>, Key extends Join<PathsToStringProps<Options>, '.'> = Join<PathsToStringProps<Options>, '.'>>(options: Options, toCheck: Key[], friendlyMessage?: string): Options & Required<Pick<Options, Key>>;
|
|
2
|
+
export declare type PathsToStringProps<T> = T extends Record<string, any> ? {
|
|
3
|
+
[K in keyof T]: [K, ...PathsToStringProps<T[K]>];
|
|
4
|
+
}[keyof T] : [];
|
|
5
|
+
declare type Join<T extends string[], D extends string> = T extends [] ? never : T extends [infer F] ? F : T extends [infer F, ...infer R] ? F extends string ? `${F}${D}${Join<Extract<R, string[]>, D>}` : never : string;
|
|
6
|
+
export {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import get from 'just-safe-get';
|
|
1
2
|
import SpruceError from '../errors/SpruceError.js';
|
|
2
|
-
|
|
3
|
+
export default function assertOptions(options, toCheck, friendlyMessage) {
|
|
3
4
|
const missing = [];
|
|
4
5
|
for (const check of toCheck) {
|
|
5
|
-
const value = options
|
|
6
|
+
const value = get(options !== null && options !== void 0 ? options : {}, check);
|
|
6
7
|
//@ts-ignore
|
|
7
8
|
if (value === null || typeof value === 'undefined') {
|
|
8
9
|
missing.push(check);
|
|
@@ -16,5 +17,4 @@ const assertOptions = function (options, toCheck, friendlyMessage) {
|
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
19
|
return options;
|
|
19
|
-
}
|
|
20
|
-
export default assertOptions;
|
|
20
|
+
}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
export default function assertOptions<Options extends Record<string, any>, Key extends Join<PathsToStringProps<Options>, '.'> = Join<PathsToStringProps<Options>, '.'>>(options: Options, toCheck: Key[], friendlyMessage?: string): Options & Required<Pick<Options, Key>>;
|
|
2
|
+
export declare type PathsToStringProps<T> = T extends Record<string, any> ? {
|
|
3
|
+
[K in keyof T]: [K, ...PathsToStringProps<T[K]>];
|
|
4
|
+
}[keyof T] : [];
|
|
5
|
+
declare type Join<T extends string[], D extends string> = T extends [] ? never : T extends [infer F] ? F : T extends [infer F, ...infer R] ? F extends string ? `${F}${D}${Join<Extract<R, string[]>, D>}` : never : string;
|
|
6
|
+
export {};
|
|
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const just_safe_get_1 = __importDefault(require("just-safe-get"));
|
|
6
7
|
const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
|
|
7
|
-
|
|
8
|
+
function assertOptions(options, toCheck, friendlyMessage) {
|
|
8
9
|
const missing = [];
|
|
9
10
|
for (const check of toCheck) {
|
|
10
|
-
const value = options
|
|
11
|
+
const value = (0, just_safe_get_1.default)(options !== null && options !== void 0 ? options : {}, check);
|
|
11
12
|
//@ts-ignore
|
|
12
13
|
if (value === null || typeof value === 'undefined') {
|
|
13
14
|
missing.push(check);
|
|
@@ -21,5 +22,5 @@ const assertOptions = function (options, toCheck, friendlyMessage) {
|
|
|
21
22
|
});
|
|
22
23
|
}
|
|
23
24
|
return options;
|
|
24
|
-
}
|
|
25
|
+
}
|
|
25
26
|
exports.default = assertOptions;
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"!build/__tests__",
|
|
9
9
|
"esm"
|
|
10
10
|
],
|
|
11
|
-
"version": "28.
|
|
11
|
+
"version": "28.2.0",
|
|
12
12
|
"main": "./build/index.js",
|
|
13
13
|
"types": "./build/index.d.ts",
|
|
14
14
|
"module": "./build/esm/index.js",
|
|
@@ -66,9 +66,10 @@
|
|
|
66
66
|
"build.copy-files": "mkdir -p build && rsync -avzq --exclude='*.ts' ./src/ ./build/"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@sprucelabs/error": "^5.0.
|
|
69
|
+
"@sprucelabs/error": "^5.0.454",
|
|
70
70
|
"@sprucelabs/test": "^7.7.314",
|
|
71
71
|
"email-validator": "^2.0.4",
|
|
72
|
+
"just-safe-get": "^4.0.1",
|
|
72
73
|
"lodash": "^4.17.21"
|
|
73
74
|
},
|
|
74
75
|
"devDependencies": {
|
|
@@ -77,10 +78,10 @@
|
|
|
77
78
|
"@sprucelabs/jest-sheets-reporter": "^1.3.29",
|
|
78
79
|
"@sprucelabs/resolve-path-aliases": "^1.1.14",
|
|
79
80
|
"@sprucelabs/semantic-release": "^4.0.8",
|
|
80
|
-
"@sprucelabs/test-utils": "^3.0.
|
|
81
|
+
"@sprucelabs/test-utils": "^3.0.545",
|
|
81
82
|
"@types/lodash": "^4.14.182",
|
|
82
83
|
"chokidar-cli": "^3.0.0",
|
|
83
|
-
"concurrently": "^7.
|
|
84
|
+
"concurrently": "^7.2.0",
|
|
84
85
|
"eslint": "^8.15.0",
|
|
85
86
|
"eslint-config-spruce": "^10.11.2",
|
|
86
87
|
"jest": "^28.1.0",
|