@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.
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +3645 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +1 -5
- package/index.esm.js +3575 -0
- package/package.json +13 -8
- package/src/index.d.ts +5 -0
- package/{interfaces → src/interfaces}/infinite-object.interface.d.ts +3 -3
- package/{interfaces → src/interfaces}/path-value-set.interface.d.ts +12 -12
- package/{types → src/types}/deep-partial.type.d.ts +6 -0
- package/{types → src/types}/literal-object.type.d.ts +2 -2
- package/{utils → src/utils}/index.d.ts +1 -0
- package/{utils → src/utils}/object.utils.d.ts +23 -19
- package/CHANGELOG.md +0 -19
- package/README.md +0 -7944
- package/constants/constants.js +0 -227
- package/constants/constants.js.map +0 -1
- package/constants/english-inflection-rules.js +0 -360
- package/constants/english-inflection-rules.js.map +0 -1
- package/constants/index.js +0 -6
- package/constants/index.js.map +0 -1
- package/enums/index.js +0 -5
- package/enums/index.js.map +0 -1
- package/enums/template-tag.enum.js +0 -39
- package/enums/template-tag.enum.js.map +0 -1
- package/index.js +0 -9
- package/index.js.map +0 -1
- package/interfaces/index.js +0 -7
- package/interfaces/index.js.map +0 -1
- package/interfaces/infinite-object.interface.js +0 -3
- package/interfaces/infinite-object.interface.js.map +0 -1
- package/interfaces/inflection-rule.interfaces.js +0 -3
- package/interfaces/inflection-rule.interfaces.js.map +0 -1
- package/interfaces/path-value-set.interface.js +0 -3
- package/interfaces/path-value-set.interface.js.map +0 -1
- package/readme-top.md +0 -187
- package/types/deep-partial.type.js +0 -3
- package/types/deep-partial.type.js.map +0 -1
- package/types/index.js +0 -38
- package/types/index.js.map +0 -1
- package/types/is-already-in-path.type.js +0 -3
- package/types/is-already-in-path.type.js.map +0 -1
- package/types/is-empty.type.js +0 -3
- package/types/is-empty.type.js.map +0 -1
- package/types/is-primitive.type.js +0 -4
- package/types/is-primitive.type.js.map +0 -1
- package/types/literal-object.type.js +0 -3
- package/types/literal-object.type.js.map +0 -1
- package/types/loose-autocomplete.type.js +0 -3
- package/types/loose-autocomplete.type.js.map +0 -1
- package/types/partial-with-null.type.js +0 -3
- package/types/partial-with-null.type.js.map +0 -1
- package/types/prettify.type.js +0 -3
- package/types/prettify.type.js.map +0 -1
- package/types/type.type.js +0 -3
- package/types/type.type.js.map +0 -1
- package/utils/assertions.utils.js +0 -163
- package/utils/assertions.utils.js.map +0 -1
- package/utils/file.utils.js +0 -1315
- package/utils/file.utils.js.map +0 -1
- package/utils/index.js +0 -9
- package/utils/index.js.map +0 -1
- package/utils/object.utils.js +0 -1069
- package/utils/object.utils.js.map +0 -1
- package/utils/string-template.utils.js +0 -269
- package/utils/string-template.utils.js.map +0 -1
- package/utils/string.utils.js +0 -1255
- package/utils/string.utils.js.map +0 -1
- package/utils/url.utils.js +0 -112
- package/utils/url.utils.js.map +0 -1
- /package/{constants → src/constants}/constants.d.ts +0 -0
- /package/{constants → src/constants}/english-inflection-rules.d.ts +0 -0
- /package/{constants → src/constants}/index.d.ts +0 -0
- /package/{enums → src/enums}/index.d.ts +0 -0
- /package/{enums → src/enums}/template-tag.enum.d.ts +0 -0
- /package/{interfaces → src/interfaces}/index.d.ts +0 -0
- /package/{interfaces → src/interfaces}/inflection-rule.interfaces.d.ts +0 -0
- /package/{types → src/types}/index.d.ts +0 -0
- /package/{types → src/types}/is-already-in-path.type.d.ts +0 -0
- /package/{types → src/types}/is-empty.type.d.ts +0 -0
- /package/{types → src/types}/is-primitive.type.d.ts +0 -0
- /package/{types → src/types}/loose-autocomplete.type.d.ts +0 -0
- /package/{types → src/types}/partial-with-null.type.d.ts +0 -0
- /package/{types → src/types}/prettify.type.d.ts +0 -0
- /package/{types → src/types}/type.type.d.ts +0 -0
- /package/{utils → src/utils}/assertions.utils.d.ts +0 -0
- /package/{utils → src/utils}/file.utils.d.ts +0 -0
- /package/{utils → src/utils}/string-template.utils.d.ts +0 -0
- /package/{utils → src/utils}/string.utils.d.ts +0 -0
- /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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"}
|