@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.
@@ -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,EAAE,MAAM,WAAW,CAAA;AAGhC,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"}
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
  };
@@ -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
- constructor(values: (ExtractArrayItem<Values> | undefined)[], { separator, bookends }?: ConstructorOptions<Separator, Bookends>);
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>): ListObject<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":"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"}
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
  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,6 +1,6 @@
1
1
  {
2
2
  "name": "@skmtc/core",
3
- "version": "0.0.541",
3
+ "version": "0.0.543",
4
4
  "main": "./script/mod.js",
5
5
  "module": "./esm/mod.js",
6
6
  "exports": {
@@ -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,EAAE,MAAM,WAAW,CAAA;AAGhC,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"}
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
- constructor(values: (ExtractArrayItem<Values> | undefined)[], { separator, bookends }?: ConstructorOptions<Separator, Bookends>);
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>): ListObject<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":"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"}
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);