@akadenia/helpers 1.5.0 → 1.6.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.
package/README.MD CHANGED
@@ -29,8 +29,10 @@
29
29
  - [`TextHelpers.enforceCharacterLimit({text, characterLimit, onCharacterLimit})`](#texthelpersenforcecharacterlimittext-characterlimit-oncharacterlimit)
30
30
  - [`TextHelpers.isValidEmail(email)`](#texthelpersisvalidemailemail)
31
31
  - [`TextHelpers.generateIdFromWord(word)`](#texthelpersgenerateidfromwordword)
32
- - [`TextHelpers.generateWordFromId(id)`](#texthelpersgeneratewordfromidid)
33
- - [`TextHelpers.generateSlugFromWords(id,words)`](#texthelpersgenerateslugfromwordsidwords)
32
+ - [`TextHelpers.generateWordFromId(word)`](#texthelpersgeneratewordfromidword)
33
+ - [`TextHelpers.generateSlugFromWords(id, ...words)`](#texthelpersgenerateslugfromwordsid-words)
34
+ - [`TextHelpers.extractIDfromSlug(slug)`](#texthelpersextractidfromslugslug)
35
+ - [`TextHelpers.abbreviateNumber(number)`](#texthelpersabbreviatenumbernumber)
34
36
  - [ObjectHelpers](#objecthelpers)
35
37
  - [`ObjectHelpers.isPureObject(any)`](#objecthelpersispureobjectany)
36
38
  - [`ObjectHelpers.parseCookie(str)`](#objecthelpersparsecookiestr)
@@ -38,13 +40,15 @@
38
40
  - [`ObjectHelpers.containsSubObject(mainObject, subObject)`](#objecthelperscontainssubobjectmainobject-subobject)
39
41
  - [`ObjectHelpers.findObjectBySubObject(array, subObject)`](#objecthelpersfindobjectbysubobjectarray-subobject)
40
42
  - [`ObjectHelpers.filterObjectsBySubObject(array, subObject)`](#objecthelpersfilterobjectsbysubobjectarray-subobject)
41
- - [`ObjectHelpers.objectPropHasValue({object, key, value)}`](#objecthelpersobjectkeyhasvalueobject-key-value)
43
+ - [`ObjectHelpers.objectPropHasValue({object, key, value)}`](#objecthelpersobjectprophasvalueobject-key-value)
42
44
  - [`ObjectHelpers.findEntry(array, predicate)`](#objecthelpersfindentryarray-predicate)
43
45
  - [GenericHelpers](#generichelpers)
44
46
  - [`GenericHelpers.delay(ms)`](#generichelpersdelayms)
45
47
  - [`GenericHelpers.getPreferredUriScheme(host)`](#generichelpersgetpreferredurischemehost)
46
48
  - [FileHelpers](#filehelpers)
47
49
  - [`FileHelpers.checkFileExtension(filePath, validExtensions)`](#filehelperscheckfileextensionfilepath-validextensions)
50
+ - [Contributing to this package](#contributing-to-this-package)
51
+ - [License](#license)
48
52
 
49
53
  # DateHelpers
50
54
 
@@ -261,7 +265,6 @@ Arguments
261
265
  |--|--|--|--|
262
266
  |`data`|`string`|The word that is being validated as acronym|
263
267
 
264
-
265
268
  ## `TextHelpers.acronymToKebabCase(data)`
266
269
 
267
270
  Convert acronym to kebab case
@@ -272,7 +275,6 @@ Arguments
272
275
  |--|--|--|--|
273
276
  |`data`|`string`|The acronym to be converted to kebab case|
274
277
 
275
-
276
278
  ## `TextHelpers.handleNullDisplay(value, defaultValue="N/A")`
277
279
 
278
280
  Returns the input string or the default string if the input value is null or undefined.
@@ -324,7 +326,7 @@ Arguments
324
326
  ## `TextHelpers.generateSlugFromWords(id, ...words)`
325
327
 
326
328
  Get the slug from words
327
- Returns the slug from the words and it will be url path safe
329
+ Returns the slug from the words and it will be url path safe
328
330
 
329
331
  Arguments
330
332
  |Name|Type|Required|Description|
@@ -343,6 +345,15 @@ Arguments
343
345
  |--|--|--|--|
344
346
  |`slug`|`string`|`true`|The slug associated with the id|
345
347
 
348
+ ## `TextHelpers.abbreviateNumber(number)`
349
+
350
+ Abbreviate number
351
+ Returns the string representation of the abbreviated number
352
+
353
+ Arguments
354
+ |Name|Type|Required|Description|
355
+ |--|--|--|--|
356
+ |`number`|`number`|`true`|The number to be abbreviated|
346
357
 
347
358
  # ObjectHelpers
348
359
 
@@ -425,7 +436,9 @@ Arguments
425
436
  |--|--|--|--|
426
437
  |`array`|`T[]`|`true`|An array of objects to be filtered|
427
438
  |`array`|`Partial<T>`|`true`|The sub-object to be searched for in the array|
439
+
428
440
  ## `ObjectHelpers.objectPropHasValue({object, key, value)}`
441
+
429
442
  Checks if the object has the key with the value.
430
443
 
431
444
  Arguments
@@ -436,6 +449,7 @@ Arguments
436
449
  |`value`|`any`|`true`|The value to check|
437
450
 
438
451
  ## `ObjectHelpers.findEntry(array, predicate)`
452
+
439
453
  Finds the first entry in the array that satisfies the predicate.
440
454
 
441
455
  Arguments
@@ -480,7 +494,6 @@ Arguments
480
494
  |`filePath`|`string`|`true`|The file path to check|
481
495
  |`validExtensions`|`string[]`|`true`|The valid extensions|
482
496
 
483
-
484
497
  ## Contributing to this package
485
498
 
486
499
  This package follows the commitlint and conventional commits standards. As such the commit messages should follow the following format:
package/dist/text.d.ts CHANGED
@@ -165,3 +165,10 @@ export declare function generateSlugFromWordsWithID(id: string, ...words: string
165
165
  * @returns The id from the slug
166
166
  */
167
167
  export declare function extractIDfromSlug(slug: string): string | undefined;
168
+ /**
169
+ * Abbreviate number
170
+ * @function
171
+ * @param number The number to be abbreviated
172
+ * @returns The string representation of the abbreviated number
173
+ */
174
+ export declare const abbreviateNumber: (number: number | undefined | null) => string | null;
package/dist/text.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractIDfromSlug = exports.generateSlugFromWordsWithID = exports.generateWordFromId = exports.generateIDFromWord = exports.isValidEmail = exports.enforceCharacterLimit = exports.capitalizeText = exports.handleNullDisplay = exports.acronymToKebabCase = exports.isAcronym = exports.generateAcronym = exports.convertKebabToCamelCase = exports.convertCamelToKebabCase = exports.convertCamelToSnakeCase = exports.convertSnakeToCamelCase = exports.pluralizeOnCondition = exports.replaceUnderscoreWithSpaces = exports.replaceSpacesWithUnderscore = exports.fileNameFromPath = exports.truncateText = exports.formatPosition = exports.uuidv4 = exports.convertKeyCasing = void 0;
3
+ exports.abbreviateNumber = exports.extractIDfromSlug = exports.generateSlugFromWordsWithID = exports.generateWordFromId = exports.generateIDFromWord = exports.isValidEmail = exports.enforceCharacterLimit = exports.capitalizeText = exports.handleNullDisplay = exports.acronymToKebabCase = exports.isAcronym = exports.generateAcronym = exports.convertKebabToCamelCase = exports.convertCamelToKebabCase = exports.convertCamelToSnakeCase = exports.convertSnakeToCamelCase = exports.pluralizeOnCondition = exports.replaceUnderscoreWithSpaces = exports.replaceSpacesWithUnderscore = exports.fileNameFromPath = exports.truncateText = exports.formatPosition = exports.uuidv4 = exports.convertKeyCasing = void 0;
4
4
  const _1 = require("./");
5
5
  // Internal Helper Functions At The Top
6
6
  /**
@@ -292,3 +292,25 @@ function extractIDfromSlug(slug) {
292
292
  return slug.split("-").pop();
293
293
  }
294
294
  exports.extractIDfromSlug = extractIDfromSlug;
295
+ /**
296
+ * Abbreviate number
297
+ * @function
298
+ * @param number The number to be abbreviated
299
+ * @returns The string representation of the abbreviated number
300
+ */
301
+ const abbreviateNumber = (number) => {
302
+ const abbreviations = [
303
+ { value: 1e9, symbol: "B" },
304
+ { value: 1e6, symbol: "M" },
305
+ { value: 1e3, symbol: "k" },
306
+ ];
307
+ if (!number || isNaN(number))
308
+ return null;
309
+ const abbreviated = abbreviations.find(({ value }) => Math.abs(number) >= value);
310
+ if (abbreviated) {
311
+ const { value, symbol } = abbreviated;
312
+ return (number / value).toFixed(1).replace(/\.0$/, "") + symbol;
313
+ }
314
+ return number.toString();
315
+ };
316
+ exports.abbreviateNumber = abbreviateNumber;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akadenia/helpers",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "Akadenia helpers",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",