@hichchi/utils 0.0.1-beta.2 → 0.0.2

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 (90) hide show
  1. package/index.cjs.default.js +1 -0
  2. package/index.cjs.js +3645 -0
  3. package/index.cjs.mjs +2 -0
  4. package/index.d.ts +1 -5
  5. package/index.esm.js +3575 -0
  6. package/package.json +13 -8
  7. package/src/index.d.ts +5 -0
  8. package/{interfaces → src/interfaces}/infinite-object.interface.d.ts +3 -3
  9. package/{interfaces → src/interfaces}/path-value-set.interface.d.ts +12 -12
  10. package/{types → src/types}/deep-partial.type.d.ts +6 -0
  11. package/{types → src/types}/literal-object.type.d.ts +2 -2
  12. package/{utils → src/utils}/index.d.ts +1 -0
  13. package/{utils → src/utils}/object.utils.d.ts +23 -19
  14. package/CHANGELOG.md +0 -19
  15. package/README.md +0 -7944
  16. package/constants/constants.js +0 -227
  17. package/constants/constants.js.map +0 -1
  18. package/constants/english-inflection-rules.js +0 -360
  19. package/constants/english-inflection-rules.js.map +0 -1
  20. package/constants/index.js +0 -6
  21. package/constants/index.js.map +0 -1
  22. package/enums/index.js +0 -5
  23. package/enums/index.js.map +0 -1
  24. package/enums/template-tag.enum.js +0 -39
  25. package/enums/template-tag.enum.js.map +0 -1
  26. package/index.js +0 -9
  27. package/index.js.map +0 -1
  28. package/interfaces/index.js +0 -7
  29. package/interfaces/index.js.map +0 -1
  30. package/interfaces/infinite-object.interface.js +0 -3
  31. package/interfaces/infinite-object.interface.js.map +0 -1
  32. package/interfaces/inflection-rule.interfaces.js +0 -3
  33. package/interfaces/inflection-rule.interfaces.js.map +0 -1
  34. package/interfaces/path-value-set.interface.js +0 -3
  35. package/interfaces/path-value-set.interface.js.map +0 -1
  36. package/readme-top.md +0 -187
  37. package/types/deep-partial.type.js +0 -3
  38. package/types/deep-partial.type.js.map +0 -1
  39. package/types/index.js +0 -38
  40. package/types/index.js.map +0 -1
  41. package/types/is-already-in-path.type.js +0 -3
  42. package/types/is-already-in-path.type.js.map +0 -1
  43. package/types/is-empty.type.js +0 -3
  44. package/types/is-empty.type.js.map +0 -1
  45. package/types/is-primitive.type.js +0 -4
  46. package/types/is-primitive.type.js.map +0 -1
  47. package/types/literal-object.type.js +0 -3
  48. package/types/literal-object.type.js.map +0 -1
  49. package/types/loose-autocomplete.type.js +0 -3
  50. package/types/loose-autocomplete.type.js.map +0 -1
  51. package/types/partial-with-null.type.js +0 -3
  52. package/types/partial-with-null.type.js.map +0 -1
  53. package/types/prettify.type.js +0 -3
  54. package/types/prettify.type.js.map +0 -1
  55. package/types/type.type.js +0 -3
  56. package/types/type.type.js.map +0 -1
  57. package/utils/assertions.utils.js +0 -163
  58. package/utils/assertions.utils.js.map +0 -1
  59. package/utils/file.utils.js +0 -1315
  60. package/utils/file.utils.js.map +0 -1
  61. package/utils/index.js +0 -9
  62. package/utils/index.js.map +0 -1
  63. package/utils/object.utils.js +0 -1069
  64. package/utils/object.utils.js.map +0 -1
  65. package/utils/string-template.utils.js +0 -269
  66. package/utils/string-template.utils.js.map +0 -1
  67. package/utils/string.utils.js +0 -1255
  68. package/utils/string.utils.js.map +0 -1
  69. package/utils/url.utils.js +0 -112
  70. package/utils/url.utils.js.map +0 -1
  71. /package/{constants → src/constants}/constants.d.ts +0 -0
  72. /package/{constants → src/constants}/english-inflection-rules.d.ts +0 -0
  73. /package/{constants → src/constants}/index.d.ts +0 -0
  74. /package/{enums → src/enums}/index.d.ts +0 -0
  75. /package/{enums → src/enums}/template-tag.enum.d.ts +0 -0
  76. /package/{interfaces → src/interfaces}/index.d.ts +0 -0
  77. /package/{interfaces → src/interfaces}/inflection-rule.interfaces.d.ts +0 -0
  78. /package/{types → src/types}/index.d.ts +0 -0
  79. /package/{types → src/types}/is-already-in-path.type.d.ts +0 -0
  80. /package/{types → src/types}/is-empty.type.d.ts +0 -0
  81. /package/{types → src/types}/is-primitive.type.d.ts +0 -0
  82. /package/{types → src/types}/loose-autocomplete.type.d.ts +0 -0
  83. /package/{types → src/types}/partial-with-null.type.d.ts +0 -0
  84. /package/{types → src/types}/prettify.type.d.ts +0 -0
  85. /package/{types → src/types}/type.type.d.ts +0 -0
  86. /package/{utils → src/utils}/assertions.utils.d.ts +0 -0
  87. /package/{utils → src/utils}/file.utils.d.ts +0 -0
  88. /package/{utils → src/utils}/string-template.utils.d.ts +0 -0
  89. /package/{utils → src/utils}/string.utils.d.ts +0 -0
  90. /package/{utils → src/utils}/url.utils.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.utils.js","sourceRoot":"","sources":["../../../../libs/utils/src/utils/object.utils.ts"],"names":[],"mappings":"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"}
@@ -1,269 +0,0 @@
1
- "use strict";
2
- // noinspection JSUnusedGlobalSymbols
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.applyTemplate = applyTemplate;
5
- exports.applyTemplates = applyTemplates;
6
- const string_utils_1 = require("./string.utils");
7
- const enums_1 = require("../enums");
8
- /**
9
- * Applies a value to a template string containing transformation tags.
10
- *
11
- * This function replaces template tags in a string with transformed versions of a provided value.
12
- * It's particularly useful for creating dynamic messages, error notifications, or any text
13
- * that needs to include the same value in different formats.
14
- *
15
- * Each template tag is replaced with the result of applying the corresponding transformation
16
- * function to the provided value. If a tag isn't present in the template string, that
17
- * transformation is skipped.
18
- *
19
- * Available template tags:
20
- * - `#{upperCase}` - Converts to UPPERCASE ("USER")
21
- * - `#{snakeCase}` - Converts to snake_case ("user_profile")
22
- * - `#{upperSnakeCase}` - Converts to UPPER_SNAKE_CASE ("USER_PROFILE")
23
- * - `#{lowerCase}` - Converts to lowercase ("user")
24
- * - `#{sentenceCase}` - Converts to Sentence case ("User profile")
25
- * - `#{firstCase}` - Converts to First case ("User")
26
- * - `#{camelCase}` - Converts to camelCase ("userProfile")
27
- * - `#{pascalCase}` - Converts to PascalCase ("UserProfile")
28
- * - `#{kebabCase}` - Converts to kebab-case ("user-profile")
29
- * - `#{upperKebabCase}` - Converts to KEBAB-CASE ("USER-PROFILE")
30
- * - `#{titleCase}` - Converts to Title Case ("User Profile")
31
- * - `#{lowerCaseBreak}` - Breaks words and converts to lowercase ("user profile")
32
- * - `#{upperCaseBreak}` - Breaks words and converts to UPPERCASE ("USER PROFILE")
33
- * - `#{firstCaseBreak}` - Breaks words and applies First case ("User profile")
34
- * - `#{singular}` - Converts plural to singular form ("users" → "user")
35
- * - `#{number}` - Converts to a number if possible ("123" → 123)
36
- * - `#{htmlToText}` - Removes HTML tags ("<b>User</b>" → "User")
37
- * - `#{format}` - Formats a string with placeholders (used with additional parameters)
38
- *
39
- * @example
40
- * ```typescript
41
- * // Error message with different versions of the same term
42
- * applyTemplate(
43
- * 'Cannot create a #{lowerCase} with this email. #{sentenceCase} already exists.',
44
- * 'User'
45
- * );
46
- * // Output: "Cannot create a user with this email. User already exists."
47
- * ```
48
- *
49
- * @example
50
- * ```typescript
51
- * // Using multiple transformations of the same value
52
- * applyTemplate(
53
- * 'Model: #{pascalCase}\nTable: #{snakeCase}\nAPI Path: #{kebabCase}',
54
- * 'blogPost'
55
- * );
56
- * // Output:
57
- * // Model: BlogPost
58
- * // Table: blog_post
59
- * // API Path: blog-post
60
- * ```
61
- *
62
- * @param {string} str - Template string containing transformation tags
63
- * @param {string} prefix - The prefix to update with
64
- * @returns {string} - The template with all tags replaced by transformed values
65
- *
66
- * @see {@link TemplateTag} For the full list of available template tags
67
- * @see {@link applyTemplates} For applying multiple different values to a template
68
- */
69
- function applyTemplate(str, prefix) {
70
- // Apply all available template tags
71
- return str
72
- .replace(enums_1.TemplateTag.UPPER_CASE, (0, string_utils_1.toUpperCase)(prefix))
73
- .replace(enums_1.TemplateTag.SNAKE_CASE, (0, string_utils_1.toSnakeCase)(prefix))
74
- .replace(enums_1.TemplateTag.UPPER_SNAKE_CASE, (0, string_utils_1.toSnakeCase)(prefix, true))
75
- .replace(enums_1.TemplateTag.LOWER_CASE, (0, string_utils_1.toLowerCase)(prefix))
76
- .replace(enums_1.TemplateTag.SENTENCE_CASE, (0, string_utils_1.toSentenceCase)(prefix))
77
- .replace(enums_1.TemplateTag.FIRST_CASE, (0, string_utils_1.toFirstCase)(prefix))
78
- .replace(enums_1.TemplateTag.CAMEL_CASE, (0, string_utils_1.toCamelCase)(prefix))
79
- .replace(enums_1.TemplateTag.PASCAL_CASE, (0, string_utils_1.toPascalCase)(prefix))
80
- .replace(enums_1.TemplateTag.KEBAB_CASE, (0, string_utils_1.toKebabCase)(prefix))
81
- .replace(enums_1.TemplateTag.UPPER_KEBAB_CASE, (0, string_utils_1.toKebabCase)(prefix, true))
82
- .replace(enums_1.TemplateTag.TITLE_CASE, (0, string_utils_1.toTitleCase)(prefix))
83
- .replace(enums_1.TemplateTag.LOWER_CASE_BREAK, (0, string_utils_1.toLowerCaseBreak)(prefix))
84
- .replace(enums_1.TemplateTag.UPPER_CASE_BREAK, (0, string_utils_1.toUpperCaseBreak)(prefix))
85
- .replace(enums_1.TemplateTag.FIRST_CASE_BREAK, (0, string_utils_1.toFirstCaseBreak)(prefix))
86
- .replace(enums_1.TemplateTag.SINGULAR, (0, string_utils_1.singular)(prefix))
87
- .replace(enums_1.TemplateTag.NUMBER, String((0, string_utils_1.toNumber)(prefix) ?? prefix))
88
- .replace(enums_1.TemplateTag.HTML_TO_TEXT, (0, string_utils_1.htmlToText)(prefix));
89
- }
90
- /**
91
- * Applies multiple named template transformations to a string with different values for each prefix.
92
- *
93
- * This advanced templating function allows you to use multiple different values within a single
94
- * template string, each with their own set of transformation tags. Unlike `applyTemplate` which
95
- * applies one value to all tags, this function lets you specify different values for different
96
- * prefixes, enabling complex template scenarios with multiple entities.
97
- *
98
- * Each prefix in the template is identified by a namespace (e.g., `user`, `post`) followed by
99
- * a dot and the transformation tag (e.g., `#{user.lowerCase}`, `#{post.titleCase}`). This allows
100
- * for sophisticated template generation where different parts of the text need different source
101
- * values with various transformations applied.
102
- *
103
- * This is particularly useful for generating complex messages, code templates, documentation,
104
- * or any text that involves multiple entities that need to be formatted differently within
105
- * the same template.
106
- *
107
- * @param {string} str - Template string containing namespaced transformation tags in the format
108
- * `#{prefix.transformationType}` where prefix matches keys in the prefixes object
109
- * @param {Record<string, string>} prefixes - Object mapping prefix names to their corresponding values.
110
- * Each key becomes a namespace in the template, and the value
111
- * is the string that will be transformed according to the tags.
112
- * @returns {string} The template string with all namespaced tags replaced by their transformed values
113
- *
114
- * @example
115
- * ```typescript
116
- * // Multi-entity message generation
117
- * const message = applyTemplates(
118
- * 'User #{user.lowerCase} created a new #{entity.sentenceCase} titled "#{title.titleCase}"',
119
- * {
120
- * user: 'JohnDoe',
121
- * entity: 'blogPost',
122
- * title: 'my first programming tutorial'
123
- * }
124
- * );
125
- * // Returns: "User johndoe created a new Blog post titled "My First Programming Tutorial""
126
- * ```
127
- *
128
- * @example
129
- * ```typescript
130
- * // Code generation with multiple entities
131
- * const codeTemplate = applyTemplates(
132
- * `class #{model.pascalCase} {
133
- * constructor(private #{service.camelCase}: #{service.pascalCase}Service) {}
134
- *
135
- * async create#{model.pascalCase}(data: #{model.pascalCase}Data): Promise<#{model.pascalCase}> {
136
- * return this.#{service.camelCase}.create(data);
137
- * }
138
- * }`,
139
- * {
140
- * model: 'user-profile',
141
- * service: 'database'
142
- * }
143
- * );
144
- * // Generates a complete class with proper naming conventions
145
- * ```
146
- *
147
- * @example
148
- * ```typescript
149
- * // API documentation generation
150
- * const apiDoc = applyTemplates(
151
- * `## #{endpoint.titleCase}
152
- *
153
- * **URL:** \`/api/#{endpoint.kebabCase}\`
154
- * **Method:** #{method.upperCase}
155
- * **Model:** #{model.pascalCase}
156
- *
157
- * Creates a new #{model.lowerCaseBreak} in the system.`,
158
- * {
159
- * endpoint: 'userProfiles',
160
- * method: 'post',
161
- * model: 'UserProfile'
162
- * }
163
- * );
164
- * ```
165
- *
166
- * @example
167
- * ```typescript
168
- * // Database migration script generation
169
- * const migration = applyTemplates(
170
- * `CREATE TABLE #{table.snakeCase} (
171
- * id SERIAL PRIMARY KEY,
172
- * #{field.snakeCase} VARCHAR(255) NOT NULL,
173
- * created_at TIMESTAMP DEFAULT NOW()
174
- * );
175
- *
176
- * CREATE INDEX idx_#{table.snakeCase}_#{field.snakeCase} ON #{table.snakeCase}(#{field.snakeCase});`,
177
- * {
178
- * table: 'UserProfiles',
179
- * field: 'emailAddress'
180
- * }
181
- * );
182
- * ```
183
- *
184
- * @remarks
185
- * - Each prefix in the prefixes object becomes a namespace in the template
186
- * - Template tags must follow the format `#{prefix.transformationType}`
187
- * - All transformation types available in `applyTemplate` are supported
188
- * - If a prefixed tag is not found in the template, it's simply ignored
189
- * - The function processes all prefixes and their transformations in the order they appear
190
- * - Supports the same transformation types as the TemplateTag enum
191
- * - More flexible than `applyTemplate` but with slightly more complex syntax
192
- *
193
- * @see {@link applyTemplate} For applying a single value to multiple transformation tags
194
- * @see {@link TemplateTag} For the complete list of available transformation types
195
- */
196
- function applyTemplates(str, prefixes) {
197
- let result = str;
198
- // Process each prefix
199
- for (const [key, prefix] of Object.entries(prefixes)) {
200
- // Replace all possible template tags for this prefix
201
- // eslint-disable-next-line no-loop-func
202
- Object.values(enums_1.TemplateTag).forEach(tag => {
203
- // Convert #{tag} to #{prefix.tag}
204
- const prefixedTag = tag.replace("#{", `#{${key}.`);
205
- if (result.includes(prefixedTag)) {
206
- // Get the transformation function name
207
- const templateFunction = tag.replace(/#{(.+)}/, "$1");
208
- // Apply the appropriate transformation based on the tag
209
- let replacement = prefix;
210
- switch (templateFunction) {
211
- case enums_1.TemplateTag.UPPER_CASE:
212
- replacement = (0, string_utils_1.toUpperCase)(prefix);
213
- break;
214
- case enums_1.TemplateTag.SNAKE_CASE:
215
- replacement = (0, string_utils_1.toSnakeCase)(prefix);
216
- break;
217
- case enums_1.TemplateTag.UPPER_SNAKE_CASE:
218
- replacement = (0, string_utils_1.toSnakeCase)(prefix, true);
219
- break;
220
- case enums_1.TemplateTag.LOWER_CASE:
221
- replacement = (0, string_utils_1.toLowerCase)(prefix);
222
- break;
223
- case enums_1.TemplateTag.SENTENCE_CASE:
224
- replacement = (0, string_utils_1.toSentenceCase)(prefix);
225
- break;
226
- case enums_1.TemplateTag.FIRST_CASE:
227
- replacement = (0, string_utils_1.toFirstCase)(prefix);
228
- break;
229
- case enums_1.TemplateTag.CAMEL_CASE:
230
- replacement = (0, string_utils_1.toCamelCase)(prefix);
231
- break;
232
- case enums_1.TemplateTag.PASCAL_CASE:
233
- replacement = (0, string_utils_1.toPascalCase)(prefix);
234
- break;
235
- case enums_1.TemplateTag.KEBAB_CASE:
236
- replacement = (0, string_utils_1.toKebabCase)(prefix);
237
- break;
238
- case enums_1.TemplateTag.UPPER_KEBAB_CASE:
239
- replacement = (0, string_utils_1.toKebabCase)(prefix, true);
240
- break;
241
- case enums_1.TemplateTag.TITLE_CASE:
242
- replacement = (0, string_utils_1.toTitleCase)(prefix);
243
- break;
244
- case enums_1.TemplateTag.LOWER_CASE_BREAK:
245
- replacement = (0, string_utils_1.toLowerCaseBreak)(prefix);
246
- break;
247
- case enums_1.TemplateTag.UPPER_CASE_BREAK:
248
- replacement = (0, string_utils_1.toUpperCaseBreak)(prefix);
249
- break;
250
- case enums_1.TemplateTag.FIRST_CASE_BREAK:
251
- replacement = (0, string_utils_1.toFirstCaseBreak)(prefix);
252
- break;
253
- case enums_1.TemplateTag.SINGULAR:
254
- replacement = (0, string_utils_1.singular)(prefix);
255
- break;
256
- case enums_1.TemplateTag.NUMBER:
257
- replacement = String((0, string_utils_1.toNumber)(prefix) ?? prefix);
258
- break;
259
- case enums_1.TemplateTag.HTML_TO_TEXT:
260
- replacement = (0, string_utils_1.htmlToText)(prefix);
261
- break;
262
- }
263
- result = result.replace(prefixedTag, replacement);
264
- }
265
- });
266
- }
267
- return result;
268
- }
269
- //# sourceMappingURL=string-template.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string-template.utils.js","sourceRoot":"","sources":["../../../../libs/utils/src/utils/string-template.utils.ts"],"names":[],"mappings":"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"}