@kakasoo/deep-strict-types 1.0.16 → 1.0.18
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/bin/src/DeepStrictAssert.d.ts +4 -0
- package/bin/src/DeepStrictAssert.d.ts.map +1 -0
- package/bin/src/DeepStrictAssert.js +35 -0
- package/bin/src/DeepStrictAssert.js.map +1 -0
- package/bin/src/index.d.ts +2 -0
- package/bin/src/index.d.ts.map +1 -1
- package/bin/src/index.js +2 -0
- package/bin/src/index.js.map +1 -1
- package/bin/src/types/RemoveAfterDot.d.ts +1 -1
- package/bin/src/types/RemoveAfterDot.d.ts.map +1 -1
- package/bin/src/types/StringToDeepObject.d.ts +11 -0
- package/bin/src/types/StringToDeepObject.d.ts.map +1 -0
- package/bin/src/types/StringToDeepObject.js +3 -0
- package/bin/src/types/StringToDeepObject.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DeepStrictObjectKeys } from './types/DeepStrictObjectKeys';
|
|
2
|
+
import { DeepStrictPick } from './types/DeepStrictPick';
|
|
3
|
+
export declare const deepStrictAssert: <T extends object>(input: T) => <K extends DeepStrictObjectKeys<T>>(key: K) => DeepStrictPick<T, K>;
|
|
4
|
+
//# sourceMappingURL=DeepStrictAssert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepStrictAssert.d.ts","sourceRoot":"","sources":["../../src/DeepStrictAssert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,gBAAgB,GAC1B,CAAC,SAAS,MAAM,SAAS,CAAC,MAC1B,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAmC/D,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deepStrictAssert = void 0;
|
|
4
|
+
const deepStrictAssert = (input) => (key) => {
|
|
5
|
+
const keys = key.split(/(?:\[\*\])?\./g).filter(Boolean);
|
|
6
|
+
console.log(keys);
|
|
7
|
+
const traverse = (input, keys) => {
|
|
8
|
+
const [first, ...rest] = keys;
|
|
9
|
+
console.log(first);
|
|
10
|
+
if (input instanceof Array) {
|
|
11
|
+
const elements = input.map((element) => {
|
|
12
|
+
if (first in element) {
|
|
13
|
+
if (typeof element[first] === 'object' && element[first] !== null) {
|
|
14
|
+
return { [first]: traverse(element[first], rest) };
|
|
15
|
+
}
|
|
16
|
+
return { [first]: element[first] };
|
|
17
|
+
}
|
|
18
|
+
return element;
|
|
19
|
+
});
|
|
20
|
+
return elements;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
if (first in input) {
|
|
24
|
+
if (typeof input[first] === 'object' && input[first] !== null) {
|
|
25
|
+
return { [first]: traverse(input[first], rest) };
|
|
26
|
+
}
|
|
27
|
+
return { [first]: input[first] };
|
|
28
|
+
}
|
|
29
|
+
throw new Error(`input doesn\'t has key: ${first}`);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
return traverse(input, keys);
|
|
33
|
+
};
|
|
34
|
+
exports.deepStrictAssert = deepStrictAssert;
|
|
35
|
+
//# sourceMappingURL=DeepStrictAssert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepStrictAssert.js","sourceRoot":"","sources":["../../src/DeepStrictAssert.ts"],"names":[],"mappings":";;;AAGO,MAAM,gBAAgB,GAC3B,CAAmB,KAAQ,EAAE,EAAE,CAC/B,CAAoC,GAAM,EAAwB,EAAE;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,CAAC,KAAkD,EAAE,IAAc,EAAO,EAAE;QAC3F,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEnB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;oBACrB,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;wBAClE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;oBACrD,CAAC;oBAED,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,CAAC;gBAED,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;gBACnB,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC9D,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnD,CAAC;gBACD,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAyB,CAAC;AACvD,CAAC,CAAC;AArCS,QAAA,gBAAgB,oBAqCzB"}
|
package/bin/src/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './DeepStrictAssert';
|
|
1
2
|
export * from './types/DeepDateToString';
|
|
2
3
|
export * from './types/DeepStrictObjectKeys';
|
|
3
4
|
export * from './types/DeepStrictOmit';
|
|
@@ -13,5 +14,6 @@ export * from './types/IsUnion';
|
|
|
13
14
|
export * from './types/RemoveAfterDot';
|
|
14
15
|
export * from './types/RemoveArraySymbol';
|
|
15
16
|
export * from './types/RemoveLastProperty';
|
|
17
|
+
export * from './types/StringToDeepObject';
|
|
16
18
|
export * from './types/ValueType';
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
package/bin/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC"}
|
package/bin/src/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./DeepStrictAssert"), exports);
|
|
17
18
|
__exportStar(require("./types/DeepDateToString"), exports);
|
|
18
19
|
__exportStar(require("./types/DeepStrictObjectKeys"), exports);
|
|
19
20
|
__exportStar(require("./types/DeepStrictOmit"), exports);
|
|
@@ -29,5 +30,6 @@ __exportStar(require("./types/IsUnion"), exports);
|
|
|
29
30
|
__exportStar(require("./types/RemoveAfterDot"), exports);
|
|
30
31
|
__exportStar(require("./types/RemoveArraySymbol"), exports);
|
|
31
32
|
__exportStar(require("./types/RemoveLastProperty"), exports);
|
|
33
|
+
__exportStar(require("./types/StringToDeepObject"), exports);
|
|
32
34
|
__exportStar(require("./types/ValueType"), exports);
|
|
33
35
|
//# sourceMappingURL=index.js.map
|
package/bin/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,+DAA6C;AAC7C,yDAAuC;AACvC,yDAAuC;AACvC,4DAA0C;AAC1C,oDAAkC;AAClC,gDAA8B;AAC9B,oDAAkC;AAClC,kEAAgD;AAChD,kDAAgC;AAChC,gDAA8B;AAC9B,kDAAgC;AAChC,yDAAuC;AACvC,4DAA0C;AAC1C,6DAA2C;AAC3C,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2DAAyC;AACzC,+DAA6C;AAC7C,yDAAuC;AACvC,yDAAuC;AACvC,4DAA0C;AAC1C,oDAAkC;AAClC,gDAA8B;AAC9B,oDAAkC;AAClC,kEAAgD;AAChD,kDAAgC;AAChC,gDAA8B;AAC9B,kDAAgC;AAChC,yDAAuC;AACvC,4DAA0C;AAC1C,6DAA2C;AAC3C,6DAA2C;AAC3C,oDAAkC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ElementOf } from './ElementOf';
|
|
2
|
-
export type RemoveAfterDot<T extends object, K extends string> = K extends `${infer First}.${infer Last}` ? First extends keyof T ? T[First] extends Array<any> ? `${First}[*].${string}` : T[First] extends object ? `${First}.${RemoveAfterDot<T[First], Last>}` : never : First extends '[*]' ? T extends Array<any> ? RemoveAfterDot<ElementOf<T>, Last> : never : First extends `${infer Second extends string}[*]` ? Second extends keyof T ? T[Second] extends object ? RemoveAfterDot<T[Second], Last> : never : never : never : K extends keyof T ? T[K] extends Array<any> ? `${K}[*].${string}` : `${K}.${string}` : never;
|
|
2
|
+
export type RemoveAfterDot<T extends object, K extends string> = K extends `${infer First}.${infer Last}` ? First extends keyof T ? T[First] extends Array<any> ? `${First}[*].${string}` : T[First] extends object ? `${First}.${RemoveAfterDot<T[First], Last>}` : never : First extends '[*]' ? T extends Array<any> ? RemoveAfterDot<ElementOf<T>, Last> : never : First extends `${infer Second extends string}[*]` ? Second extends keyof T ? T[Second] extends object ? `${First}.${RemoveAfterDot<T[Second], Last>}` : never : never : never : K extends keyof T ? T[K] extends Array<any> ? `${K}[*].${string}` : `${K}.${string}` : T extends Array<any> ? RemoveAfterDot<ElementOf<T>, K> : never;
|
|
3
3
|
//# sourceMappingURL=RemoveAfterDot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoveAfterDot.d.ts","sourceRoot":"","sources":["../../../src/types/RemoveAfterDot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GACrG,KAAK,SAAS,MAAM,CAAC,GACnB,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GACzB,GAAG,KAAK,OAAO,MAAM,EAAE,GACvB,CAAC,CAAC,KAAK,CAAC,SAAS,MAAM,GACrB,GAAG,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,GAC5C,KAAK,GACT,KAAK,SAAS,KAAK,GACjB,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAClB,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAClC,KAAK,GACP,KAAK,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,KAAK,GAC/C,MAAM,SAAS,MAAM,CAAC,GACpB,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GACtB,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"RemoveAfterDot.d.ts","sourceRoot":"","sources":["../../../src/types/RemoveAfterDot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GACrG,KAAK,SAAS,MAAM,CAAC,GACnB,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GACzB,GAAG,KAAK,OAAO,MAAM,EAAE,GACvB,CAAC,CAAC,KAAK,CAAC,SAAS,MAAM,GACrB,GAAG,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,GAC5C,KAAK,GACT,KAAK,SAAS,KAAK,GACjB,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAClB,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAClC,KAAK,GACP,KAAK,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,KAAK,GAC/C,MAAM,SAAS,MAAM,CAAC,GACpB,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GACtB,GAAG,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,GAC7C,KAAK,GACP,KAAK,GACP,KAAK,GACX,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GACrB,GAAG,CAAC,OAAO,MAAM,EAAE,GACnB,GAAG,CAAC,IAAI,MAAM,EAAE,GAClB,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAClB,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAC/B,KAAK,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StringType } from '@kakasoo/proto-typescript';
|
|
2
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
3
|
+
type BeforeDot<T extends string> = T extends `${infer Before}.${infer _}` ? Before : never;
|
|
4
|
+
type AfterDot<T extends string> = T extends `${infer _}.${infer After}` ? After : never;
|
|
5
|
+
type ValueOf<T> = T[keyof T];
|
|
6
|
+
type ToString<T> = T extends string ? T : T extends number ? `${T}` : never;
|
|
7
|
+
export type StringToDeepObject<T extends string, P extends string[] = StringType.Split<T, ','>> = UnionToIntersection<ValueOf<{
|
|
8
|
+
[key in P[number]]: StringType.Includes<key, '.'> extends true ? Record<BeforeDot<key>, StringToDeepObject<ToString<AfterDot<key>>>> : Record<key, any>;
|
|
9
|
+
}>>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=StringToDeepObject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringToDeepObject.d.ts","sourceRoot":"","sources":["../../../src/types/StringToDeepObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AAChH,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;AAC3F,KAAK,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;AACxF,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;AAE5E,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,mBAAmB,CACnH,OAAO,CAAC;KACL,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,IAAI,GAC1D,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GACnE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;CACrB,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringToDeepObject.js","sourceRoot":"","sources":["../../../src/types/StringToDeepObject.ts"],"names":[],"mappings":""}
|