@skmtc/core 0.0.366 → 0.0.368

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.
@@ -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.fromRecord(typeDefinition.value.objectProperties?.properties);
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
- const { values } = List.fromRecord(typeDefinition.value.objectProperties?.properties);
78
- const camelised = values
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
  };
@@ -1,4 +1,9 @@
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[], ', ', '()'>;
6
+ export type ListKeyValue<Key extends Stringable, Value extends Stringable> = List<[Key, Value], ': ', 'none'>;
2
7
  type BookendsType = '[]' | '{}' | '()' | '<>' | 'none';
3
8
  type ConstructorOptions<Separator extends string = ', ', Bookends extends BookendsType = 'none'> = {
4
9
  separator?: Separator;
@@ -47,7 +52,7 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
47
52
  * @param record
48
53
  * @returns `record` with `undefined` values filtered out
49
54
  */
50
- static toFilteredRecord: (record: Record<string, undefined | Stringable | Stringable[] | List>) => List<Stringable[], ", ", "{}">;
55
+ static toFilteredRecord: (record: Record<string, undefined | Stringable | Stringable[] | List>) => ListObject<List<[string, Stringable | List<Stringable[], string, BookendsType> | Stringable[]], ": ", "none">>;
51
56
  /**
52
57
  * Join `key` and `value` using `: ` as separator
53
58
  * @param key
@@ -67,31 +72,39 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
67
72
  * @param values
68
73
  * @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
69
74
  */
70
- static toObject: (values: (Stringable | undefined)[]) => List<Stringable[], ", ", "{}">;
75
+ static toObject: <V extends Stringable>(values: (V | undefined)[]) => ListObject<V>;
71
76
  /**
72
77
  * Join `values` using `, ` as separator and wrap in `[` and `]`
73
78
  * @param values
74
79
  * @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
75
80
  */
76
- static toArray: (values: (Stringable | undefined)[]) => List<Stringable[], ", ", "[]">;
81
+ static toArray: <V extends Stringable>(values: (V | undefined)[]) => ListArray<V>;
77
82
  /**
78
83
  * Join `values` using `, ` as separator and wrap in `(` and `)`
79
84
  * @param values
80
85
  * @returns `values` joined with `, ` as separator and wrapped in `(` and `)`
81
86
  */
82
- static toParams: (values: (Stringable | undefined)[]) => List<Stringable[], ", ", "()">;
87
+ static toParams: <V extends Stringable>(values: (V | undefined)[]) => ListParams<V>;
83
88
  /**
84
89
  * Join `values` using `\n` as separator without a wrapper
85
90
  * @param values
86
91
  * @returns `values` joined with `\n` as separator without a wrapper
87
92
  */
88
- static toLines: (values: (Stringable | undefined)[]) => List<Stringable[], "\n", "none">;
93
+ static toLines: <V extends Stringable>(values: (V | undefined)[]) => ListLines<V>;
89
94
  /**
90
- * Create a List using the keys of a record
95
+ * Create a KeyList using the keys of @param record
96
+ * @afdafg
91
97
  * @param record
92
- * @returns List of record keys
98
+ * @returns KeyList
93
99
  */
94
- static fromRecord: (record: Record<string, Stringable> | undefined) => List<string[], ", ", "none">;
100
+ static fromKeys: (record: Record<string, Stringable> | undefined) => KeyList;
101
+ /**
102
+ * Create a EntryList using the entries of @param record
103
+ * @afdafg
104
+ * @param record
105
+ * @returns EntryList
106
+ */
107
+ static fromEntrys: <T extends Stringable>(record: Record<string, T> | undefined) => EntryList<T>;
95
108
  /**
96
109
  * Create a keyValue pair if `value` is not undefined and is not an empty array or List.
97
110
  * Return `undefined` otherwise.
@@ -109,5 +122,22 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
109
122
  */
110
123
  static hasValue: (value: undefined | Stringable | Stringable[] | List) => value is Stringable | Stringable[] | List;
111
124
  }
125
+ type KeyMapFn<V extends Stringable> = (key: string, index: number) => V;
126
+ export declare class KeyList {
127
+ keys: string[];
128
+ constructor(keys: string[]);
129
+ toObject<V extends Stringable>(mapFn: KeyMapFn<V>): ListObject<V>;
130
+ toObjectPlain(): ListObject<string>;
131
+ toLines<V extends Stringable>(mapFn: KeyMapFn<V>): ListLines<V>;
132
+ toLinesPlain(): ListLines<string>;
133
+ }
134
+ type Entry<T extends Stringable> = [key: string, value: T];
135
+ type EntryMapFn<T extends Stringable, V extends Stringable> = (entry: Entry<T>, index: number) => V;
136
+ export declare class EntryList<T extends Stringable> {
137
+ entries: Entry<T>[];
138
+ constructor(entries: Entry<T>[]);
139
+ toObject<V extends Stringable>(mapFn: EntryMapFn<T, V>): ListObject<V>;
140
+ toLines<V extends Stringable>(mapFn: EntryMapFn<T, V>): ListLines<V>;
141
+ }
112
142
  export {};
113
143
  //# sourceMappingURL=List.d.ts.map
@@ -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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"}
@@ -194,16 +194,31 @@ Object.defineProperty(List, "toLines", {
194
194
  }
195
195
  });
196
196
  /**
197
- * Create a List using the keys of a record
197
+ * Create a KeyList using the keys of @param record
198
+ * @afdafg
198
199
  * @param record
199
- * @returns List of record keys
200
+ * @returns KeyList
200
201
  */
201
- Object.defineProperty(List, "fromRecord", {
202
+ Object.defineProperty(List, "fromKeys", {
202
203
  enumerable: true,
203
204
  configurable: true,
204
205
  writable: true,
205
206
  value: (record) => {
206
- return new List(Object.keys(record ?? {}));
207
+ return new KeyList(Object.keys(record ?? {}));
208
+ }
209
+ });
210
+ /**
211
+ * Create a EntryList using the entries of @param record
212
+ * @afdafg
213
+ * @param record
214
+ * @returns EntryList
215
+ */
216
+ Object.defineProperty(List, "fromEntrys", {
217
+ enumerable: true,
218
+ configurable: true,
219
+ writable: true,
220
+ value: (record) => {
221
+ return new EntryList(Object.entries(record ?? {}));
207
222
  }
208
223
  });
209
224
  /**
@@ -246,3 +261,43 @@ Object.defineProperty(List, "hasValue", {
246
261
  return true;
247
262
  }
248
263
  });
264
+ export class KeyList {
265
+ constructor(keys) {
266
+ Object.defineProperty(this, "keys", {
267
+ enumerable: true,
268
+ configurable: true,
269
+ writable: true,
270
+ value: void 0
271
+ });
272
+ this.keys = keys;
273
+ }
274
+ toObject(mapFn) {
275
+ return List.toObject(this.keys.map((key, index) => mapFn(key, index)));
276
+ }
277
+ toObjectPlain() {
278
+ return List.toObject(this.keys);
279
+ }
280
+ toLines(mapFn) {
281
+ return List.toLines(this.keys.map((key, index) => mapFn(key, index)));
282
+ }
283
+ toLinesPlain() {
284
+ return List.toLines(this.keys);
285
+ }
286
+ }
287
+ export class EntryList {
288
+ constructor(entries) {
289
+ Object.defineProperty(this, "entries", {
290
+ enumerable: true,
291
+ configurable: true,
292
+ writable: true,
293
+ value: void 0
294
+ });
295
+ this.entries = entries;
296
+ }
297
+ toObject(mapFn) {
298
+ return List.toObject(this.entries.map((entry, index) => mapFn(entry, index)));
299
+ }
300
+ toLines(mapFn) {
301
+ return List.toLines(this.entries.map((key, index) => mapFn(key, index)));
302
+ }
303
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skmtc/core",
3
- "version": "0.0.366",
3
+ "version": "0.0.368",
4
4
  "main": "./script/mod.js",
5
5
  "module": "./esm/mod.js",
6
6
  "exports": {
@@ -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.fromRecord(typeDefinition.value.objectProperties?.properties);
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
- const { values } = List_js_1.List.fromRecord(typeDefinition.value.objectProperties?.properties);
82
- const camelised = values
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,9 @@
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[], ', ', '()'>;
6
+ export type ListKeyValue<Key extends Stringable, Value extends Stringable> = List<[Key, Value], ': ', 'none'>;
2
7
  type BookendsType = '[]' | '{}' | '()' | '<>' | 'none';
3
8
  type ConstructorOptions<Separator extends string = ', ', Bookends extends BookendsType = 'none'> = {
4
9
  separator?: Separator;
@@ -47,7 +52,7 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
47
52
  * @param record
48
53
  * @returns `record` with `undefined` values filtered out
49
54
  */
50
- static toFilteredRecord: (record: Record<string, undefined | Stringable | Stringable[] | List>) => List<Stringable[], ", ", "{}">;
55
+ static toFilteredRecord: (record: Record<string, undefined | Stringable | Stringable[] | List>) => ListObject<List<[string, Stringable | List<Stringable[], string, BookendsType> | Stringable[]], ": ", "none">>;
51
56
  /**
52
57
  * Join `key` and `value` using `: ` as separator
53
58
  * @param key
@@ -67,31 +72,39 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
67
72
  * @param values
68
73
  * @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
69
74
  */
70
- static toObject: (values: (Stringable | undefined)[]) => List<Stringable[], ", ", "{}">;
75
+ static toObject: <V extends Stringable>(values: (V | undefined)[]) => ListObject<V>;
71
76
  /**
72
77
  * Join `values` using `, ` as separator and wrap in `[` and `]`
73
78
  * @param values
74
79
  * @returns `values` joined with `, ` as separator and wrapped in `{` and `}`
75
80
  */
76
- static toArray: (values: (Stringable | undefined)[]) => List<Stringable[], ", ", "[]">;
81
+ static toArray: <V extends Stringable>(values: (V | undefined)[]) => ListArray<V>;
77
82
  /**
78
83
  * Join `values` using `, ` as separator and wrap in `(` and `)`
79
84
  * @param values
80
85
  * @returns `values` joined with `, ` as separator and wrapped in `(` and `)`
81
86
  */
82
- static toParams: (values: (Stringable | undefined)[]) => List<Stringable[], ", ", "()">;
87
+ static toParams: <V extends Stringable>(values: (V | undefined)[]) => ListParams<V>;
83
88
  /**
84
89
  * Join `values` using `\n` as separator without a wrapper
85
90
  * @param values
86
91
  * @returns `values` joined with `\n` as separator without a wrapper
87
92
  */
88
- static toLines: (values: (Stringable | undefined)[]) => List<Stringable[], "\n", "none">;
93
+ static toLines: <V extends Stringable>(values: (V | undefined)[]) => ListLines<V>;
89
94
  /**
90
- * Create a List using the keys of a record
95
+ * Create a KeyList using the keys of @param record
96
+ * @afdafg
91
97
  * @param record
92
- * @returns List of record keys
98
+ * @returns KeyList
93
99
  */
94
- static fromRecord: (record: Record<string, Stringable> | undefined) => List<string[], ", ", "none">;
100
+ static fromKeys: (record: Record<string, Stringable> | undefined) => KeyList;
101
+ /**
102
+ * Create a EntryList using the entries of @param record
103
+ * @afdafg
104
+ * @param record
105
+ * @returns EntryList
106
+ */
107
+ static fromEntrys: <T extends Stringable>(record: Record<string, T> | undefined) => EntryList<T>;
95
108
  /**
96
109
  * Create a keyValue pair if `value` is not undefined and is not an empty array or List.
97
110
  * Return `undefined` otherwise.
@@ -109,5 +122,22 @@ export declare class List<Values extends Stringable[] = Stringable[], Separator
109
122
  */
110
123
  static hasValue: (value: undefined | Stringable | Stringable[] | List) => value is Stringable | Stringable[] | List;
111
124
  }
125
+ type KeyMapFn<V extends Stringable> = (key: string, index: number) => V;
126
+ export declare class KeyList {
127
+ keys: string[];
128
+ constructor(keys: string[]);
129
+ toObject<V extends Stringable>(mapFn: KeyMapFn<V>): ListObject<V>;
130
+ toObjectPlain(): ListObject<string>;
131
+ toLines<V extends Stringable>(mapFn: KeyMapFn<V>): ListLines<V>;
132
+ toLinesPlain(): ListLines<string>;
133
+ }
134
+ type Entry<T extends Stringable> = [key: string, value: T];
135
+ type EntryMapFn<T extends Stringable, V extends Stringable> = (entry: Entry<T>, index: number) => V;
136
+ export declare class EntryList<T extends Stringable> {
137
+ entries: Entry<T>[];
138
+ constructor(entries: Entry<T>[]);
139
+ toObject<V extends Stringable>(mapFn: EntryMapFn<T, V>): ListObject<V>;
140
+ toLines<V extends Stringable>(mapFn: EntryMapFn<T, V>): ListLines<V>;
141
+ }
112
142
  export {};
113
143
  //# sourceMappingURL=List.d.ts.map
@@ -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
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.List = void 0;
3
+ exports.EntryList = 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,31 @@ Object.defineProperty(List, "toLines", {
198
198
  }
199
199
  });
200
200
  /**
201
- * Create a List using the keys of a record
201
+ * Create a KeyList using the keys of @param record
202
+ * @afdafg
202
203
  * @param record
203
- * @returns List of record keys
204
+ * @returns KeyList
204
205
  */
205
- Object.defineProperty(List, "fromRecord", {
206
+ Object.defineProperty(List, "fromKeys", {
206
207
  enumerable: true,
207
208
  configurable: true,
208
209
  writable: true,
209
210
  value: (record) => {
210
- return new List(Object.keys(record ?? {}));
211
+ return new KeyList(Object.keys(record ?? {}));
212
+ }
213
+ });
214
+ /**
215
+ * Create a EntryList using the entries of @param record
216
+ * @afdafg
217
+ * @param record
218
+ * @returns EntryList
219
+ */
220
+ Object.defineProperty(List, "fromEntrys", {
221
+ enumerable: true,
222
+ configurable: true,
223
+ writable: true,
224
+ value: (record) => {
225
+ return new EntryList(Object.entries(record ?? {}));
211
226
  }
212
227
  });
213
228
  /**
@@ -250,3 +265,45 @@ Object.defineProperty(List, "hasValue", {
250
265
  return true;
251
266
  }
252
267
  });
268
+ class KeyList {
269
+ constructor(keys) {
270
+ Object.defineProperty(this, "keys", {
271
+ enumerable: true,
272
+ configurable: true,
273
+ writable: true,
274
+ value: void 0
275
+ });
276
+ this.keys = keys;
277
+ }
278
+ toObject(mapFn) {
279
+ return List.toObject(this.keys.map((key, index) => mapFn(key, index)));
280
+ }
281
+ toObjectPlain() {
282
+ return List.toObject(this.keys);
283
+ }
284
+ toLines(mapFn) {
285
+ return List.toLines(this.keys.map((key, index) => mapFn(key, index)));
286
+ }
287
+ toLinesPlain() {
288
+ return List.toLines(this.keys);
289
+ }
290
+ }
291
+ exports.KeyList = KeyList;
292
+ class EntryList {
293
+ constructor(entries) {
294
+ Object.defineProperty(this, "entries", {
295
+ enumerable: true,
296
+ configurable: true,
297
+ writable: true,
298
+ value: void 0
299
+ });
300
+ this.entries = entries;
301
+ }
302
+ toObject(mapFn) {
303
+ return List.toObject(this.entries.map((entry, index) => mapFn(entry, index)));
304
+ }
305
+ toLines(mapFn) {
306
+ return List.toLines(this.entries.map((key, index) => mapFn(key, index)));
307
+ }
308
+ }
309
+ exports.EntryList = EntryList;