@gennext/lb-infra 0.0.12 → 0.1.0

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.
Files changed (135) hide show
  1. package/README.md +63 -89
  2. package/dist/base/base.helper.d.ts +4 -2
  3. package/dist/base/base.helper.d.ts.map +1 -1
  4. package/dist/base/base.helper.js +8 -2
  5. package/dist/base/base.helper.js.map +1 -1
  6. package/dist/base/datasources/base.datasource.d.ts +2 -2
  7. package/dist/base/datasources/base.datasource.d.ts.map +1 -1
  8. package/dist/base/datasources/base.datasource.js.map +1 -1
  9. package/dist/base/models/base.model.d.ts +10 -0
  10. package/dist/base/models/base.model.d.ts.map +1 -1
  11. package/dist/base/models/base.model.js +10 -3
  12. package/dist/base/models/base.model.js.map +1 -1
  13. package/dist/datasources/redis/connector.d.ts +1 -1
  14. package/dist/datasources/redis/connector.d.ts.map +1 -1
  15. package/dist/datasources/redis/connector.js +8 -4
  16. package/dist/datasources/redis/connector.js.map +1 -1
  17. package/dist/datasources/redis/types.d.ts +1 -1
  18. package/dist/datasources/redis/types.d.ts.map +1 -1
  19. package/dist/helpers/logger/application-logger.d.ts +0 -3
  20. package/dist/helpers/logger/application-logger.d.ts.map +1 -1
  21. package/dist/helpers/logger/application-logger.js +7 -31
  22. package/dist/helpers/logger/application-logger.js.map +1 -1
  23. package/dist/helpers/logger/common/types.d.ts +0 -7
  24. package/dist/helpers/logger/common/types.d.ts.map +1 -1
  25. package/dist/helpers/logger/common/types.js +1 -10
  26. package/dist/helpers/logger/common/types.js.map +1 -1
  27. package/dist/helpers/logger/config-merger.d.ts +27 -0
  28. package/dist/helpers/logger/config-merger.d.ts.map +1 -0
  29. package/dist/helpers/logger/config-merger.js +55 -0
  30. package/dist/helpers/logger/config-merger.js.map +1 -0
  31. package/dist/helpers/logger/config.d.ts +9 -11
  32. package/dist/helpers/logger/config.d.ts.map +1 -1
  33. package/dist/helpers/logger/config.js +18 -30
  34. package/dist/helpers/logger/config.js.map +1 -1
  35. package/dist/helpers/logger/default-logger.d.ts.map +1 -1
  36. package/dist/helpers/logger/default-logger.js +3 -5
  37. package/dist/helpers/logger/default-logger.js.map +1 -1
  38. package/dist/helpers/logger/enhanced-factory.d.ts +3 -3
  39. package/dist/helpers/logger/enhanced-factory.d.ts.map +1 -1
  40. package/dist/helpers/logger/enhanced-factory.js +10 -7
  41. package/dist/helpers/logger/enhanced-factory.js.map +1 -1
  42. package/dist/helpers/logger/factory.d.ts +1 -37
  43. package/dist/helpers/logger/factory.d.ts.map +1 -1
  44. package/dist/helpers/logger/factory.js +11 -86
  45. package/dist/helpers/logger/factory.js.map +1 -1
  46. package/dist/helpers/logger/http/access-logger.d.ts +14 -5
  47. package/dist/helpers/logger/http/access-logger.d.ts.map +1 -1
  48. package/dist/helpers/logger/http/access-logger.js +186 -157
  49. package/dist/helpers/logger/http/access-logger.js.map +1 -1
  50. package/dist/helpers/logger/http/index.d.ts +1 -1
  51. package/dist/helpers/logger/http/index.d.ts.map +1 -1
  52. package/dist/helpers/logger/http/index.js +1 -1
  53. package/dist/helpers/logger/http/index.js.map +1 -1
  54. package/dist/helpers/logger/http/request-context.d.ts +10 -6
  55. package/dist/helpers/logger/http/request-context.d.ts.map +1 -1
  56. package/dist/helpers/logger/http/request-context.js +32 -22
  57. package/dist/helpers/logger/http/request-context.js.map +1 -1
  58. package/dist/helpers/logger/http/request-id-manager.d.ts +13 -8
  59. package/dist/helpers/logger/http/request-id-manager.d.ts.map +1 -1
  60. package/dist/helpers/logger/http/request-id-manager.js +24 -70
  61. package/dist/helpers/logger/http/request-id-manager.js.map +1 -1
  62. package/dist/helpers/logger/http/types.d.ts +3 -3
  63. package/dist/helpers/logger/http/types.d.ts.map +1 -1
  64. package/dist/helpers/logger/index.d.ts +4 -3
  65. package/dist/helpers/logger/index.d.ts.map +1 -1
  66. package/dist/helpers/logger/index.js +4 -3
  67. package/dist/helpers/logger/index.js.map +1 -1
  68. package/dist/helpers/logger/transports/dgram.transport.d.ts +0 -1
  69. package/dist/helpers/logger/transports/dgram.transport.d.ts.map +1 -1
  70. package/dist/helpers/logger/transports/dgram.transport.js +2 -2
  71. package/dist/helpers/logger/transports/dgram.transport.js.map +1 -1
  72. package/dist/helpers/redis/default.helper.d.ts.map +1 -1
  73. package/dist/helpers/redis/default.helper.js +19 -17
  74. package/dist/helpers/redis/default.helper.js.map +1 -1
  75. package/dist/helpers/redis/index.d.ts.map +1 -1
  76. package/dist/helpers/redis/index.js.map +1 -1
  77. package/dist/helpers/redis/redis-cluster.helper.js +2 -2
  78. package/dist/helpers/redis/redis-cluster.helper.js.map +1 -1
  79. package/dist/helpers/redis/redis.helper.d.ts +34 -0
  80. package/dist/helpers/redis/redis.helper.d.ts.map +1 -1
  81. package/dist/helpers/redis/redis.helper.js +34 -0
  82. package/dist/helpers/redis/redis.helper.js.map +1 -1
  83. package/dist/index.d.ts +4 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +4 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/utilities/crypto.utility.d.ts +28 -0
  88. package/dist/utilities/crypto.utility.d.ts.map +1 -1
  89. package/dist/utilities/crypto.utility.js +28 -0
  90. package/dist/utilities/crypto.utility.js.map +1 -1
  91. package/dist/utilities/date.utility.d.ts +57 -0
  92. package/dist/utilities/date.utility.d.ts.map +1 -1
  93. package/dist/utilities/date.utility.js +58 -16
  94. package/dist/utilities/date.utility.js.map +1 -1
  95. package/dist/utilities/error.utility.d.ts +63 -0
  96. package/dist/utilities/error.utility.d.ts.map +1 -1
  97. package/dist/utilities/error.utility.js +82 -4
  98. package/dist/utilities/error.utility.js.map +1 -1
  99. package/dist/utilities/lodash.utility.d.ts +1 -0
  100. package/dist/utilities/lodash.utility.d.ts.map +1 -1
  101. package/dist/utilities/lodash.utility.js +3 -1
  102. package/dist/utilities/lodash.utility.js.map +1 -1
  103. package/dist/utilities/model.utility.d.ts +15 -0
  104. package/dist/utilities/model.utility.d.ts.map +1 -1
  105. package/dist/utilities/model.utility.js +15 -2
  106. package/dist/utilities/model.utility.js.map +1 -1
  107. package/dist/utilities/module.utility.d.ts +8 -0
  108. package/dist/utilities/module.utility.d.ts.map +1 -1
  109. package/dist/utilities/module.utility.js +10 -2
  110. package/dist/utilities/module.utility.js.map +1 -1
  111. package/dist/utilities/parse.utility.d.ts +59 -0
  112. package/dist/utilities/parse.utility.d.ts.map +1 -1
  113. package/dist/utilities/parse.utility.js +76 -15
  114. package/dist/utilities/parse.utility.js.map +1 -1
  115. package/dist/utilities/performance.utility.d.ts +13 -0
  116. package/dist/utilities/performance.utility.d.ts.map +1 -1
  117. package/dist/utilities/performance.utility.js +15 -2
  118. package/dist/utilities/performance.utility.js.map +1 -1
  119. package/dist/utilities/promise.utility.d.ts +18 -18
  120. package/dist/utilities/promise.utility.d.ts.map +1 -1
  121. package/dist/utilities/promise.utility.js +16 -17
  122. package/dist/utilities/promise.utility.js.map +1 -1
  123. package/dist/utilities/query.utility.d.ts +24 -3
  124. package/dist/utilities/query.utility.d.ts.map +1 -1
  125. package/dist/utilities/query.utility.js +29 -7
  126. package/dist/utilities/query.utility.js.map +1 -1
  127. package/dist/utilities/request.utility.d.ts +36 -3
  128. package/dist/utilities/request.utility.d.ts.map +1 -1
  129. package/dist/utilities/request.utility.js +38 -8
  130. package/dist/utilities/request.utility.js.map +1 -1
  131. package/dist/utilities/url.utility.d.ts +16 -0
  132. package/dist/utilities/url.utility.d.ts.map +1 -1
  133. package/dist/utilities/url.utility.js +16 -0
  134. package/dist/utilities/url.utility.js.map +1 -1
  135. package/package.json +2 -1
@@ -3,14 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getIdType = exports.getIdSchema = void 0;
4
4
  const metadata_1 = require("@loopback/metadata");
5
5
  const rest_1 = require("@loopback/rest");
6
- // --------------------------------------------------------------------------------------------------------------
6
+ /**
7
+ * Extracts the JSON schema of the ID property from a LoopBack entity
8
+ * @param entity - The LoopBack entity class (must extend BaseEntity)
9
+ * @returns The SchemaObject representing the ID property
10
+ * @example
11
+ * const schema = getIdSchema(User);
12
+ * // { type: 'number', minimum: 1 }
13
+ */
7
14
  const getIdSchema = (entity) => {
8
15
  const idProp = entity.getIdProperties()[0];
9
16
  const modelSchema = (0, rest_1.jsonToSchemaObject)((0, rest_1.getJsonSchema)(entity));
10
17
  return modelSchema.properties?.[idProp];
11
18
  };
12
19
  exports.getIdSchema = getIdSchema;
13
- // --------------------------------------------------------------------------------------------------------------
20
+ /**
21
+ * Inspects the metadata of a LoopBack entity to determine the ID type
22
+ * @param entity - The LoopBack entity class
23
+ * @returns 'string' or 'number' (default: 'number')
24
+ * @example
25
+ * const type = getIdType(User); // 'number'
26
+ */
14
27
  const getIdType = (entity) => {
15
28
  let idType = 'number';
16
29
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"model.utility.js","sourceRoot":"","sources":["../../src/utilities/model.utility.ts"],"names":[],"mappings":";;;AAAA,iDAAuD;AACvD,yCAAiF;AAIjF,iHAAiH;AAC1G,MAAM,WAAW,GAAG,CACzB,MAA4C,EAC9B,EAAE;IAChB,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAA,yBAAkB,EAAC,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAiB,CAAC;IAC9E,OAAO,WAAW,CAAC,UAAU,EAAE,CAAC,MAAM,CAAiB,CAAC;AAC1D,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEF,iHAAiH;AAC1G,MAAM,SAAS,GAAG,CACvB,MAA8C,EACzB,EAAE;IACvB,IAAI,MAAM,GAAwB,QAAQ,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,4BAAiB,CAAC,mBAAmB,CAErD,2BAA2B,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAE9C,MAAM,GAAG,UAAU,EAAE,IAAI,IAAI,QAAQ,CAAC;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CACX,iFAAiF,EACjF,CAAC,CACF,CAAC;QAEF,MAAM,GAAG,QAAQ,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAtBW,QAAA,SAAS,aAsBpB"}
1
+ {"version":3,"file":"model.utility.js","sourceRoot":"","sources":["../../src/utilities/model.utility.ts"],"names":[],"mappings":";;;AAAA,iDAAuD;AACvD,yCAAiF;AAIjF;;;;;;;GAOG;AACI,MAAM,WAAW,GAAG,CACzB,MAA4C,EAC9B,EAAE;IAChB,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAA,yBAAkB,EAAC,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAiB,CAAC;IAC9E,OAAO,WAAW,CAAC,UAAU,EAAE,CAAC,MAAM,CAAiB,CAAC;AAC1D,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEF;;;;;;GAMG;AACI,MAAM,SAAS,GAAG,CACvB,MAA8C,EACzB,EAAE;IACvB,IAAI,MAAM,GAAwB,QAAQ,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,4BAAiB,CAAC,mBAAmB,CAErD,2BAA2B,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAE9C,MAAM,GAAG,UAAU,EAAE,IAAI,IAAI,QAAQ,CAAC;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CACX,iFAAiF,EACjF,CAAC,CACF,CAAC;QAEF,MAAM,GAAG,QAAQ,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAtBW,QAAA,SAAS,aAsBpB"}
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Validates the existence of required external modules
3
+ * Throws an error and logs a message if any module is missing
4
+ * @param opts - Configuration with scope and list of modules to check
5
+ * @throws ApplicationError if any module cannot be resolved
6
+ * @example
7
+ * validateModule({ scope: 'Redis', modules: ['ioredis'] });
8
+ */
1
9
  export declare const validateModule: (opts: {
2
10
  scope?: string;
3
11
  modules: Array<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"module.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/module.utility.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,GAAI,MAAM;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,SAgB9E,CAAC"}
1
+ {"version":3,"file":"module.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/module.utility.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,SAgB9E,CAAC"}
@@ -1,8 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateModule = void 0;
4
- const helpers_1 = require("../helpers");
4
+ const logger_1 = require("../helpers/logger");
5
5
  const error_utility_1 = require("./error.utility");
6
+ /**
7
+ * Validates the existence of required external modules
8
+ * Throws an error and logs a message if any module is missing
9
+ * @param opts - Configuration with scope and list of modules to check
10
+ * @throws ApplicationError if any module cannot be resolved
11
+ * @example
12
+ * validateModule({ scope: 'Redis', modules: ['ioredis'] });
13
+ */
6
14
  const validateModule = (opts) => {
7
15
  const { scope = '', modules = [] } = opts;
8
16
  for (const module of modules) {
@@ -10,7 +18,7 @@ const validateModule = (opts) => {
10
18
  require.resolve(module);
11
19
  }
12
20
  catch (error) {
13
- helpers_1.LoggerFactory.getLogger([scope]).error("[validateModule] Failed to import '%s' | Error: %s", module, error);
21
+ logger_1.LoggerFactory.getLogger([scope]).error("[validateModule] Failed to import '%s' | Error: %s", module, error);
14
22
  throw (0, error_utility_1.getError)({
15
23
  message: `[validateModule] ${module} is required${scope ? ` for ${scope}` : ''}. Please install '${module}'`,
16
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"module.utility.js","sourceRoot":"","sources":["../../src/utilities/module.utility.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAC1C,mDAA2C;AAEpC,MAAM,cAAc,GAAG,CAAC,IAAgD,EAAE,EAAE;IACjF,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uBAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACpC,oDAAoD,EACpD,MAAM,EACN,KAAK,CACN,CAAC;YACF,MAAM,IAAA,wBAAQ,EAAC;gBACb,OAAO,EAAE,oBAAoB,MAAM,eAAe,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,MAAM,GAAG;aAC7G,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB"}
1
+ {"version":3,"file":"module.utility.js","sourceRoot":"","sources":["../../src/utilities/module.utility.ts"],"names":[],"mappings":";;;AAAA,6CAAiD;AACjD,mDAA2C;AAE3C;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAAC,IAAgD,EAAE,EAAE;IACjF,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sBAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACpC,oDAAoD,EACpD,MAAM,EACN,KAAK,CACN,CAAC;YACF,MAAM,IAAA,wBAAQ,EAAC;gBACb,OAAO,EAAE,oBAAoB,MAAM,eAAe,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,MAAM,GAAG;aAC7G,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB"}
@@ -1,9 +1,68 @@
1
+ /**
2
+ * Generates a unique identifier string
3
+ * @returns Random uppercase alphanumeric string
4
+ * @example
5
+ * const uid = getUID(); // "ABC123XYZ"
6
+ */
1
7
  export declare const getUID: () => string;
8
+ /**
9
+ * Converts hyphenated or snake_case strings to camelCase
10
+ * @param s - Input string to convert
11
+ * @returns CamelCase version of the string
12
+ * @example
13
+ * toCamel('my-property') // "myProperty"
14
+ * toCamel('my_property') // "myProperty"
15
+ */
2
16
  export declare const toCamel: (s: string) => string;
17
+ /**
18
+ * Recursively converts all object keys to camelCase
19
+ * Handles nested objects and dates
20
+ * @param object - Object to transform
21
+ * @returns New object with camelCase keys
22
+ * @example
23
+ * keysToCamel({ user_name: 'john', user_profile: { first_name: 'John' } })
24
+ * // { userName: 'john', userProfile: { firstName: 'John' } }
25
+ */
3
26
  export declare const keysToCamel: (object: object) => any;
27
+ /**
28
+ * Checks if a value is an integer
29
+ * @param n - Value to check
30
+ * @returns True if the value is an integer
31
+ * @example
32
+ * isInt(42) // true
33
+ * isInt(42.5) // false
34
+ */
4
35
  export declare const isInt: (n: any) => boolean;
36
+ /**
37
+ * Checks if a value is a floating-point number
38
+ * @param input - Value to check
39
+ * @returns True if the value is a float
40
+ * @example
41
+ * isFloat(42.5) // true
42
+ * isFloat(42) // false
43
+ */
5
44
  export declare const isFloat: (input: any) => boolean;
45
+ /**
46
+ * Safely parses a value to integer
47
+ * Handles string numbers with commas and null/NaN values
48
+ * @param input - Value to parse
49
+ * @returns Parsed integer or 0 if invalid
50
+ * @example
51
+ * int('1000') // 1000
52
+ * int('1,000') // 1000
53
+ * int(null) // 0
54
+ */
6
55
  export declare const int: (input: any) => number;
56
+ /**
57
+ * Safely parses a value to float with specified decimal places
58
+ * Handles string numbers with commas and null/NaN values
59
+ * @param input - Value to parse
60
+ * @param digit - Number of decimal places (default: 2)
61
+ * @returns Parsed float rounded to specified digits or 0 if invalid
62
+ * @example
63
+ * float('3.14159', 2) // 3.14
64
+ * float('1,234.56', 1) // 1234.6
65
+ */
7
66
  export declare const float: (input: any, digit?: number) => number;
8
67
  export declare const toBoolean: (input: any) => boolean;
9
68
  export declare const toStringDecimal: (input: any, digit?: number, options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"parse.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/parse.utility.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,MAAM,cAA0D,CAAC;AAG9E,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,WAIhC,CAAC;AAGF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,QAoCzC,CAAC;AAGF,eAAO,MAAM,KAAK,GAAI,GAAG,GAAG,YAM3B,CAAC;AAGF,eAAO,MAAM,OAAO,GAAI,OAAO,GAAG,YAMjC,CAAC;AAGF,eAAO,MAAM,GAAG,GAAI,OAAO,GAAG,WAO7B,CAAC;AAGF,eAAO,MAAM,KAAK,GAAI,OAAO,GAAG,EAAE,cAAS,WAO1C,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,OAAO,GAAG,YAUnC,CAAC;AAGF,eAAO,MAAM,eAAe,GAAI,OAAO,GAAG,EAAE,cAAS,EAAE;;CAAmC,eA8BzF,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,SAAQ,KAAK,GAAG,OAAe,WA0B5E,CAAC;AAGF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,GACpC,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,EAChC,CAAC,SAAS,MAAM,CAAC,EACjB,MAAM;IACN,GAAG,EAAE,CAAC,EAAE,CAAC;IACT,MAAM,EAAE,CAAC,CAAC;CACX,KAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAmBjB,CAAC;AAGF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACxF,KAAK,CAAC,EAAE,EACR,QAAQ,CAAC,KACR,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAiBb,CAAC"}
1
+ {"version":3,"file":"parse.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/parse.utility.ts"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,eAAO,MAAM,MAAM,cAA0D,CAAC;AAE9E;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,WAIhC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,QAgCzC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAAI,GAAG,GAAG,YAM3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,GAAG,YAMjC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,GAAG,GAAI,OAAO,GAAG,WAW7B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,GAAG,EAAE,cAAS,WAW1C,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,OAAO,GAAG,YAUnC,CAAC;AAGF,eAAO,MAAM,eAAe,GAAI,OAAO,GAAG,EAAE,cAAS,EAAE;;CAAmC,eA8BzF,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,SAAQ,KAAK,GAAG,OAAe,WA0B5E,CAAC;AAGF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,GACpC,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,EAChC,CAAC,SAAS,MAAM,CAAC,EACjB,MAAM;IACN,GAAG,EAAE,CAAC,EAAE,CAAC;IACT,MAAM,EAAE,CAAC,CAAC;CACX,KAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAmBjB,CAAC;AAGF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACxF,KAAK,CAAC,EAAE,EACR,QAAQ,CAAC,KACR,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAiBb,CAAC"}
@@ -7,26 +7,53 @@ exports.parseArrayToMapWithKey = exports.parseArrayToRecordWithKey = exports.get
7
7
  const get_1 = __importDefault(require("lodash/get"));
8
8
  const round_1 = __importDefault(require("lodash/round"));
9
9
  const error_utility_1 = require("./error.utility");
10
- // -------------------------------------------------------------------------
10
+ /**
11
+ * Number formatter: 0 decimal places
12
+ * @internal
13
+ */
11
14
  const INTL_0_DIGITS_FORMATER = new Intl.NumberFormat('en-US', {
12
15
  maximumFractionDigits: 0,
13
16
  minimumFractionDigits: 0,
14
17
  });
18
+ /**
19
+ * Number formatter: 2 decimal places
20
+ * @internal
21
+ */
15
22
  const INTL_2_DIGITS_FORMATER = new Intl.NumberFormat('en-US', {
16
23
  maximumFractionDigits: 2,
17
24
  minimumFractionDigits: 2,
18
25
  });
19
- // -------------------------------------------------------------------------
26
+ /**
27
+ * Generates a unique identifier string
28
+ * @returns Random uppercase alphanumeric string
29
+ * @example
30
+ * const uid = getUID(); // "ABC123XYZ"
31
+ */
20
32
  const getUID = () => Math.random().toString(36).slice(2).toUpperCase();
21
33
  exports.getUID = getUID;
22
- // -------------------------------------------------------------------------
34
+ /**
35
+ * Converts hyphenated or snake_case strings to camelCase
36
+ * @param s - Input string to convert
37
+ * @returns CamelCase version of the string
38
+ * @example
39
+ * toCamel('my-property') // "myProperty"
40
+ * toCamel('my_property') // "myProperty"
41
+ */
23
42
  const toCamel = (s) => {
24
- return s.replace(/([-_][a-z])/gi, (sub) => {
43
+ return s.replace(/([-_][a-z0-9])/gi, (sub) => {
25
44
  return sub.toUpperCase().replace('-', '').replace('_', '');
26
45
  });
27
46
  };
28
47
  exports.toCamel = toCamel;
29
- // -------------------------------------------------------------------------
48
+ /**
49
+ * Recursively converts all object keys to camelCase
50
+ * Handles nested objects and dates
51
+ * @param object - Object to transform
52
+ * @returns New object with camelCase keys
53
+ * @example
54
+ * keysToCamel({ user_name: 'john', user_profile: { first_name: 'John' } })
55
+ * // { userName: 'john', userProfile: { firstName: 'John' } }
56
+ */
30
57
  const keysToCamel = (object) => {
31
58
  const n = {};
32
59
  const keys = Object.keys(object);
@@ -48,10 +75,6 @@ const keysToCamel = (object) => {
48
75
  n[(0, exports.toCamel)(key)] = (0, exports.keysToCamel)(value);
49
76
  break;
50
77
  }
51
- /* case 'array': {
52
- n[toCamel(key)] = value;
53
- break;
54
- } */
55
78
  default: {
56
79
  n[(0, exports.toCamel)(key)] = value;
57
80
  break;
@@ -61,7 +84,14 @@ const keysToCamel = (object) => {
61
84
  return n;
62
85
  };
63
86
  exports.keysToCamel = keysToCamel;
64
- // -------------------------------------------------------------------------
87
+ /**
88
+ * Checks if a value is an integer
89
+ * @param n - Value to check
90
+ * @returns True if the value is an integer
91
+ * @example
92
+ * isInt(42) // true
93
+ * isInt(42.5) // false
94
+ */
65
95
  const isInt = (n) => {
66
96
  if (isNaN(n)) {
67
97
  return false;
@@ -69,7 +99,14 @@ const isInt = (n) => {
69
99
  return Number.isInteger(n) || Math.floor(Number(n)) === n || Number(n) % 1 === 0;
70
100
  };
71
101
  exports.isInt = isInt;
72
- // -------------------------------------------------------------------------
102
+ /**
103
+ * Checks if a value is a floating-point number
104
+ * @param input - Value to check
105
+ * @returns True if the value is a float
106
+ * @example
107
+ * isFloat(42.5) // true
108
+ * isFloat(42) // false
109
+ */
73
110
  const isFloat = (input) => {
74
111
  if (isNaN(input)) {
75
112
  return false;
@@ -77,21 +114,45 @@ const isFloat = (input) => {
77
114
  return Number(input) === input || Number(input) % 1 !== 0;
78
115
  };
79
116
  exports.isFloat = isFloat;
80
- // -------------------------------------------------------------------------
117
+ /**
118
+ * Safely parses a value to integer
119
+ * Handles string numbers with commas and null/NaN values
120
+ * @param input - Value to parse
121
+ * @returns Parsed integer or 0 if invalid
122
+ * @example
123
+ * int('1000') // 1000
124
+ * int('1,000') // 1000
125
+ * int(null) // 0
126
+ */
81
127
  const int = (input) => {
82
- if (!input || isNaN(input)) {
128
+ if (!input) {
83
129
  return 0;
84
130
  }
85
131
  const normalized = input?.toString()?.replace(/,/g, '');
132
+ if (isNaN(Number(normalized))) {
133
+ return 0;
134
+ }
86
135
  return Number.parseInt(normalized, 10) ?? 0;
87
136
  };
88
137
  exports.int = int;
89
- // -------------------------------------------------------------------------
138
+ /**
139
+ * Safely parses a value to float with specified decimal places
140
+ * Handles string numbers with commas and null/NaN values
141
+ * @param input - Value to parse
142
+ * @param digit - Number of decimal places (default: 2)
143
+ * @returns Parsed float rounded to specified digits or 0 if invalid
144
+ * @example
145
+ * float('3.14159', 2) // 3.14
146
+ * float('1,234.56', 1) // 1234.6
147
+ */
90
148
  const float = (input, digit = 2) => {
91
- if (!input || isNaN(input)) {
149
+ if (!input) {
92
150
  return 0;
93
151
  }
94
152
  const normalized = input?.toString()?.replace(/,/g, '');
153
+ if (isNaN(Number(normalized))) {
154
+ return 0;
155
+ }
95
156
  return (0, round_1.default)(Number.parseFloat(normalized), digit);
96
157
  };
97
158
  exports.float = float;
@@ -1 +1 @@
1
- {"version":3,"file":"parse.utility.js","sourceRoot":"","sources":["../../src/utilities/parse.utility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.utility.js","sourceRoot":"","sources":["../../src/utilities/parse.utility.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,17 @@
1
+ /**
2
+ * Gets a high-resolution timestamp for performance tracking
3
+ * @returns Current performance.now() value
4
+ */
1
5
  export declare const getPerformanceCheckpoint: () => number;
6
+ /**
7
+ * Calculates elapsed time from a given checkpoint with precision
8
+ * @param opts - Options with starting checkpoint and decimal digits
9
+ * @returns Formatted float of elapsed time in milliseconds
10
+ * @example
11
+ * const start = getPerformanceCheckpoint();
12
+ * // ... do work ...
13
+ * const elapsed = getExecutedPerformance({ from: start, digit: 2 });
14
+ */
2
15
  export declare const getExecutedPerformance: (opts: {
3
16
  from: number;
4
17
  digit?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"performance.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/performance.utility.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB,cAEpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,MAAM;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,WAE5E,CAAC"}
1
+ {"version":3,"file":"performance.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/performance.utility.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,wBAAwB,cAEpC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,WAE5E,CAAC"}
@@ -1,14 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getExecutedPerformance = exports.getPerformanceCheckpoint = void 0;
4
- const _1 = require(".");
4
+ const parse_utility_1 = require("./parse.utility");
5
5
  const DEFAULT_PERFORMANCE_DECIMAL = 6;
6
+ /**
7
+ * Gets a high-resolution timestamp for performance tracking
8
+ * @returns Current performance.now() value
9
+ */
6
10
  const getPerformanceCheckpoint = () => {
7
11
  return performance.now();
8
12
  };
9
13
  exports.getPerformanceCheckpoint = getPerformanceCheckpoint;
14
+ /**
15
+ * Calculates elapsed time from a given checkpoint with precision
16
+ * @param opts - Options with starting checkpoint and decimal digits
17
+ * @returns Formatted float of elapsed time in milliseconds
18
+ * @example
19
+ * const start = getPerformanceCheckpoint();
20
+ * // ... do work ...
21
+ * const elapsed = getExecutedPerformance({ from: start, digit: 2 });
22
+ */
10
23
  const getExecutedPerformance = (opts) => {
11
- return (0, _1.float)(performance.now() - opts.from, opts.digit ?? DEFAULT_PERFORMANCE_DECIMAL);
24
+ return (0, parse_utility_1.float)(performance.now() - opts.from, opts.digit ?? DEFAULT_PERFORMANCE_DECIMAL);
12
25
  };
13
26
  exports.getExecutedPerformance = getExecutedPerformance;
14
27
  //# sourceMappingURL=performance.utility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"performance.utility.js","sourceRoot":"","sources":["../../src/utilities/performance.utility.ts"],"names":[],"mappings":";;;AAAA,wBAA0B;AAE1B,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE/B,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;AAC3B,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AAEK,MAAM,sBAAsB,GAAG,CAAC,IAAsC,EAAE,EAAE;IAC/E,OAAO,IAAA,QAAK,EAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,2BAA2B,CAAC,CAAC;AACzF,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC"}
1
+ {"version":3,"file":"performance.utility.js","sourceRoot":"","sources":["../../src/utilities/performance.utility.ts"],"names":[],"mappings":";;;AAAA,mDAAwC;AAExC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAEtC;;;GAGG;AACI,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;AAC3B,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AAEF;;;;;;;;GAQG;AACI,MAAM,sBAAsB,GAAG,CAAC,IAAsC,EAAE,EAAE;IAC/E,OAAO,IAAA,qBAAK,EAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,2BAA2B,CAAC,CAAC;AACzF,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC"}
@@ -1,28 +1,28 @@
1
- import { ValueOrPromise } from '../common';
1
+ import { ValueOrPromise } from '../common/types';
2
+ /**
3
+ * Task generator function that returns a Promise
4
+ */
2
5
  type TTask<T> = () => Promise<T>;
3
6
  /**
4
- * Execute all tasks with limit number of asyncronous tasks.
5
- * Whenever 1 task's resolved next task will be executed.
7
+ * Execute all tasks with a concurrency limit.
8
+ * Whenever a task is resolved, the next task in the queue is executed immediately.
6
9
  *
7
- * @example
8
- * With 20 tasks need to execute with limit is 5 tasks asyncronous
9
- * ```
10
- * const tasks = <Array of 20 functions which return promises>
11
- * await executePromiseWithLimit({
12
- * tasks,
13
- * limit: 5,
14
- onTaskDone: (opts: { result: any }) => {
15
- // Do something on task done
16
- },
17
- * })
18
- * ```
10
+ * @param opts - Execution options including tasks, limit, and callback
11
+ * @returns A promise that resolves to an array of all task results
12
+ * @example
13
+ * const tasks = [() => fetch('url1'), () => fetch('url2'), ...];
14
+ * const results = await executePromiseWithLimit({
15
+ * tasks,
16
+ * limit: 5,
17
+ * onTaskDone: ({ result }) => console.log('Task finished:', result)
18
+ * });
19
19
  */
20
20
  export declare const executePromiseWithLimit: <T>(opts: {
21
21
  tasks: Array<TTask<T>>;
22
22
  limit: number;
23
- onTaskDone?: <R>(opts: {
24
- result: R;
23
+ onTaskDone?: (opts: {
24
+ result: T;
25
25
  }) => ValueOrPromise<void>;
26
- }) => Promise<Awaited<T>[]>;
26
+ }) => Promise<T[]>;
27
27
  export {};
28
28
  //# sourceMappingURL=promise.utility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"promise.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/promise.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,GAAU,CAAC,EAAE,MAAM;IACrD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;CAC/D,0BAuBA,CAAC"}
1
+ {"version":3,"file":"promise.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/promise.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAAU,CAAC,EAAE,MAAM;IACrD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;CAC5D,KAAG,OAAO,CAAC,CAAC,EAAE,CAyBd,CAAC"}
@@ -2,36 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executePromiseWithLimit = void 0;
4
4
  /**
5
- * Execute all tasks with limit number of asyncronous tasks.
6
- * Whenever 1 task's resolved next task will be executed.
5
+ * Execute all tasks with a concurrency limit.
6
+ * Whenever a task is resolved, the next task in the queue is executed immediately.
7
7
  *
8
- * @example
9
- * With 20 tasks need to execute with limit is 5 tasks asyncronous
10
- * ```
11
- * const tasks = <Array of 20 functions which return promises>
12
- * await executePromiseWithLimit({
13
- * tasks,
14
- * limit: 5,
15
- onTaskDone: (opts: { result: any }) => {
16
- // Do something on task done
17
- },
18
- * })
19
- * ```
8
+ * @param opts - Execution options including tasks, limit, and callback
9
+ * @returns A promise that resolves to an array of all task results
10
+ * @example
11
+ * const tasks = [() => fetch('url1'), () => fetch('url2'), ...];
12
+ * const results = await executePromiseWithLimit({
13
+ * tasks,
14
+ * limit: 5,
15
+ * onTaskDone: ({ result }) => console.log('Task finished:', result)
16
+ * });
20
17
  */
21
18
  const executePromiseWithLimit = async (opts) => {
22
19
  const { tasks, limit, onTaskDone } = opts;
23
20
  const results = [];
24
21
  const executing = new Set();
25
22
  for (const task of tasks) {
26
- const promise = task().then(result => {
23
+ const promise = task().then(async (result) => {
27
24
  executing.delete(promise);
25
+ if (onTaskDone) {
26
+ await onTaskDone({ result });
27
+ }
28
28
  return result;
29
29
  });
30
30
  executing.add(promise);
31
31
  results.push(promise);
32
32
  if (executing.size >= limit) {
33
- const done = await Promise.race(executing);
34
- onTaskDone?.({ result: done });
33
+ await Promise.race(executing);
35
34
  }
36
35
  }
37
36
  await Promise.all(executing);
@@ -1 +1 @@
1
- {"version":3,"file":"promise.utility.js","sourceRoot":"","sources":["../../src/utilities/promise.utility.ts"],"names":[],"mappings":";;;AAIA;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAAK,IAIhD,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAE1C,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACnC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,SAAS,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AA3BW,QAAA,uBAAuB,2BA2BlC"}
1
+ {"version":3,"file":"promise.utility.js","sourceRoot":"","sources":["../../src/utilities/promise.utility.ts"],"names":[],"mappings":";;;AAOA;;;;;;;;;;;;;GAaG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAAK,IAIhD,EAAgB,EAAE;IACjB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAE1C,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YACzC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,SAAS,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;YAC5B,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AA7BW,QAAA,uBAAuB,2BA6BlC"}
@@ -1,5 +1,13 @@
1
- import { AnyType, EntityClassType } from '../common';
2
- import { BaseEntity } from '../base/models';
1
+ import { AnyType, EntityClassType } from '../common/types';
2
+ import { BaseEntity } from '../base/models/base.model';
3
+ /**
4
+ * Generates table and column definitions for SQL queries based on LoopBack models
5
+ * @param opts - Configuration with model class and optional alias
6
+ * @returns Object containing table name, alias, and column mapping
7
+ * @example
8
+ * const def = getTableDefinition({ model: User, alias: 'u' });
9
+ * // { table: { name: 'User', alias: 'u', ... }, columns: { id: 'u.id', ... } }
10
+ */
3
11
  export declare const getTableDefinition: <T extends BaseEntity>(opts: {
4
12
  model: EntityClassType<T>;
5
13
  alias?: string;
@@ -13,7 +21,20 @@ export declare const getTableDefinition: <T extends BaseEntity>(opts: {
13
21
  columns: { [key in keyof T]: string; };
14
22
  columnsNoAlias: { [key in keyof T]: string; };
15
23
  };
16
- export declare const getValue: (value: AnyType) => any;
24
+ /**
25
+ * Safely formats a value for use in a SQL query string
26
+ * @param value - The value to format
27
+ * @returns Formatted SQL string value
28
+ * @example
29
+ * getValue('O\'Reilly') // "'O''Reilly'"
30
+ * getValue(123) // "123"
31
+ */
32
+ export declare const getValue: (value: AnyType) => string;
33
+ /**
34
+ * Builds a PostgreSQL-compatible batch update query using WITH and VALUES
35
+ * @param opts - Configuration for batch update
36
+ * @returns SQL UPDATE query string
37
+ */
17
38
  export declare const buildBatchUpdateQuery: <E>(opts: {
18
39
  tableName: string;
19
40
  keys: (keyof E)[];
@@ -1 +1 @@
1
- {"version":3,"file":"query.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/query.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAMpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,UAAU,EAAE,MAAM;IAC7D,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,KAsCM;IACH,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,GAAE,CAAC;IACtC,cAAc,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,GAAE,CAAC;CAEhD,CAAC;AAGF,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,QAqBtC,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAI,CAAC,EAAE,MAAM;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,EAAE,CAAC;IAClE,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,EAAE,CAAC;IACpE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,KAAG,MAwFH,CAAC"}
1
+ {"version":3,"file":"query.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/query.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAM1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,UAAU,EAAE,MAAM;IAC7D,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,KAsCM;IACH,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,GAAE,CAAC;IACtC,cAAc,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,GAAE,CAAC;CAEhD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,WAwBtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,EAAE,MAAM;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,EAAE,CAAC;IAClE,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,EAAE,CAAC;IACpE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,KAAG,MAwFH,CAAC"}