@skmtc/core 0.0.366 → 0.0.367
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/esm/typescript/FunctionParameter.js +3 -9
- package/esm/typescript/List.d.ts +22 -8
- package/esm/typescript/List.d.ts.map +1 -1
- package/esm/typescript/List.js +28 -4
- package/package.json +1 -1
- package/script/typescript/FunctionParameter.js +3 -9
- package/script/typescript/List.d.ts +22 -8
- package/script/typescript/List.d.ts.map +1 -1
- package/script/typescript/List.js +30 -5
|
@@ -48,7 +48,7 @@ export class FunctionParameter {
|
|
|
48
48
|
.with({ type: 'void' }, () => List.toEmpty())
|
|
49
49
|
.with({ type: 'regular' }, ({ name }) => List.toSingle(name))
|
|
50
50
|
.with({ type: 'destructured' }, ({ typeDefinition }) => {
|
|
51
|
-
return List.
|
|
51
|
+
return List.fromKeys(typeDefinition.value.objectProperties?.properties).toObjectPlain();
|
|
52
52
|
})
|
|
53
53
|
.exhaustive();
|
|
54
54
|
}
|
|
@@ -74,13 +74,7 @@ export class FunctionParameter {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
const toDestructured = (typeDefinition) => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
.map(value => value.toString())
|
|
80
|
-
.map(value => {
|
|
81
|
-
return isIdentifierName(value)
|
|
82
|
-
? value
|
|
83
|
-
: List.toKeyValue(value, camelCase(value));
|
|
77
|
+
return List.fromKeys(typeDefinition.value.objectProperties?.properties).toObject(key => {
|
|
78
|
+
return isIdentifierName(key) ? key : List.toKeyValue(key, camelCase(key));
|
|
84
79
|
});
|
|
85
|
-
return List.toObject(camelised);
|
|
86
80
|
};
|
package/esm/typescript/List.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { Stringable } from '../dsl/Stringable.js';
|
|
2
|
+
export type ListObject<V extends Stringable> = List<V[], ', ', '{}'>;
|
|
3
|
+
export type ListLines<V extends Stringable> = List<V[], '\n', 'none'>;
|
|
4
|
+
export type ListArray<V extends Stringable> = List<V[], ', ', '[]'>;
|
|
5
|
+
export type ListParams<V extends Stringable> = List<V[], ', ', '()'>;
|
|
2
6
|
type BookendsType = '[]' | '{}' | '()' | '<>' | 'none';
|
|
3
7
|
type ConstructorOptions<Separator extends string = ', ', Bookends extends BookendsType = 'none'> = {
|
|
4
8
|
separator?: Separator;
|
|
@@ -47,7 +51,7 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
47
51
|
* @param record
|
|
48
52
|
* @returns `record` with `undefined` values filtered out
|
|
49
53
|
*/
|
|
50
|
-
static toFilteredRecord: (record: Record<string, undefined | Stringable | Stringable[] | List>) => List<Stringable[],
|
|
54
|
+
static toFilteredRecord: (record: Record<string, undefined | Stringable | Stringable[] | List>) => ListObject<List<[string, Stringable | List<Stringable[], string, BookendsType> | Stringable[]], ": ", "none">>;
|
|
51
55
|
/**
|
|
52
56
|
* Join `key` and `value` using `: ` as separator
|
|
53
57
|
* @param key
|
|
@@ -67,31 +71,32 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
67
71
|
* @param values
|
|
68
72
|
* @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
|
|
69
73
|
*/
|
|
70
|
-
static toObject: (values: (
|
|
74
|
+
static toObject: <V extends Stringable>(values: (V | undefined)[]) => ListObject<V>;
|
|
71
75
|
/**
|
|
72
76
|
* Join `values` using `, ` as separator and wrap in `[` and `]`
|
|
73
77
|
* @param values
|
|
74
78
|
* @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
|
|
75
79
|
*/
|
|
76
|
-
static toArray: (values: (
|
|
80
|
+
static toArray: <V extends Stringable>(values: (V | undefined)[]) => ListArray<V>;
|
|
77
81
|
/**
|
|
78
82
|
* Join `values` using `, ` as separator and wrap in `(` and `)`
|
|
79
83
|
* @param values
|
|
80
84
|
* @returns `values` joined with `, ` as separator and wrapped in `(` and `)`
|
|
81
85
|
*/
|
|
82
|
-
static toParams: (values: (
|
|
86
|
+
static toParams: <V extends Stringable>(values: (V | undefined)[]) => ListParams<V>;
|
|
83
87
|
/**
|
|
84
88
|
* Join `values` using `\n` as separator without a wrapper
|
|
85
89
|
* @param values
|
|
86
90
|
* @returns `values` joined with `\n` as separator without a wrapper
|
|
87
91
|
*/
|
|
88
|
-
static toLines: (values: (
|
|
92
|
+
static toLines: <V extends Stringable>(values: (V | undefined)[]) => ListLines<V>;
|
|
89
93
|
/**
|
|
90
|
-
* Create a
|
|
94
|
+
* Create a KeyList using the keys of @param record
|
|
95
|
+
* @afdafg
|
|
91
96
|
* @param record
|
|
92
|
-
* @returns
|
|
97
|
+
* @returns KeyList
|
|
93
98
|
*/
|
|
94
|
-
static
|
|
99
|
+
static fromKeys: (record: Record<string, Stringable> | undefined) => KeyList;
|
|
95
100
|
/**
|
|
96
101
|
* Create a keyValue pair if `value` is not undefined and is not an empty array or List.
|
|
97
102
|
* Return `undefined` otherwise.
|
|
@@ -109,5 +114,14 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
109
114
|
*/
|
|
110
115
|
static hasValue: (value: undefined | Stringable | Stringable[] | List) => value is Stringable | Stringable[] | List;
|
|
111
116
|
}
|
|
117
|
+
type MapFn<V extends Stringable> = (key: string, index: number) => V;
|
|
118
|
+
export declare class KeyList {
|
|
119
|
+
keys: string[];
|
|
120
|
+
constructor(keys: string[]);
|
|
121
|
+
toObject<V extends Stringable>(mapFn: MapFn<V>): ListObject<V>;
|
|
122
|
+
toObjectPlain(): ListObject<string>;
|
|
123
|
+
toLines<V extends Stringable>(mapFn: MapFn<V>): ListLines<V>;
|
|
124
|
+
toLinesPlain(): ListLines<string>;
|
|
125
|
+
}
|
|
112
126
|
export {};
|
|
113
127
|
//# sourceMappingURL=List.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../src/typescript/List.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGtD,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAEtD,KAAK,kBAAkB,CACrB,SAAS,SAAS,MAAM,GAAG,IAAI,EAC/B,QAAQ,SAAS,YAAY,GAAG,MAAM,IACpC;IACF,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,KAAK,gBAAgB,CAAC,OAAO,IAAI,OAAO,SAAS,KAAK,CAAC,MAAM,IAAI,CAAC,GAC9D,IAAI,GACJ,KAAK,CAAA;AAET,KAAK,wBAAwB,CAC3B,KAAK,SAAS,SAAS,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,IACxD,KAAK,SAAS,SAAS,GACvB,SAAS,GACT,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAElE,KAAK,mBAAmB,CACtB,KAAK,SAAS,UAAU,EACxB,SAAS,SAAS,OAAO,IACvB,SAAS,SAAS,IAAI,GACtB,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAC3B,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAE/B,qBAAa,IAAI,CACf,MAAM,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,EAC1C,SAAS,SAAS,MAAM,GAAG,MAAM,EACjC,QAAQ,SAAS,YAAY,GAAG,YAAY;IAE5C,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAA;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;gBAEhB,MAAM,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,EAChD,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAE,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAM;IAQvE,QAAQ,IAAI,MAAM;IAYlB;;;OAGG;IACH,MAAM,CAAC,OAAO,QAAO,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAE7C;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,UAAW,UAAU,KAAG,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAEtE;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,aAAa,GAAI,KAAK,SAAS,UAAU,EAAE,SAAS,SAAS,OAAO,SAClE,KAAK,aACD,SAAS,KACnB,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAI7D;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,WACL,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,KACvD,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAMhC;IAED;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,WACb,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../src/typescript/List.ts"],"names":[],"mappings":"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"}
|
package/esm/typescript/List.js
CHANGED
|
@@ -194,16 +194,17 @@ Object.defineProperty(List, "toLines", {
|
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
196
|
/**
|
|
197
|
-
* Create a
|
|
197
|
+
* Create a KeyList using the keys of @param record
|
|
198
|
+
* @afdafg
|
|
198
199
|
* @param record
|
|
199
|
-
* @returns
|
|
200
|
+
* @returns KeyList
|
|
200
201
|
*/
|
|
201
|
-
Object.defineProperty(List, "
|
|
202
|
+
Object.defineProperty(List, "fromKeys", {
|
|
202
203
|
enumerable: true,
|
|
203
204
|
configurable: true,
|
|
204
205
|
writable: true,
|
|
205
206
|
value: (record) => {
|
|
206
|
-
return new
|
|
207
|
+
return new KeyList(Object.keys(record ?? {}));
|
|
207
208
|
}
|
|
208
209
|
});
|
|
209
210
|
/**
|
|
@@ -246,3 +247,26 @@ Object.defineProperty(List, "hasValue", {
|
|
|
246
247
|
return true;
|
|
247
248
|
}
|
|
248
249
|
});
|
|
250
|
+
export class KeyList {
|
|
251
|
+
constructor(keys) {
|
|
252
|
+
Object.defineProperty(this, "keys", {
|
|
253
|
+
enumerable: true,
|
|
254
|
+
configurable: true,
|
|
255
|
+
writable: true,
|
|
256
|
+
value: void 0
|
|
257
|
+
});
|
|
258
|
+
this.keys = keys;
|
|
259
|
+
}
|
|
260
|
+
toObject(mapFn) {
|
|
261
|
+
return List.toObject(this.keys.map((key, index) => mapFn(key, index)));
|
|
262
|
+
}
|
|
263
|
+
toObjectPlain() {
|
|
264
|
+
return List.toObject(this.keys);
|
|
265
|
+
}
|
|
266
|
+
toLines(mapFn) {
|
|
267
|
+
return List.toLines(this.keys.map((key, index) => mapFn(key, index)));
|
|
268
|
+
}
|
|
269
|
+
toLinesPlain() {
|
|
270
|
+
return List.toLines(this.keys);
|
|
271
|
+
}
|
|
272
|
+
}
|
package/package.json
CHANGED
|
@@ -51,7 +51,7 @@ class FunctionParameter {
|
|
|
51
51
|
.with({ type: 'void' }, () => List_js_1.List.toEmpty())
|
|
52
52
|
.with({ type: 'regular' }, ({ name }) => List_js_1.List.toSingle(name))
|
|
53
53
|
.with({ type: 'destructured' }, ({ typeDefinition }) => {
|
|
54
|
-
return List_js_1.List.
|
|
54
|
+
return List_js_1.List.fromKeys(typeDefinition.value.objectProperties?.properties).toObjectPlain();
|
|
55
55
|
})
|
|
56
56
|
.exhaustive();
|
|
57
57
|
}
|
|
@@ -78,13 +78,7 @@ class FunctionParameter {
|
|
|
78
78
|
}
|
|
79
79
|
exports.FunctionParameter = FunctionParameter;
|
|
80
80
|
const toDestructured = (typeDefinition) => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
.map(value => value.toString())
|
|
84
|
-
.map(value => {
|
|
85
|
-
return (0, helper_validator_identifier_1.isIdentifierName)(value)
|
|
86
|
-
? value
|
|
87
|
-
: List_js_1.List.toKeyValue(value, (0, lodash_es_1.camelCase)(value));
|
|
81
|
+
return List_js_1.List.fromKeys(typeDefinition.value.objectProperties?.properties).toObject(key => {
|
|
82
|
+
return (0, helper_validator_identifier_1.isIdentifierName)(key) ? key : List_js_1.List.toKeyValue(key, (0, lodash_es_1.camelCase)(key));
|
|
88
83
|
});
|
|
89
|
-
return List_js_1.List.toObject(camelised);
|
|
90
84
|
};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { Stringable } from '../dsl/Stringable.js';
|
|
2
|
+
export type ListObject<V extends Stringable> = List<V[], ', ', '{}'>;
|
|
3
|
+
export type ListLines<V extends Stringable> = List<V[], '\n', 'none'>;
|
|
4
|
+
export type ListArray<V extends Stringable> = List<V[], ', ', '[]'>;
|
|
5
|
+
export type ListParams<V extends Stringable> = List<V[], ', ', '()'>;
|
|
2
6
|
type BookendsType = '[]' | '{}' | '()' | '<>' | 'none';
|
|
3
7
|
type ConstructorOptions<Separator extends string = ', ', Bookends extends BookendsType = 'none'> = {
|
|
4
8
|
separator?: Separator;
|
|
@@ -47,7 +51,7 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
47
51
|
* @param record
|
|
48
52
|
* @returns `record` with `undefined` values filtered out
|
|
49
53
|
*/
|
|
50
|
-
static toFilteredRecord: (record: Record<string, undefined | Stringable | Stringable[] | List>) => List<Stringable[],
|
|
54
|
+
static toFilteredRecord: (record: Record<string, undefined | Stringable | Stringable[] | List>) => ListObject<List<[string, Stringable | List<Stringable[], string, BookendsType> | Stringable[]], ": ", "none">>;
|
|
51
55
|
/**
|
|
52
56
|
* Join `key` and `value` using `: ` as separator
|
|
53
57
|
* @param key
|
|
@@ -67,31 +71,32 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
67
71
|
* @param values
|
|
68
72
|
* @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
|
|
69
73
|
*/
|
|
70
|
-
static toObject: (values: (
|
|
74
|
+
static toObject: <V extends Stringable>(values: (V | undefined)[]) => ListObject<V>;
|
|
71
75
|
/**
|
|
72
76
|
* Join `values` using `, ` as separator and wrap in `[` and `]`
|
|
73
77
|
* @param values
|
|
74
78
|
* @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
|
|
75
79
|
*/
|
|
76
|
-
static toArray: (values: (
|
|
80
|
+
static toArray: <V extends Stringable>(values: (V | undefined)[]) => ListArray<V>;
|
|
77
81
|
/**
|
|
78
82
|
* Join `values` using `, ` as separator and wrap in `(` and `)`
|
|
79
83
|
* @param values
|
|
80
84
|
* @returns `values` joined with `, ` as separator and wrapped in `(` and `)`
|
|
81
85
|
*/
|
|
82
|
-
static toParams: (values: (
|
|
86
|
+
static toParams: <V extends Stringable>(values: (V | undefined)[]) => ListParams<V>;
|
|
83
87
|
/**
|
|
84
88
|
* Join `values` using `\n` as separator without a wrapper
|
|
85
89
|
* @param values
|
|
86
90
|
* @returns `values` joined with `\n` as separator without a wrapper
|
|
87
91
|
*/
|
|
88
|
-
static toLines: (values: (
|
|
92
|
+
static toLines: <V extends Stringable>(values: (V | undefined)[]) => ListLines<V>;
|
|
89
93
|
/**
|
|
90
|
-
* Create a
|
|
94
|
+
* Create a KeyList using the keys of @param record
|
|
95
|
+
* @afdafg
|
|
91
96
|
* @param record
|
|
92
|
-
* @returns
|
|
97
|
+
* @returns KeyList
|
|
93
98
|
*/
|
|
94
|
-
static
|
|
99
|
+
static fromKeys: (record: Record<string, Stringable> | undefined) => KeyList;
|
|
95
100
|
/**
|
|
96
101
|
* Create a keyValue pair if `value` is not undefined and is not an empty array or List.
|
|
97
102
|
* Return `undefined` otherwise.
|
|
@@ -109,5 +114,14 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
109
114
|
*/
|
|
110
115
|
static hasValue: (value: undefined | Stringable | Stringable[] | List) => value is Stringable | Stringable[] | List;
|
|
111
116
|
}
|
|
117
|
+
type MapFn<V extends Stringable> = (key: string, index: number) => V;
|
|
118
|
+
export declare class KeyList {
|
|
119
|
+
keys: string[];
|
|
120
|
+
constructor(keys: string[]);
|
|
121
|
+
toObject<V extends Stringable>(mapFn: MapFn<V>): ListObject<V>;
|
|
122
|
+
toObjectPlain(): ListObject<string>;
|
|
123
|
+
toLines<V extends Stringable>(mapFn: MapFn<V>): ListLines<V>;
|
|
124
|
+
toLinesPlain(): ListLines<string>;
|
|
125
|
+
}
|
|
112
126
|
export {};
|
|
113
127
|
//# sourceMappingURL=List.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../src/typescript/List.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGtD,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAEtD,KAAK,kBAAkB,CACrB,SAAS,SAAS,MAAM,GAAG,IAAI,EAC/B,QAAQ,SAAS,YAAY,GAAG,MAAM,IACpC;IACF,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,KAAK,gBAAgB,CAAC,OAAO,IAAI,OAAO,SAAS,KAAK,CAAC,MAAM,IAAI,CAAC,GAC9D,IAAI,GACJ,KAAK,CAAA;AAET,KAAK,wBAAwB,CAC3B,KAAK,SAAS,SAAS,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,IACxD,KAAK,SAAS,SAAS,GACvB,SAAS,GACT,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAElE,KAAK,mBAAmB,CACtB,KAAK,SAAS,UAAU,EACxB,SAAS,SAAS,OAAO,IACvB,SAAS,SAAS,IAAI,GACtB,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAC3B,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAE/B,qBAAa,IAAI,CACf,MAAM,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,EAC1C,SAAS,SAAS,MAAM,GAAG,MAAM,EACjC,QAAQ,SAAS,YAAY,GAAG,YAAY;IAE5C,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAA;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;gBAEhB,MAAM,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,EAChD,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAE,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAM;IAQvE,QAAQ,IAAI,MAAM;IAYlB;;;OAGG;IACH,MAAM,CAAC,OAAO,QAAO,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAE7C;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,UAAW,UAAU,KAAG,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAEtE;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,aAAa,GAAI,KAAK,SAAS,UAAU,EAAE,SAAS,SAAS,OAAO,SAClE,KAAK,aACD,SAAS,KACnB,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAI7D;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,WACL,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,KACvD,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAMhC;IAED;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,WACb,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../src/typescript/List.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.List = void 0;
|
|
3
|
+
exports.KeyList = exports.List = void 0;
|
|
4
4
|
const ts_pattern_1 = require("ts-pattern");
|
|
5
5
|
class List {
|
|
6
6
|
constructor(values, { separator, bookends } = {}) {
|
|
@@ -198,16 +198,17 @@ Object.defineProperty(List, "toLines", {
|
|
|
198
198
|
}
|
|
199
199
|
});
|
|
200
200
|
/**
|
|
201
|
-
* Create a
|
|
201
|
+
* Create a KeyList using the keys of @param record
|
|
202
|
+
* @afdafg
|
|
202
203
|
* @param record
|
|
203
|
-
* @returns
|
|
204
|
+
* @returns KeyList
|
|
204
205
|
*/
|
|
205
|
-
Object.defineProperty(List, "
|
|
206
|
+
Object.defineProperty(List, "fromKeys", {
|
|
206
207
|
enumerable: true,
|
|
207
208
|
configurable: true,
|
|
208
209
|
writable: true,
|
|
209
210
|
value: (record) => {
|
|
210
|
-
return new
|
|
211
|
+
return new KeyList(Object.keys(record ?? {}));
|
|
211
212
|
}
|
|
212
213
|
});
|
|
213
214
|
/**
|
|
@@ -250,3 +251,27 @@ Object.defineProperty(List, "hasValue", {
|
|
|
250
251
|
return true;
|
|
251
252
|
}
|
|
252
253
|
});
|
|
254
|
+
class KeyList {
|
|
255
|
+
constructor(keys) {
|
|
256
|
+
Object.defineProperty(this, "keys", {
|
|
257
|
+
enumerable: true,
|
|
258
|
+
configurable: true,
|
|
259
|
+
writable: true,
|
|
260
|
+
value: void 0
|
|
261
|
+
});
|
|
262
|
+
this.keys = keys;
|
|
263
|
+
}
|
|
264
|
+
toObject(mapFn) {
|
|
265
|
+
return List.toObject(this.keys.map((key, index) => mapFn(key, index)));
|
|
266
|
+
}
|
|
267
|
+
toObjectPlain() {
|
|
268
|
+
return List.toObject(this.keys);
|
|
269
|
+
}
|
|
270
|
+
toLines(mapFn) {
|
|
271
|
+
return List.toLines(this.keys.map((key, index) => mapFn(key, index)));
|
|
272
|
+
}
|
|
273
|
+
toLinesPlain() {
|
|
274
|
+
return List.toLines(this.keys);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
exports.KeyList = KeyList;
|