@etsoo/shared 1.1.46 → 1.1.47

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/README.md CHANGED
@@ -121,6 +121,7 @@ Data type definitions and type safe functions
121
121
  |getEnumKey|Get enum string literal type value|
122
122
  |getEnumKeys|Get Enum keys|
123
123
  |getIdValue|Get object id field value|
124
+ |getIdValue1|Get object id field value 1|
124
125
  |getResult|Get input function or value result|
125
126
  |getStringValue|Get object string field value|
126
127
  |getValue|Get object field value|
@@ -109,8 +109,8 @@ test('Tests for IdLabelItem', () => {
109
109
  test('Tests for getValue', () => {
110
110
  const data = { id: 1, flag: true };
111
111
  expect(DataTypes.getValue(data, 'id')).toBe(1);
112
- expect(DataTypes.getValue(data, 'flag')).toBe('true');
113
- expect(DataTypes.getValue(data, 'unknown')).toBeNull();
112
+ expect(DataTypes.getValue(data, 'flag')).toBeTruthy();
113
+ expect(DataTypes.getValue(data, 'unknown')).toBeUndefined();
114
114
  });
115
115
 
116
116
  test('Tests for getIdValue', () => {
@@ -278,7 +278,7 @@ export declare namespace DataTypes {
278
278
  * @param key Property name
279
279
  * @returns Value
280
280
  */
281
- function getValue<T extends {}>(data: T | undefined | null, key: keyof T | string): IdType | undefined | null;
281
+ function getValue<T extends {}, K extends keyof T | string>(data: T | undefined | null, key: K): K extends keyof T ? T[K] : undefined;
282
282
  /**
283
283
  * Get object id field value
284
284
  * @param data Data
@@ -286,13 +286,20 @@ export declare namespace DataTypes {
286
286
  * @returns Id value
287
287
  */
288
288
  function getIdValue<T extends {}, K extends Keys<T, string | number>>(data: T, key: K): T[K];
289
+ /**
290
+ * Get object id field value 1
291
+ * @param data Data
292
+ * @param key Property name
293
+ * @returns Id value
294
+ */
295
+ function getIdValue1<T extends {}, K extends keyof T | string>(data: T | undefined | null, key: K): K extends keyof T ? (T[K] extends number ? number : string) : undefined;
289
296
  /**
290
297
  * Get object string field value
291
298
  * @param data Data
292
299
  * @param key Property name
293
300
  * @returns String value
294
301
  */
295
- function getStringValue<T extends {}>(data: T | undefined | null, key: keyof T | string): string | undefined | null;
302
+ function getStringValue<T extends {}>(data: T | undefined | null, key: keyof T | string): string | undefined;
296
303
  /**
297
304
  * Check the type is a basic type or not (type guard)
298
305
  * @param name Type name
@@ -290,14 +290,10 @@ var DataTypes;
290
290
  * @returns Value
291
291
  */
292
292
  function getValue(data, key) {
293
- if (data == null)
294
- return null;
295
- const value = typeof key === 'string' ? Reflect.get(data, key) : data[key];
296
- if (value == null)
297
- return null;
298
- if (typeof value === 'number')
299
- return value;
300
- return convert(value, 'string');
293
+ if (data != null && typeof key === 'string' && key in data) {
294
+ return Reflect.get(data, key);
295
+ }
296
+ return undefined;
301
297
  }
302
298
  DataTypes.getValue = getValue;
303
299
  /**
@@ -310,6 +306,21 @@ var DataTypes;
310
306
  return data[key];
311
307
  }
312
308
  DataTypes.getIdValue = getIdValue;
309
+ /**
310
+ * Get object id field value 1
311
+ * @param data Data
312
+ * @param key Property name
313
+ * @returns Id value
314
+ */
315
+ function getIdValue1(data, key) {
316
+ const value = getValue(data, key);
317
+ if (value == null)
318
+ return undefined;
319
+ if (typeof value === 'number')
320
+ return value;
321
+ return `${value}`;
322
+ }
323
+ DataTypes.getIdValue1 = getIdValue1;
313
324
  /**
314
325
  * Get object string field value
315
326
  * @param data Data
@@ -318,9 +329,11 @@ var DataTypes;
318
329
  */
319
330
  function getStringValue(data, key) {
320
331
  const value = getValue(data, key);
321
- if (typeof value === 'number')
322
- return value.toString();
323
- return value;
332
+ if (value == null)
333
+ return undefined;
334
+ if (typeof value === 'string')
335
+ return value;
336
+ return `${value}`;
324
337
  }
325
338
  DataTypes.getStringValue = getStringValue;
326
339
  /**
@@ -278,7 +278,7 @@ export declare namespace DataTypes {
278
278
  * @param key Property name
279
279
  * @returns Value
280
280
  */
281
- function getValue<T extends {}>(data: T | undefined | null, key: keyof T | string): IdType | undefined | null;
281
+ function getValue<T extends {}, K extends keyof T | string>(data: T | undefined | null, key: K): K extends keyof T ? T[K] : undefined;
282
282
  /**
283
283
  * Get object id field value
284
284
  * @param data Data
@@ -286,13 +286,20 @@ export declare namespace DataTypes {
286
286
  * @returns Id value
287
287
  */
288
288
  function getIdValue<T extends {}, K extends Keys<T, string | number>>(data: T, key: K): T[K];
289
+ /**
290
+ * Get object id field value 1
291
+ * @param data Data
292
+ * @param key Property name
293
+ * @returns Id value
294
+ */
295
+ function getIdValue1<T extends {}, K extends keyof T | string>(data: T | undefined | null, key: K): K extends keyof T ? (T[K] extends number ? number : string) : undefined;
289
296
  /**
290
297
  * Get object string field value
291
298
  * @param data Data
292
299
  * @param key Property name
293
300
  * @returns String value
294
301
  */
295
- function getStringValue<T extends {}>(data: T | undefined | null, key: keyof T | string): string | undefined | null;
302
+ function getStringValue<T extends {}>(data: T | undefined | null, key: keyof T | string): string | undefined;
296
303
  /**
297
304
  * Check the type is a basic type or not (type guard)
298
305
  * @param name Type name
@@ -287,14 +287,10 @@ export var DataTypes;
287
287
  * @returns Value
288
288
  */
289
289
  function getValue(data, key) {
290
- if (data == null)
291
- return null;
292
- const value = typeof key === 'string' ? Reflect.get(data, key) : data[key];
293
- if (value == null)
294
- return null;
295
- if (typeof value === 'number')
296
- return value;
297
- return convert(value, 'string');
290
+ if (data != null && typeof key === 'string' && key in data) {
291
+ return Reflect.get(data, key);
292
+ }
293
+ return undefined;
298
294
  }
299
295
  DataTypes.getValue = getValue;
300
296
  /**
@@ -307,6 +303,21 @@ export var DataTypes;
307
303
  return data[key];
308
304
  }
309
305
  DataTypes.getIdValue = getIdValue;
306
+ /**
307
+ * Get object id field value 1
308
+ * @param data Data
309
+ * @param key Property name
310
+ * @returns Id value
311
+ */
312
+ function getIdValue1(data, key) {
313
+ const value = getValue(data, key);
314
+ if (value == null)
315
+ return undefined;
316
+ if (typeof value === 'number')
317
+ return value;
318
+ return `${value}`;
319
+ }
320
+ DataTypes.getIdValue1 = getIdValue1;
310
321
  /**
311
322
  * Get object string field value
312
323
  * @param data Data
@@ -315,9 +326,11 @@ export var DataTypes;
315
326
  */
316
327
  function getStringValue(data, key) {
317
328
  const value = getValue(data, key);
318
- if (typeof value === 'number')
319
- return value.toString();
320
- return value;
329
+ if (value == null)
330
+ return undefined;
331
+ if (typeof value === 'string')
332
+ return value;
333
+ return `${value}`;
321
334
  }
322
335
  DataTypes.getStringValue = getStringValue;
323
336
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/shared",
3
- "version": "1.1.46",
3
+ "version": "1.1.47",
4
4
  "description": "TypeScript shared utilities and functions",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
package/src/DataTypes.ts CHANGED
@@ -523,16 +523,14 @@ export namespace DataTypes {
523
523
  * @param key Property name
524
524
  * @returns Value
525
525
  */
526
- export function getValue<T extends {}>(
526
+ export function getValue<T extends {}, K extends keyof T | string>(
527
527
  data: T | undefined | null,
528
- key: keyof T | string
529
- ): IdType | undefined | null {
530
- if (data == null) return null;
531
- const value =
532
- typeof key === 'string' ? Reflect.get(data, key) : data[key];
533
- if (value == null) return null;
534
- if (typeof value === 'number') return value;
535
- return convert(value, 'string');
528
+ key: K
529
+ ): K extends keyof T ? T[K] : undefined {
530
+ if (data != null && typeof key === 'string' && key in data) {
531
+ return Reflect.get(data, key);
532
+ }
533
+ return undefined as any;
536
534
  }
537
535
 
538
536
  /**
@@ -548,6 +546,22 @@ export namespace DataTypes {
548
546
  return data[key];
549
547
  }
550
548
 
549
+ /**
550
+ * Get object id field value 1
551
+ * @param data Data
552
+ * @param key Property name
553
+ * @returns Id value
554
+ */
555
+ export function getIdValue1<T extends {}, K extends keyof T | string>(
556
+ data: T | undefined | null,
557
+ key: K
558
+ ): K extends keyof T ? (T[K] extends number ? number : string) : undefined {
559
+ const value = getValue(data, key);
560
+ if (value == null) return undefined as any;
561
+ if (typeof value === 'number') return value as any;
562
+ return `${value}` as any;
563
+ }
564
+
551
565
  /**
552
566
  * Get object string field value
553
567
  * @param data Data
@@ -557,10 +571,11 @@ export namespace DataTypes {
557
571
  export function getStringValue<T extends {}>(
558
572
  data: T | undefined | null,
559
573
  key: keyof T | string
560
- ): string | undefined | null {
574
+ ): string | undefined {
561
575
  const value = getValue(data, key);
562
- if (typeof value === 'number') return value.toString();
563
- return value;
576
+ if (value == null) return undefined;
577
+ if (typeof value === 'string') return value;
578
+ return `${value}`;
564
579
  }
565
580
 
566
581
  /**