typeorm 0.3.21-dev.28a8383 → 0.3.21-dev.30f801f

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 (220) hide show
  1. package/README.md +7 -4
  2. package/browser/cache/QueryResultCache.d.ts +4 -2
  3. package/browser/cache/QueryResultCache.js.map +1 -1
  4. package/browser/connection/ConnectionOptionsReader.d.ts +4 -4
  5. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +0 -1
  6. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +4 -0
  7. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  8. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +0 -1
  9. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +0 -1
  10. package/browser/driver/cockroachdb/CockroachQueryRunner.js +5 -3
  11. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  12. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +0 -1
  13. package/browser/driver/mongodb/MongoQueryRunner.d.ts +0 -1
  14. package/browser/driver/mongodb/typings.d.ts +0 -8
  15. package/browser/driver/mongodb/typings.js +0 -1
  16. package/browser/driver/mongodb/typings.js.map +1 -1
  17. package/browser/driver/mysql/MysqlQueryRunner.d.ts +0 -1
  18. package/browser/driver/oracle/OracleQueryRunner.d.ts +0 -1
  19. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +0 -1
  20. package/browser/driver/postgres/PostgresQueryRunner.d.ts +0 -1
  21. package/browser/driver/postgres/PostgresQueryRunner.js +5 -1
  22. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  23. package/browser/driver/sap/SapQueryRunner.d.ts +0 -1
  24. package/browser/driver/spanner/SpannerQueryRunner.d.ts +0 -1
  25. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +0 -1
  26. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +0 -1
  27. package/browser/find-options/FindOptionsOrder.d.ts +0 -1
  28. package/browser/find-options/FindOptionsRelations.d.ts +0 -1
  29. package/browser/find-options/FindOptionsSelect.d.ts +0 -1
  30. package/browser/find-options/FindOptionsWhere.d.ts +0 -1
  31. package/browser/metadata/ColumnMetadata.js +18 -9
  32. package/browser/metadata/ColumnMetadata.js.map +1 -1
  33. package/browser/platform/PlatformTools.d.ts +0 -4
  34. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  35. package/browser/query-builder/QueryBuilder.js.map +1 -1
  36. package/browser/query-builder/SelectQueryBuilder.d.ts +0 -1
  37. package/browser/query-runner/QueryRunner.d.ts +0 -1
  38. package/browser/schema-builder/RdbmsSchemaBuilder.js +1 -1
  39. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  40. package/cache/QueryResultCache.d.ts +4 -2
  41. package/cache/QueryResultCache.js.map +1 -1
  42. package/commands/InitCommand.js +1 -1
  43. package/commands/InitCommand.js.map +1 -1
  44. package/connection/ConnectionOptionsReader.d.ts +4 -4
  45. package/container.js +2 -3
  46. package/container.js.map +1 -1
  47. package/decorator/Check.js +1 -2
  48. package/decorator/Check.js.map +1 -1
  49. package/decorator/EntityRepository.js +1 -2
  50. package/decorator/EntityRepository.js.map +1 -1
  51. package/decorator/Exclusion.js +1 -2
  52. package/decorator/Exclusion.js.map +1 -1
  53. package/decorator/Generated.js +1 -2
  54. package/decorator/Generated.js.map +1 -1
  55. package/decorator/Index.js +1 -2
  56. package/decorator/Index.js.map +1 -1
  57. package/decorator/Unique.js +1 -2
  58. package/decorator/Unique.js.map +1 -1
  59. package/decorator/columns/Column.js +1 -2
  60. package/decorator/columns/Column.js.map +1 -1
  61. package/decorator/columns/CreateDateColumn.js +1 -2
  62. package/decorator/columns/CreateDateColumn.js.map +1 -1
  63. package/decorator/columns/DeleteDateColumn.js +1 -2
  64. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  65. package/decorator/columns/ObjectIdColumn.js +1 -2
  66. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  67. package/decorator/columns/PrimaryColumn.js +1 -2
  68. package/decorator/columns/PrimaryColumn.js.map +1 -1
  69. package/decorator/columns/PrimaryGeneratedColumn.js +1 -2
  70. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  71. package/decorator/columns/UpdateDateColumn.js +1 -2
  72. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  73. package/decorator/columns/VersionColumn.js +1 -2
  74. package/decorator/columns/VersionColumn.js.map +1 -1
  75. package/decorator/columns/ViewColumn.js +1 -2
  76. package/decorator/columns/ViewColumn.js.map +1 -1
  77. package/decorator/columns/VirtualColumn.js +1 -2
  78. package/decorator/columns/VirtualColumn.js.map +1 -1
  79. package/decorator/entity/ChildEntity.js +1 -2
  80. package/decorator/entity/ChildEntity.js.map +1 -1
  81. package/decorator/entity/Entity.js +1 -2
  82. package/decorator/entity/Entity.js.map +1 -1
  83. package/decorator/entity/TableInheritance.js +1 -2
  84. package/decorator/entity/TableInheritance.js.map +1 -1
  85. package/decorator/entity-view/ViewEntity.js +1 -2
  86. package/decorator/entity-view/ViewEntity.js.map +1 -1
  87. package/decorator/listeners/AfterInsert.js +1 -2
  88. package/decorator/listeners/AfterInsert.js.map +1 -1
  89. package/decorator/listeners/AfterLoad.js +1 -2
  90. package/decorator/listeners/AfterLoad.js.map +1 -1
  91. package/decorator/listeners/AfterRecover.js +1 -2
  92. package/decorator/listeners/AfterRecover.js.map +1 -1
  93. package/decorator/listeners/AfterRemove.js +1 -2
  94. package/decorator/listeners/AfterRemove.js.map +1 -1
  95. package/decorator/listeners/AfterSoftRemove.js +1 -2
  96. package/decorator/listeners/AfterSoftRemove.js.map +1 -1
  97. package/decorator/listeners/AfterUpdate.js +1 -2
  98. package/decorator/listeners/AfterUpdate.js.map +1 -1
  99. package/decorator/listeners/BeforeInsert.js +1 -2
  100. package/decorator/listeners/BeforeInsert.js.map +1 -1
  101. package/decorator/listeners/BeforeRecover.js +1 -2
  102. package/decorator/listeners/BeforeRecover.js.map +1 -1
  103. package/decorator/listeners/BeforeRemove.js +1 -2
  104. package/decorator/listeners/BeforeRemove.js.map +1 -1
  105. package/decorator/listeners/BeforeSoftRemove.js +1 -2
  106. package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  107. package/decorator/listeners/BeforeUpdate.js +1 -2
  108. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  109. package/decorator/listeners/EventSubscriber.js +1 -2
  110. package/decorator/listeners/EventSubscriber.js.map +1 -1
  111. package/decorator/relations/JoinColumn.js +1 -2
  112. package/decorator/relations/JoinColumn.js.map +1 -1
  113. package/decorator/relations/JoinTable.js +1 -2
  114. package/decorator/relations/JoinTable.js.map +1 -1
  115. package/decorator/relations/ManyToMany.js +1 -2
  116. package/decorator/relations/ManyToMany.js.map +1 -1
  117. package/decorator/relations/ManyToOne.js +1 -2
  118. package/decorator/relations/ManyToOne.js.map +1 -1
  119. package/decorator/relations/OneToMany.js +1 -2
  120. package/decorator/relations/OneToMany.js.map +1 -1
  121. package/decorator/relations/OneToOne.js +1 -2
  122. package/decorator/relations/OneToOne.js.map +1 -1
  123. package/decorator/relations/RelationCount.js +1 -2
  124. package/decorator/relations/RelationCount.js.map +1 -1
  125. package/decorator/relations/RelationId.js +1 -2
  126. package/decorator/relations/RelationId.js.map +1 -1
  127. package/decorator/tree/Tree.js +1 -2
  128. package/decorator/tree/Tree.js.map +1 -1
  129. package/decorator/tree/TreeChildren.js +1 -2
  130. package/decorator/tree/TreeChildren.js.map +1 -1
  131. package/decorator/tree/TreeLevelColumn.js +1 -2
  132. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  133. package/decorator/tree/TreeParent.js +1 -2
  134. package/decorator/tree/TreeParent.js.map +1 -1
  135. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +0 -1
  136. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +4 -0
  137. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  138. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +0 -1
  139. package/driver/cockroachdb/CockroachQueryRunner.d.ts +0 -1
  140. package/driver/cockroachdb/CockroachQueryRunner.js +5 -3
  141. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  142. package/driver/mongodb/MongoConnectionOptions.d.ts +0 -1
  143. package/driver/mongodb/MongoQueryRunner.d.ts +0 -1
  144. package/driver/mongodb/typings.d.ts +0 -8
  145. package/driver/mongodb/typings.js +0 -1
  146. package/driver/mongodb/typings.js.map +1 -1
  147. package/driver/mysql/MysqlQueryRunner.d.ts +0 -1
  148. package/driver/oracle/OracleQueryRunner.d.ts +0 -1
  149. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +0 -1
  150. package/driver/postgres/PostgresQueryRunner.d.ts +0 -1
  151. package/driver/postgres/PostgresQueryRunner.js +5 -1
  152. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  153. package/driver/sap/SapQueryRunner.d.ts +0 -1
  154. package/driver/spanner/SpannerQueryRunner.d.ts +0 -1
  155. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +0 -1
  156. package/driver/sqlserver/SqlServerQueryRunner.d.ts +0 -1
  157. package/find-options/FindOptionsOrder.d.ts +0 -1
  158. package/find-options/FindOptionsRelations.d.ts +0 -1
  159. package/find-options/FindOptionsSelect.d.ts +0 -1
  160. package/find-options/FindOptionsWhere.d.ts +0 -1
  161. package/find-options/operator/And.js +1 -2
  162. package/find-options/operator/And.js.map +1 -1
  163. package/find-options/operator/Any.js +1 -2
  164. package/find-options/operator/Any.js.map +1 -1
  165. package/find-options/operator/ArrayContainedBy.js +1 -2
  166. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  167. package/find-options/operator/ArrayContains.js +1 -2
  168. package/find-options/operator/ArrayContains.js.map +1 -1
  169. package/find-options/operator/ArrayOverlap.js +1 -2
  170. package/find-options/operator/ArrayOverlap.js.map +1 -1
  171. package/find-options/operator/Between.js +1 -2
  172. package/find-options/operator/Between.js.map +1 -1
  173. package/find-options/operator/Equal.js +1 -2
  174. package/find-options/operator/Equal.js.map +1 -1
  175. package/find-options/operator/ILike.js +1 -2
  176. package/find-options/operator/ILike.js.map +1 -1
  177. package/find-options/operator/In.js +1 -2
  178. package/find-options/operator/In.js.map +1 -1
  179. package/find-options/operator/IsNull.js +1 -2
  180. package/find-options/operator/IsNull.js.map +1 -1
  181. package/find-options/operator/JsonContains.js +1 -2
  182. package/find-options/operator/JsonContains.js.map +1 -1
  183. package/find-options/operator/LessThan.js +1 -2
  184. package/find-options/operator/LessThan.js.map +1 -1
  185. package/find-options/operator/LessThanOrEqual.js +1 -2
  186. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  187. package/find-options/operator/Like.js +1 -2
  188. package/find-options/operator/Like.js.map +1 -1
  189. package/find-options/operator/MoreThan.js +1 -2
  190. package/find-options/operator/MoreThan.js.map +1 -1
  191. package/find-options/operator/MoreThanOrEqual.js +1 -2
  192. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  193. package/find-options/operator/Not.js +1 -2
  194. package/find-options/operator/Not.js.map +1 -1
  195. package/find-options/operator/Or.js +1 -2
  196. package/find-options/operator/Or.js.map +1 -1
  197. package/find-options/operator/Raw.js +1 -2
  198. package/find-options/operator/Raw.js.map +1 -1
  199. package/globals.js +14 -15
  200. package/globals.js.map +1 -1
  201. package/metadata/ColumnMetadata.js +18 -9
  202. package/metadata/ColumnMetadata.js.map +1 -1
  203. package/package.json +1 -1
  204. package/platform/PlatformTools.d.ts +0 -4
  205. package/query-builder/InsertQueryBuilder.js.map +1 -1
  206. package/query-builder/QueryBuilder.js.map +1 -1
  207. package/query-builder/SelectQueryBuilder.d.ts +0 -1
  208. package/query-builder/index.js +1 -2
  209. package/query-builder/index.js.map +1 -1
  210. package/query-runner/QueryRunner.d.ts +0 -1
  211. package/schema-builder/RdbmsSchemaBuilder.js +1 -1
  212. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  213. package/util/DirectoryExportedClassesLoader.js +2 -3
  214. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  215. package/util/ImportUtils.js +1 -2
  216. package/util/ImportUtils.js.map +1 -1
  217. package/util/PathUtils.js +3 -4
  218. package/util/PathUtils.js.map +1 -1
  219. package/util/StringUtils.js +6 -7
  220. package/util/StringUtils.js.map +1 -1
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hash = exports.shorten = exports.abbreviate = exports.titleCase = exports.snakeCase = exports.camelCase = void 0;
3
+ exports.camelCase = camelCase;
4
+ exports.snakeCase = snakeCase;
5
+ exports.titleCase = titleCase;
6
+ exports.abbreviate = abbreviate;
7
+ exports.shorten = shorten;
8
+ exports.hash = hash;
4
9
  const tslib_1 = require("tslib");
5
10
  const sha_js_1 = tslib_1.__importDefault(require("sha.js"));
6
11
  /**
@@ -17,7 +22,6 @@ function camelCase(str, firstCapital = false) {
17
22
  return p1.toLowerCase();
18
23
  });
19
24
  }
20
- exports.camelCase = camelCase;
21
25
  /**
22
26
  * Converts string into snake_case.
23
27
  *
@@ -30,7 +34,6 @@ function snakeCase(str) {
30
34
  .replace(/([a-z0-9])([A-Z])/g, "$1_$2")
31
35
  .toLowerCase());
32
36
  }
33
- exports.snakeCase = snakeCase;
34
37
  /**
35
38
  * Converts string into Title Case.
36
39
  *
@@ -39,7 +42,6 @@ exports.snakeCase = snakeCase;
39
42
  function titleCase(str) {
40
43
  return str.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());
41
44
  }
42
- exports.titleCase = titleCase;
43
45
  /**
44
46
  * Builds abbreviated string from given string;
45
47
  */
@@ -52,7 +54,6 @@ function abbreviate(str, abbrLettersCount = 1) {
52
54
  return res;
53
55
  }, "");
54
56
  }
55
- exports.abbreviate = abbreviate;
56
57
  /**
57
58
  * Shorten a given `input`. Useful for RDBMS imposing a limit on the
58
59
  * maximum length of aliases and column names in SQL queries.
@@ -93,7 +94,6 @@ function shorten(input, options = {}) {
93
94
  }, []);
94
95
  return shortSegments.join(separator);
95
96
  }
96
- exports.shorten = shorten;
97
97
  /**
98
98
  * Returns a hashed input.
99
99
  *
@@ -109,6 +109,5 @@ function hash(input, options = {}) {
109
109
  }
110
110
  return hashedInput;
111
111
  }
112
- exports.hash = hash;
113
112
 
114
113
  //# sourceMappingURL=StringUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/StringUtils.ts"],"names":[],"mappings":"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","file":"StringUtils.js","sourcesContent":["import shajs from \"sha.js\"\n\n/**\n * Converts string into camelCase.\n *\n * @see http://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case\n */\nexport function camelCase(str: string, firstCapital: boolean = false): string {\n if (firstCapital) str = \" \" + str\n return str.replace(/^([A-Z])|[\\s-_](\\w)/g, function (match, p1, p2) {\n if (p2) return p2.toUpperCase()\n return p1.toLowerCase()\n })\n}\n\n/**\n * Converts string into snake_case.\n *\n */\nexport function snakeCase(str: string): string {\n return (\n str\n // ABc -> a_bc\n .replace(/([A-Z])([A-Z])([a-z])/g, \"$1_$2$3\")\n // aC -> a_c\n .replace(/([a-z0-9])([A-Z])/g, \"$1_$2\")\n .toLowerCase()\n )\n}\n\n/**\n * Converts string into Title Case.\n *\n * @see http://stackoverflow.com/questions/196972/convert-string-to-title-case-with-javascript\n */\nexport function titleCase(str: string): string {\n return str.replace(\n /\\w\\S*/g,\n (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(),\n )\n}\n\n/**\n * Builds abbreviated string from given string;\n */\nexport function abbreviate(str: string, abbrLettersCount: number = 1): string {\n const words = str\n .replace(/([a-z\\xE0-\\xFF])([A-Z\\xC0\\xDF])/g, \"$1 $2\")\n .split(\" \")\n return words.reduce((res, word) => {\n res += word.substr(0, abbrLettersCount)\n return res\n }, \"\")\n}\n\nexport interface IShortenOptions {\n /** String used to split \"segments\" of the alias/column name */\n separator?: string\n /** Maximum length of any \"segment\" */\n segmentLength?: number\n /** Length of any \"term\" in a \"segment\"; \"OrderItem\" is a segment, \"Order\" and \"Items\" are terms */\n termLength?: number\n}\n\n/**\n * Shorten a given `input`. Useful for RDBMS imposing a limit on the\n * maximum length of aliases and column names in SQL queries.\n *\n * @param input String to be shortened.\n * @param options Default to `4` for segments length, `2` for terms length, `'__'` as a separator.\n *\n * @return Shortened `input`.\n *\n * @example\n * // returns: \"UsShCa__orde__mark__dire\"\n * shorten('UserShoppingCart__order__market__director')\n *\n * // returns: \"cat_wit_ver_lon_nam_pos_wit_ver_lon_nam_pos_wit_ver_lon_nam\"\n * shorten(\n * 'category_with_very_long_name_posts_with_very_long_name_post_with_very_long_name',\n * { separator: '_', segmentLength: 3 }\n * )\n *\n * // equals: UsShCa__orde__mark_market_id\n * `${shorten('UserShoppingCart__order__market')}_market_id`\n */\nexport function shorten(input: string, options: IShortenOptions = {}): string {\n const { segmentLength = 4, separator = \"__\", termLength = 2 } = options\n\n const segments = input.split(separator)\n const shortSegments = segments.reduce((acc: string[], val: string) => {\n // split the given segment into many terms based on an eventual camel cased name\n const segmentTerms = val\n .replace(/([a-z\\xE0-\\xFF])([A-Z\\xC0-\\xDF])/g, \"$1 $2\")\n .split(\" \")\n // \"OrderItemList\" becomes \"OrItLi\", while \"company\" becomes \"comp\"\n const length = segmentTerms.length > 1 ? termLength : segmentLength\n const shortSegment = segmentTerms\n .map((term) => term.substr(0, length))\n .join(\"\")\n\n acc.push(shortSegment)\n return acc\n }, [])\n\n return shortSegments.join(separator)\n}\n\ninterface IHashOptions {\n length?: number\n}\n\n/**\n * Returns a hashed input.\n *\n * @param input String to be hashed.\n * @param options.length Optionally, shorten the output to desired length.\n */\nexport function hash(input: string, options: IHashOptions = {}): string {\n const hashFunction = shajs(\"sha1\")\n hashFunction.update(input, \"utf8\")\n const hashedInput = hashFunction.digest(\"hex\")\n if (options.length) {\n return hashedInput.slice(0, options.length)\n }\n return hashedInput\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/util/StringUtils.ts"],"names":[],"mappings":"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","file":"StringUtils.js","sourcesContent":["import shajs from \"sha.js\"\n\n/**\n * Converts string into camelCase.\n *\n * @see http://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case\n */\nexport function camelCase(str: string, firstCapital: boolean = false): string {\n if (firstCapital) str = \" \" + str\n return str.replace(/^([A-Z])|[\\s-_](\\w)/g, function (match, p1, p2) {\n if (p2) return p2.toUpperCase()\n return p1.toLowerCase()\n })\n}\n\n/**\n * Converts string into snake_case.\n *\n */\nexport function snakeCase(str: string): string {\n return (\n str\n // ABc -> a_bc\n .replace(/([A-Z])([A-Z])([a-z])/g, \"$1_$2$3\")\n // aC -> a_c\n .replace(/([a-z0-9])([A-Z])/g, \"$1_$2\")\n .toLowerCase()\n )\n}\n\n/**\n * Converts string into Title Case.\n *\n * @see http://stackoverflow.com/questions/196972/convert-string-to-title-case-with-javascript\n */\nexport function titleCase(str: string): string {\n return str.replace(\n /\\w\\S*/g,\n (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(),\n )\n}\n\n/**\n * Builds abbreviated string from given string;\n */\nexport function abbreviate(str: string, abbrLettersCount: number = 1): string {\n const words = str\n .replace(/([a-z\\xE0-\\xFF])([A-Z\\xC0\\xDF])/g, \"$1 $2\")\n .split(\" \")\n return words.reduce((res, word) => {\n res += word.substr(0, abbrLettersCount)\n return res\n }, \"\")\n}\n\nexport interface IShortenOptions {\n /** String used to split \"segments\" of the alias/column name */\n separator?: string\n /** Maximum length of any \"segment\" */\n segmentLength?: number\n /** Length of any \"term\" in a \"segment\"; \"OrderItem\" is a segment, \"Order\" and \"Items\" are terms */\n termLength?: number\n}\n\n/**\n * Shorten a given `input`. Useful for RDBMS imposing a limit on the\n * maximum length of aliases and column names in SQL queries.\n *\n * @param input String to be shortened.\n * @param options Default to `4` for segments length, `2` for terms length, `'__'` as a separator.\n *\n * @return Shortened `input`.\n *\n * @example\n * // returns: \"UsShCa__orde__mark__dire\"\n * shorten('UserShoppingCart__order__market__director')\n *\n * // returns: \"cat_wit_ver_lon_nam_pos_wit_ver_lon_nam_pos_wit_ver_lon_nam\"\n * shorten(\n * 'category_with_very_long_name_posts_with_very_long_name_post_with_very_long_name',\n * { separator: '_', segmentLength: 3 }\n * )\n *\n * // equals: UsShCa__orde__mark_market_id\n * `${shorten('UserShoppingCart__order__market')}_market_id`\n */\nexport function shorten(input: string, options: IShortenOptions = {}): string {\n const { segmentLength = 4, separator = \"__\", termLength = 2 } = options\n\n const segments = input.split(separator)\n const shortSegments = segments.reduce((acc: string[], val: string) => {\n // split the given segment into many terms based on an eventual camel cased name\n const segmentTerms = val\n .replace(/([a-z\\xE0-\\xFF])([A-Z\\xC0-\\xDF])/g, \"$1 $2\")\n .split(\" \")\n // \"OrderItemList\" becomes \"OrItLi\", while \"company\" becomes \"comp\"\n const length = segmentTerms.length > 1 ? termLength : segmentLength\n const shortSegment = segmentTerms\n .map((term) => term.substr(0, length))\n .join(\"\")\n\n acc.push(shortSegment)\n return acc\n }, [])\n\n return shortSegments.join(separator)\n}\n\ninterface IHashOptions {\n length?: number\n}\n\n/**\n * Returns a hashed input.\n *\n * @param input String to be hashed.\n * @param options.length Optionally, shorten the output to desired length.\n */\nexport function hash(input: string, options: IHashOptions = {}): string {\n const hashFunction = shajs(\"sha1\")\n hashFunction.update(input, \"utf8\")\n const hashedInput = hashFunction.digest(\"hex\")\n if (options.length) {\n return hashedInput.slice(0, options.length)\n }\n return hashedInput\n}\n"],"sourceRoot":".."}