@skmtc/core 0.0.541 → 0.0.543
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.d.ts.map +1 -1
- package/esm/typescript/FunctionParameter.js +5 -3
- package/esm/typescript/List.d.ts +8 -3
- package/esm/typescript/List.d.ts.map +1 -1
- package/esm/typescript/List.js +15 -5
- package/package.json +1 -1
- package/script/typescript/FunctionParameter.d.ts.map +1 -1
- package/script/typescript/FunctionParameter.js +5 -3
- package/script/typescript/List.d.ts +8 -3
- package/script/typescript/List.d.ts.map +1 -1
- package/script/typescript/List.js +15 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionParameter.d.ts","sourceRoot":"","sources":["../../src/typescript/FunctionParameter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"FunctionParameter.d.ts","sourceRoot":"","sources":["../../src/typescript/FunctionParameter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAwB,MAAM,WAAW,CAAA;AAGtD,KAAK,qBAAqB,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,UAAU,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAA;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,KAAK,mBAAmB,GAAG,aAAa,GAAG,qBAAqB,GAAG,gBAAgB,CAAA;AAEnF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,cAAc,CAAA;IACpB,cAAc,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAC5C,QAAQ,EAAE,IAAI,CAAA;CACf,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;IAC3C,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,qBAAa,iBAAiB;IAC5B,UAAU,EAAE,mBAAmB,CAAA;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;gBAEP,IAAI,EAAE,qBAAqB;IA2BvC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAalC,cAAc,IAAI,IAAI;IAUtB,SAAS,IAAI,MAAM;IAUnB,QAAQ,IAAI,MAAM;CAuBnB"}
|
|
@@ -64,7 +64,7 @@ export class FunctionParameter {
|
|
|
64
64
|
.with({ type: 'void' }, () => '')
|
|
65
65
|
.with({ type: 'regular' }, ({ name }) => `${name}`)
|
|
66
66
|
.with({ type: 'destructured' }, ({ typeDefinition }) => {
|
|
67
|
-
return toDestructured(typeDefinition).toString();
|
|
67
|
+
return toDestructured(typeDefinition, { skipEmpty: this.skipEmpty }).toString();
|
|
68
68
|
})
|
|
69
69
|
.exhaustive();
|
|
70
70
|
}
|
|
@@ -81,13 +81,15 @@ export class FunctionParameter {
|
|
|
81
81
|
return '';
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
return List.toKeyValue(toDestructured(typeDefinition).toString(), typeDefinition.identifier).toString();
|
|
84
|
+
return List.toKeyValue(toDestructured(typeDefinition, { skipEmpty: this.skipEmpty }).toString(), typeDefinition.identifier).toString();
|
|
85
85
|
})
|
|
86
86
|
.exhaustive();
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
const toDestructured = (typeDefinition) => {
|
|
89
|
+
const toDestructured = (typeDefinition, { skipEmpty } = {}) => {
|
|
90
90
|
return List.fromKeys(typeDefinition.value.objectProperties?.properties).toObject(key => {
|
|
91
91
|
return isIdentifierName(key) ? key : List.toKeyValue(key, camelCase(key));
|
|
92
|
+
}, {
|
|
93
|
+
skipEmpty
|
|
92
94
|
});
|
|
93
95
|
};
|
package/esm/typescript/List.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export type ListObject<V extends Stringable> = List<V[], ', ', '{}'>;
|
|
|
3
3
|
export type ListLines<V extends Stringable> = List<V[], '\n', 'none'>;
|
|
4
4
|
export type ListArray<V extends Stringable> = List<V[], ', ', '[]'>;
|
|
5
5
|
export type ListParams<V extends Stringable> = List<V[], ', ', '()'>;
|
|
6
|
+
export type SkipEmptyOption = {
|
|
7
|
+
skipEmpty?: boolean;
|
|
8
|
+
};
|
|
6
9
|
export type ListKeyValue<Key extends Stringable, Value extends Stringable> = List<[
|
|
7
10
|
Key,
|
|
8
11
|
Value
|
|
@@ -11,6 +14,7 @@ type BookendsType = '[]' | '{}' | '()' | '<>' | 'none';
|
|
|
11
14
|
type ConstructorOptions<Separator extends string = ', ', Bookends extends BookendsType = 'none'> = {
|
|
12
15
|
separator?: Separator;
|
|
13
16
|
bookends?: Bookends;
|
|
17
|
+
skipEmpty?: boolean;
|
|
14
18
|
};
|
|
15
19
|
type ExtractArrayItem<ArrayOf> = ArrayOf extends Array<infer Item> ? Item : never;
|
|
16
20
|
type ToFilteredKeyValueReturn<Value extends undefined | Stringable | Stringable[] | List> = Value extends undefined ? undefined : List<[string, Stringable | Stringable[] | List], ': ', 'none'>;
|
|
@@ -19,7 +23,8 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
19
23
|
values: ExtractArrayItem<Values>[];
|
|
20
24
|
separator: Separator;
|
|
21
25
|
bookends: Bookends;
|
|
22
|
-
|
|
26
|
+
skipEmpty: boolean;
|
|
27
|
+
constructor(values: (ExtractArrayItem<Values> | undefined)[], { separator, bookends, skipEmpty }?: ConstructorOptions<Separator, Bookends>);
|
|
23
28
|
toString(): string;
|
|
24
29
|
/**
|
|
25
30
|
* Create an empty List that will render as an empty string ''
|
|
@@ -75,7 +80,7 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
75
80
|
* @param values
|
|
76
81
|
* @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
|
|
77
82
|
*/
|
|
78
|
-
static toObject: <V extends Stringable>(values: (V | undefined)[]) => ListObject<V>;
|
|
83
|
+
static toObject: <V extends Stringable>(values: (V | undefined)[], { skipEmpty }?: SkipEmptyOption) => ListObject<V>;
|
|
79
84
|
/**
|
|
80
85
|
* Join `values` using `, ` as separator and wrap in `[` and `]`
|
|
81
86
|
* @param values
|
|
@@ -129,7 +134,7 @@ type KeyMapFn<V extends Stringable> = (key: string, index: number) => V;
|
|
|
129
134
|
export declare class KeyList {
|
|
130
135
|
keys: string[];
|
|
131
136
|
constructor(keys: string[]);
|
|
132
|
-
toObject<V extends Stringable>(mapFn: KeyMapFn<V
|
|
137
|
+
toObject<V extends Stringable>(mapFn: KeyMapFn<V>, { skipEmpty }?: SkipEmptyOption): ListObject<V>;
|
|
133
138
|
toObjectPlain(): ListObject<string>;
|
|
134
139
|
toLines<V extends Stringable>(mapFn: KeyMapFn<V>): ListLines<V>;
|
|
135
140
|
toLinesPlain(): ListLines<string>;
|
|
@@ -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,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,UAAU,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACpE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AACrE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACnE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,UAAU,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEpE,MAAM,MAAM,YAAY,CAAC,GAAG,SAAS,UAAU,EAAE,KAAK,SAAS,UAAU,IAAI,IAAI,CAC/E;IAAC,GAAG;IAAE,KAAK;CAAC,EACZ,IAAI,EACJ,MAAM,CACP,CAAA;AAED,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAEtD,KAAK,kBAAkB,CAAC,SAAS,SAAS,MAAM,GAAG,IAAI,EAAE,QAAQ,SAAS,YAAY,GAAG,MAAM,IAAI;IACjG,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,GAAG,IAAI,GAAG,KAAK,CAAA;AAEjF,KAAK,wBAAwB,CAAC,KAAK,SAAS,SAAS,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,IACtF,KAAK,SAAS,SAAS,GACnB,SAAS,GACT,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAEpE,KAAK,mBAAmB,CACtB,KAAK,SAAS,UAAU,EACxB,SAAS,SAAS,OAAO,IACvB,SAAS,SAAS,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAEtF,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;
|
|
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { match } from 'ts-pattern';
|
|
2
2
|
export class List {
|
|
3
|
-
constructor(values, { separator, bookends } = {}) {
|
|
3
|
+
constructor(values, { separator, bookends, skipEmpty } = {}) {
|
|
4
4
|
Object.defineProperty(this, "values", {
|
|
5
5
|
enumerable: true,
|
|
6
6
|
configurable: true,
|
|
@@ -19,11 +19,21 @@ export class List {
|
|
|
19
19
|
writable: true,
|
|
20
20
|
value: void 0
|
|
21
21
|
});
|
|
22
|
+
Object.defineProperty(this, "skipEmpty", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: void 0
|
|
27
|
+
});
|
|
22
28
|
this.values = values.filter(value => value !== undefined);
|
|
23
29
|
this.separator = separator ?? ', ';
|
|
24
30
|
this.bookends = bookends ?? 'none';
|
|
31
|
+
this.skipEmpty = skipEmpty ?? false;
|
|
25
32
|
}
|
|
26
33
|
toString() {
|
|
34
|
+
if (this.skipEmpty && this.values.length === 0) {
|
|
35
|
+
return '';
|
|
36
|
+
}
|
|
27
37
|
const joined = this.values.join(this.separator);
|
|
28
38
|
return match(this.bookends)
|
|
29
39
|
.with('[]', () => `[${joined}]`)
|
|
@@ -150,8 +160,8 @@ Object.defineProperty(List, "toObject", {
|
|
|
150
160
|
enumerable: true,
|
|
151
161
|
configurable: true,
|
|
152
162
|
writable: true,
|
|
153
|
-
value: (values) => {
|
|
154
|
-
return new List(values, { bookends: '{}' });
|
|
163
|
+
value: (values, { skipEmpty } = {}) => {
|
|
164
|
+
return new List(values, { bookends: '{}', skipEmpty });
|
|
155
165
|
}
|
|
156
166
|
});
|
|
157
167
|
/**
|
|
@@ -271,8 +281,8 @@ export class KeyList {
|
|
|
271
281
|
});
|
|
272
282
|
this.keys = keys;
|
|
273
283
|
}
|
|
274
|
-
toObject(mapFn) {
|
|
275
|
-
return List.toObject(this.keys.map((key, index) => mapFn(key, index)));
|
|
284
|
+
toObject(mapFn, { skipEmpty } = {}) {
|
|
285
|
+
return List.toObject(this.keys.map((key, index) => mapFn(key, index)), { skipEmpty });
|
|
276
286
|
}
|
|
277
287
|
toObjectPlain() {
|
|
278
288
|
return List.toObject(this.keys);
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionParameter.d.ts","sourceRoot":"","sources":["../../src/typescript/FunctionParameter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"FunctionParameter.d.ts","sourceRoot":"","sources":["../../src/typescript/FunctionParameter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAwB,MAAM,WAAW,CAAA;AAGtD,KAAK,qBAAqB,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,UAAU,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAA;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,KAAK,mBAAmB,GAAG,aAAa,GAAG,qBAAqB,GAAG,gBAAgB,CAAA;AAEnF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,cAAc,CAAA;IACpB,cAAc,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAC5C,QAAQ,EAAE,IAAI,CAAA;CACf,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;IAC3C,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,qBAAa,iBAAiB;IAC5B,UAAU,EAAE,mBAAmB,CAAA;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;gBAEP,IAAI,EAAE,qBAAqB;IA2BvC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAalC,cAAc,IAAI,IAAI;IAUtB,SAAS,IAAI,MAAM;IAUnB,QAAQ,IAAI,MAAM;CAuBnB"}
|
|
@@ -67,7 +67,7 @@ class FunctionParameter {
|
|
|
67
67
|
.with({ type: 'void' }, () => '')
|
|
68
68
|
.with({ type: 'regular' }, ({ name }) => `${name}`)
|
|
69
69
|
.with({ type: 'destructured' }, ({ typeDefinition }) => {
|
|
70
|
-
return toDestructured(typeDefinition).toString();
|
|
70
|
+
return toDestructured(typeDefinition, { skipEmpty: this.skipEmpty }).toString();
|
|
71
71
|
})
|
|
72
72
|
.exhaustive();
|
|
73
73
|
}
|
|
@@ -84,14 +84,16 @@ class FunctionParameter {
|
|
|
84
84
|
return '';
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
return List_js_1.List.toKeyValue(toDestructured(typeDefinition).toString(), typeDefinition.identifier).toString();
|
|
87
|
+
return List_js_1.List.toKeyValue(toDestructured(typeDefinition, { skipEmpty: this.skipEmpty }).toString(), typeDefinition.identifier).toString();
|
|
88
88
|
})
|
|
89
89
|
.exhaustive();
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
exports.FunctionParameter = FunctionParameter;
|
|
93
|
-
const toDestructured = (typeDefinition) => {
|
|
93
|
+
const toDestructured = (typeDefinition, { skipEmpty } = {}) => {
|
|
94
94
|
return List_js_1.List.fromKeys(typeDefinition.value.objectProperties?.properties).toObject(key => {
|
|
95
95
|
return (0, helper_validator_identifier_1.isIdentifierName)(key) ? key : List_js_1.List.toKeyValue(key, (0, lodash_es_1.camelCase)(key));
|
|
96
|
+
}, {
|
|
97
|
+
skipEmpty
|
|
96
98
|
});
|
|
97
99
|
};
|
|
@@ -3,6 +3,9 @@ export type ListObject<V extends Stringable> = List<V[], ', ', '{}'>;
|
|
|
3
3
|
export type ListLines<V extends Stringable> = List<V[], '\n', 'none'>;
|
|
4
4
|
export type ListArray<V extends Stringable> = List<V[], ', ', '[]'>;
|
|
5
5
|
export type ListParams<V extends Stringable> = List<V[], ', ', '()'>;
|
|
6
|
+
export type SkipEmptyOption = {
|
|
7
|
+
skipEmpty?: boolean;
|
|
8
|
+
};
|
|
6
9
|
export type ListKeyValue<Key extends Stringable, Value extends Stringable> = List<[
|
|
7
10
|
Key,
|
|
8
11
|
Value
|
|
@@ -11,6 +14,7 @@ type BookendsType = '[]' | '{}' | '()' | '<>' | 'none';
|
|
|
11
14
|
type ConstructorOptions<Separator extends string = ', ', Bookends extends BookendsType = 'none'> = {
|
|
12
15
|
separator?: Separator;
|
|
13
16
|
bookends?: Bookends;
|
|
17
|
+
skipEmpty?: boolean;
|
|
14
18
|
};
|
|
15
19
|
type ExtractArrayItem<ArrayOf> = ArrayOf extends Array<infer Item> ? Item : never;
|
|
16
20
|
type ToFilteredKeyValueReturn<Value extends undefined | Stringable | Stringable[] | List> = Value extends undefined ? undefined : List<[string, Stringable | Stringable[] | List], ': ', 'none'>;
|
|
@@ -19,7 +23,8 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
19
23
|
values: ExtractArrayItem<Values>[];
|
|
20
24
|
separator: Separator;
|
|
21
25
|
bookends: Bookends;
|
|
22
|
-
|
|
26
|
+
skipEmpty: boolean;
|
|
27
|
+
constructor(values: (ExtractArrayItem<Values> | undefined)[], { separator, bookends, skipEmpty }?: ConstructorOptions<Separator, Bookends>);
|
|
23
28
|
toString(): string;
|
|
24
29
|
/**
|
|
25
30
|
* Create an empty List that will render as an empty string ''
|
|
@@ -75,7 +80,7 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
|
|
|
75
80
|
* @param values
|
|
76
81
|
* @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
|
|
77
82
|
*/
|
|
78
|
-
static toObject: <V extends Stringable>(values: (V | undefined)[]) => ListObject<V>;
|
|
83
|
+
static toObject: <V extends Stringable>(values: (V | undefined)[], { skipEmpty }?: SkipEmptyOption) => ListObject<V>;
|
|
79
84
|
/**
|
|
80
85
|
* Join `values` using `, ` as separator and wrap in `[` and `]`
|
|
81
86
|
* @param values
|
|
@@ -129,7 +134,7 @@ type KeyMapFn<V extends Stringable> = (key: string, index: number) => V;
|
|
|
129
134
|
export declare class KeyList {
|
|
130
135
|
keys: string[];
|
|
131
136
|
constructor(keys: string[]);
|
|
132
|
-
toObject<V extends Stringable>(mapFn: KeyMapFn<V
|
|
137
|
+
toObject<V extends Stringable>(mapFn: KeyMapFn<V>, { skipEmpty }?: SkipEmptyOption): ListObject<V>;
|
|
133
138
|
toObjectPlain(): ListObject<string>;
|
|
134
139
|
toLines<V extends Stringable>(mapFn: KeyMapFn<V>): ListLines<V>;
|
|
135
140
|
toLinesPlain(): ListLines<string>;
|
|
@@ -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,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,UAAU,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACpE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AACrE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACnE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,UAAU,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEpE,MAAM,MAAM,YAAY,CAAC,GAAG,SAAS,UAAU,EAAE,KAAK,SAAS,UAAU,IAAI,IAAI,CAC/E;IAAC,GAAG;IAAE,KAAK;CAAC,EACZ,IAAI,EACJ,MAAM,CACP,CAAA;AAED,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAEtD,KAAK,kBAAkB,CAAC,SAAS,SAAS,MAAM,GAAG,IAAI,EAAE,QAAQ,SAAS,YAAY,GAAG,MAAM,IAAI;IACjG,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,GAAG,IAAI,GAAG,KAAK,CAAA;AAEjF,KAAK,wBAAwB,CAAC,KAAK,SAAS,SAAS,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,IACtF,KAAK,SAAS,SAAS,GACnB,SAAS,GACT,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAEpE,KAAK,mBAAmB,CACtB,KAAK,SAAS,UAAU,EACxB,SAAS,SAAS,OAAO,IACvB,SAAS,SAAS,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAEtF,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;
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../src/typescript/List.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EntryList = exports.KeyList = exports.List = void 0;
|
|
4
4
|
const ts_pattern_1 = require("ts-pattern");
|
|
5
5
|
class List {
|
|
6
|
-
constructor(values, { separator, bookends } = {}) {
|
|
6
|
+
constructor(values, { separator, bookends, skipEmpty } = {}) {
|
|
7
7
|
Object.defineProperty(this, "values", {
|
|
8
8
|
enumerable: true,
|
|
9
9
|
configurable: true,
|
|
@@ -22,11 +22,21 @@ class List {
|
|
|
22
22
|
writable: true,
|
|
23
23
|
value: void 0
|
|
24
24
|
});
|
|
25
|
+
Object.defineProperty(this, "skipEmpty", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true,
|
|
29
|
+
value: void 0
|
|
30
|
+
});
|
|
25
31
|
this.values = values.filter(value => value !== undefined);
|
|
26
32
|
this.separator = separator ?? ', ';
|
|
27
33
|
this.bookends = bookends ?? 'none';
|
|
34
|
+
this.skipEmpty = skipEmpty ?? false;
|
|
28
35
|
}
|
|
29
36
|
toString() {
|
|
37
|
+
if (this.skipEmpty && this.values.length === 0) {
|
|
38
|
+
return '';
|
|
39
|
+
}
|
|
30
40
|
const joined = this.values.join(this.separator);
|
|
31
41
|
return (0, ts_pattern_1.match)(this.bookends)
|
|
32
42
|
.with('[]', () => `[${joined}]`)
|
|
@@ -154,8 +164,8 @@ Object.defineProperty(List, "toObject", {
|
|
|
154
164
|
enumerable: true,
|
|
155
165
|
configurable: true,
|
|
156
166
|
writable: true,
|
|
157
|
-
value: (values) => {
|
|
158
|
-
return new List(values, { bookends: '{}' });
|
|
167
|
+
value: (values, { skipEmpty } = {}) => {
|
|
168
|
+
return new List(values, { bookends: '{}', skipEmpty });
|
|
159
169
|
}
|
|
160
170
|
});
|
|
161
171
|
/**
|
|
@@ -275,8 +285,8 @@ class KeyList {
|
|
|
275
285
|
});
|
|
276
286
|
this.keys = keys;
|
|
277
287
|
}
|
|
278
|
-
toObject(mapFn) {
|
|
279
|
-
return List.toObject(this.keys.map((key, index) => mapFn(key, index)));
|
|
288
|
+
toObject(mapFn, { skipEmpty } = {}) {
|
|
289
|
+
return List.toObject(this.keys.map((key, index) => mapFn(key, index)), { skipEmpty });
|
|
280
290
|
}
|
|
281
291
|
toObjectPlain() {
|
|
282
292
|
return List.toObject(this.keys);
|