@mongez/reinforcements 2.2.2 → 2.2.4

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 (44) hide show
  1. package/cjs/string/capitalize.js +1 -0
  2. package/cjs/string/extension.js +1 -0
  3. package/cjs/string/ltrim.js +1 -0
  4. package/cjs/string/readMoreChars.js +1 -0
  5. package/cjs/string/readMoreWords.js +1 -0
  6. package/cjs/string/removeFirst.js +1 -0
  7. package/cjs/string/removeLast.js +1 -0
  8. package/cjs/string/repeatsOf.js +1 -0
  9. package/cjs/string/replaceAll.js +1 -0
  10. package/cjs/string/replaceFirst.js +1 -0
  11. package/cjs/string/replaceLast.js +1 -0
  12. package/cjs/string/rtrim.js +1 -0
  13. package/cjs/string/startsWithArabic.d.ts +1 -1
  14. package/cjs/string/startsWithArabic.js +4 -3
  15. package/cjs/string/toCamelCase.js +1 -0
  16. package/cjs/string/toKebabCase.js +1 -0
  17. package/cjs/string/toSnakeCase.js +1 -0
  18. package/cjs/string/toStudlyCase.js +1 -0
  19. package/cjs/string/trim.js +1 -0
  20. package/cjs/string/ucfirst.js +1 -0
  21. package/cjs/types.d.ts +1 -1
  22. package/esm/string/capitalize.js +1 -0
  23. package/esm/string/extension.js +1 -0
  24. package/esm/string/ltrim.js +1 -0
  25. package/esm/string/readMoreChars.js +1 -0
  26. package/esm/string/readMoreWords.js +1 -0
  27. package/esm/string/removeFirst.js +1 -0
  28. package/esm/string/removeLast.js +1 -0
  29. package/esm/string/repeatsOf.js +1 -0
  30. package/esm/string/replaceAll.js +1 -0
  31. package/esm/string/replaceFirst.js +1 -0
  32. package/esm/string/replaceLast.js +1 -0
  33. package/esm/string/rtrim.js +1 -0
  34. package/esm/string/startsWithArabic.d.ts +1 -1
  35. package/esm/string/startsWithArabic.js +4 -3
  36. package/esm/string/toCamelCase.js +1 -0
  37. package/esm/string/toKebabCase.js +1 -0
  38. package/esm/string/toSnakeCase.js +1 -0
  39. package/esm/string/toStudlyCase.js +1 -0
  40. package/esm/string/trim.js +1 -0
  41. package/esm/string/ucfirst.js +1 -0
  42. package/esm/types.d.ts +1 -1
  43. package/package.json +2 -1
  44. package/docs/VERSION-1.md +0 -1074
@@ -8,6 +8,7 @@ var ucfirst = require("./ucfirst.js");
8
8
  * @return string
9
9
  */
10
10
  function capitalize(string) {
11
+ if (!string) return "";
11
12
  return string
12
13
  .split(" ")
13
14
  .map(word => ucfirst(word))
@@ -4,6 +4,7 @@
4
4
  * Get the extension of the file name
5
5
  */
6
6
  function extension(string) {
7
+ if (!string) return "";
7
8
  const regex = /(?:\.([^.]+))?$/,
8
9
  extension = regex.exec(string);
9
10
  return extension ? extension[1] : "";
@@ -9,6 +9,7 @@ var escapeRegex = require("../utils/escapeRegex.js");
9
9
  * @return string
10
10
  */
11
11
  function ltrim(string, needle = " ") {
12
+ if (!string) return "";
12
13
  const pattern = "^" + escapeRegex(needle) + "+",
13
14
  regex = new RegExp(pattern, "g");
14
15
  return string.replace(regex, "");
@@ -5,6 +5,7 @@
5
5
  *
6
6
  */
7
7
  function readMoreChars(string, length, readMoreDots = "...") {
8
+ if (!string) return "";
8
9
  if (string.length <= length) return string;
9
10
  return string.substring(0, length) + readMoreDots;
10
11
  }
@@ -5,6 +5,7 @@
5
5
  *
6
6
  */
7
7
  function readMoreWords(string, length, readMoreDots = "...") {
8
+ if (!string) return "";
8
9
  const wordsList = string.split(" ");
9
10
  const words = wordsList.slice(0, length);
10
11
  return (
@@ -9,6 +9,7 @@ var replaceFirst = require("./replaceFirst.js");
9
9
  * @return string
10
10
  */
11
11
  function removeFirst(string, needle) {
12
+ if (!string) return "";
12
13
  return replaceFirst(string, needle, "");
13
14
  }
14
15
 
@@ -9,6 +9,7 @@ var replaceLast = require("./replaceLast.js");
9
9
  * @return string
10
10
  */
11
11
  function removeLast(string, needle) {
12
+ if (!string) return "";
12
13
  return replaceLast(string, needle, "");
13
14
  }
14
15
 
@@ -7,6 +7,7 @@
7
7
  * @return int
8
8
  */
9
9
  function repeatsOf(string, needle, caseSensitive = true) {
10
+ if (!string) return 0;
10
11
  let flags = "g";
11
12
  if (caseSensitive === false) {
12
13
  flags += "i";
@@ -10,6 +10,7 @@ var escapeRegex = require("../utils/escapeRegex.js");
10
10
  * @returns string
11
11
  */
12
12
  function replaceAll(string, searchText, replacement) {
13
+ if (!string) return "";
13
14
  return string.replace(new RegExp(escapeRegex(searchText), "g"), replacement);
14
15
  }
15
16
 
@@ -10,6 +10,7 @@ var escapeRegex = require("../utils/escapeRegex.js");
10
10
  * @return string
11
11
  */
12
12
  function replaceFirst(string, needle, replacement) {
13
+ if (!string) return "";
13
14
  return string.replace(escapeRegex(needle), replacement);
14
15
  }
15
16
 
@@ -8,6 +8,7 @@
8
8
  * @return string
9
9
  */
10
10
  function replaceLast(string, needle, replacement) {
11
+ if (!string) return "";
11
12
  const lastIndex = string.lastIndexOf(needle);
12
13
  if (lastIndex < 0) {
13
14
  return string;
@@ -9,6 +9,7 @@ var escapeRegex = require("../utils/escapeRegex.js");
9
9
  * @return string
10
10
  */
11
11
  function rtrim(string, needle = " ") {
12
+ if (!string) return "";
12
13
  const pattern = escapeRegex(needle) + "+$",
13
14
  regex = new RegExp(pattern, "g");
14
15
  return string.replace(regex, "");
@@ -1,3 +1,3 @@
1
1
  export declare const ARABIC_PATTERN: RegExp;
2
- export default function startsWithArabic(text: string, trimmed?: boolean): boolean;
2
+ export default function startsWithArabic(string: string, trimmed?: boolean): boolean;
3
3
  //# sourceMappingURL=startsWithArabic.d.ts.map
@@ -5,11 +5,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  var trim = require("./trim.js");
6
6
 
7
7
  const ARABIC_PATTERN = /[\u0600-\u06FF]/;
8
- function startsWithArabic(text, trimmed = true) {
8
+ function startsWithArabic(string, trimmed = true) {
9
+ if (!string) return false;
9
10
  if (trimmed === true) {
10
- text = trim(String(text));
11
+ string = trim(String(string));
11
12
  }
12
- return text.charAt(0).match(ARABIC_PATTERN) !== null;
13
+ return string.charAt(0).match(ARABIC_PATTERN) !== null;
13
14
  }
14
15
 
15
16
  exports.ARABIC_PATTERN = ARABIC_PATTERN;
@@ -3,6 +3,7 @@
3
3
  var capitalize = require("./capitalize.js");
4
4
 
5
5
  function toCamelCase(string, separator = "\\s+|-|/|_|\\.") {
6
+ if (!string) return "";
6
7
  const regex = new RegExp(separator + "|(?=[A-Z])", "g");
7
8
  return string
8
9
  .split(regex)
@@ -6,6 +6,7 @@ var toSnakeCase = require("./toSnakeCase.js");
6
6
  * Convert current string to kebab case
7
7
  */
8
8
  function toKebabCase(string, lowerAll = true) {
9
+ if (!string) return "";
9
10
  return toSnakeCase(string, "-", lowerAll);
10
11
  }
11
12
 
@@ -7,6 +7,7 @@
7
7
  * @return string
8
8
  */
9
9
  function toSnakeCase(string, separator = "_", lowerAll = true) {
10
+ if (!string) return "";
10
11
  return string
11
12
  .replace(/(-|\/|\s|([A-Z]))+/g, function (_match, _v2, matchedUpperLetter) {
12
13
  if (!matchedUpperLetter) return separator;
@@ -11,6 +11,7 @@ var capitalize = require("./capitalize.js");
11
11
  * @see String.capitalize
12
12
  */
13
13
  function toStudlyCase(string, separator = "-|\\.|_|/|\\s") {
14
+ if (!string) return "";
14
15
  const regex = new RegExp(separator, "g");
15
16
  return string
16
17
  .split(regex)
@@ -9,6 +9,7 @@ var escapeRegex = require("../utils/escapeRegex.js");
9
9
  * @return string
10
10
  */
11
11
  function trim(string, needle = " ") {
12
+ if (!string) return "";
12
13
  if (needle === " ") {
13
14
  return string.replace(/^\s+|\s+$/g, "");
14
15
  }
@@ -6,6 +6,7 @@
6
6
  * @return string
7
7
  */
8
8
  function ucfirst(string) {
9
+ if (!string) return "";
9
10
  return string.charAt(0).toUpperCase() + string.slice(1);
10
11
  }
11
12
 
package/cjs/types.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare type GenericObject = Record<string, any>;
1
+ export declare type GenericObject<T = any> = Record<string, T>;
2
2
  //# sourceMappingURL=types.d.ts.map
@@ -6,6 +6,7 @@ import ucfirst from "./ucfirst.js";
6
6
  * @return string
7
7
  */
8
8
  function capitalize(string) {
9
+ if (!string) return "";
9
10
  return string
10
11
  .split(" ")
11
12
  .map(word => ucfirst(word))
@@ -2,6 +2,7 @@
2
2
  * Get the extension of the file name
3
3
  */
4
4
  function extension(string) {
5
+ if (!string) return "";
5
6
  const regex = /(?:\.([^.]+))?$/,
6
7
  extension = regex.exec(string);
7
8
  return extension ? extension[1] : "";
@@ -7,6 +7,7 @@ import escapeRegex from "../utils/escapeRegex.js";
7
7
  * @return string
8
8
  */
9
9
  function ltrim(string, needle = " ") {
10
+ if (!string) return "";
10
11
  const pattern = "^" + escapeRegex(needle) + "+",
11
12
  regex = new RegExp(pattern, "g");
12
13
  return string.replace(regex, "");
@@ -3,6 +3,7 @@
3
3
  *
4
4
  */
5
5
  function readMoreChars(string, length, readMoreDots = "...") {
6
+ if (!string) return "";
6
7
  if (string.length <= length) return string;
7
8
  return string.substring(0, length) + readMoreDots;
8
9
  }
@@ -3,6 +3,7 @@
3
3
  *
4
4
  */
5
5
  function readMoreWords(string, length, readMoreDots = "...") {
6
+ if (!string) return "";
6
7
  const wordsList = string.split(" ");
7
8
  const words = wordsList.slice(0, length);
8
9
  return (
@@ -7,6 +7,7 @@ import replaceFirst from "./replaceFirst.js";
7
7
  * @return string
8
8
  */
9
9
  function removeFirst(string, needle) {
10
+ if (!string) return "";
10
11
  return replaceFirst(string, needle, "");
11
12
  }
12
13
 
@@ -7,6 +7,7 @@ import replaceLast from "./replaceLast.js";
7
7
  * @return string
8
8
  */
9
9
  function removeLast(string, needle) {
10
+ if (!string) return "";
10
11
  return replaceLast(string, needle, "");
11
12
  }
12
13
 
@@ -5,6 +5,7 @@
5
5
  * @return int
6
6
  */
7
7
  function repeatsOf(string, needle, caseSensitive = true) {
8
+ if (!string) return 0;
8
9
  let flags = "g";
9
10
  if (caseSensitive === false) {
10
11
  flags += "i";
@@ -8,6 +8,7 @@ import escapeRegex from "../utils/escapeRegex.js";
8
8
  * @returns string
9
9
  */
10
10
  function replaceAll(string, searchText, replacement) {
11
+ if (!string) return "";
11
12
  return string.replace(new RegExp(escapeRegex(searchText), "g"), replacement);
12
13
  }
13
14
 
@@ -8,6 +8,7 @@ import escapeRegex from "../utils/escapeRegex.js";
8
8
  * @return string
9
9
  */
10
10
  function replaceFirst(string, needle, replacement) {
11
+ if (!string) return "";
11
12
  return string.replace(escapeRegex(needle), replacement);
12
13
  }
13
14
 
@@ -6,6 +6,7 @@
6
6
  * @return string
7
7
  */
8
8
  function replaceLast(string, needle, replacement) {
9
+ if (!string) return "";
9
10
  const lastIndex = string.lastIndexOf(needle);
10
11
  if (lastIndex < 0) {
11
12
  return string;
@@ -7,6 +7,7 @@ import escapeRegex from "../utils/escapeRegex.js";
7
7
  * @return string
8
8
  */
9
9
  function rtrim(string, needle = " ") {
10
+ if (!string) return "";
10
11
  const pattern = escapeRegex(needle) + "+$",
11
12
  regex = new RegExp(pattern, "g");
12
13
  return string.replace(regex, "");
@@ -1,3 +1,3 @@
1
1
  export declare const ARABIC_PATTERN: RegExp;
2
- export default function startsWithArabic(text: string, trimmed?: boolean): boolean;
2
+ export default function startsWithArabic(string: string, trimmed?: boolean): boolean;
3
3
  //# sourceMappingURL=startsWithArabic.d.ts.map
@@ -1,11 +1,12 @@
1
1
  import trim from "./trim.js";
2
2
 
3
3
  const ARABIC_PATTERN = /[\u0600-\u06FF]/;
4
- function startsWithArabic(text, trimmed = true) {
4
+ function startsWithArabic(string, trimmed = true) {
5
+ if (!string) return false;
5
6
  if (trimmed === true) {
6
- text = trim(String(text));
7
+ string = trim(String(string));
7
8
  }
8
- return text.charAt(0).match(ARABIC_PATTERN) !== null;
9
+ return string.charAt(0).match(ARABIC_PATTERN) !== null;
9
10
  }
10
11
 
11
12
  export { ARABIC_PATTERN, startsWithArabic as default };
@@ -1,6 +1,7 @@
1
1
  import capitalize from "./capitalize.js";
2
2
 
3
3
  function toCamelCase(string, separator = "\\s+|-|/|_|\\.") {
4
+ if (!string) return "";
4
5
  const regex = new RegExp(separator + "|(?=[A-Z])", "g");
5
6
  return string
6
7
  .split(regex)
@@ -4,6 +4,7 @@ import toSnakeCase from "./toSnakeCase.js";
4
4
  * Convert current string to kebab case
5
5
  */
6
6
  function toKebabCase(string, lowerAll = true) {
7
+ if (!string) return "";
7
8
  return toSnakeCase(string, "-", lowerAll);
8
9
  }
9
10
 
@@ -5,6 +5,7 @@
5
5
  * @return string
6
6
  */
7
7
  function toSnakeCase(string, separator = "_", lowerAll = true) {
8
+ if (!string) return "";
8
9
  return string
9
10
  .replace(/(-|\/|\s|([A-Z]))+/g, function (_match, _v2, matchedUpperLetter) {
10
11
  if (!matchedUpperLetter) return separator;
@@ -9,6 +9,7 @@ import capitalize from "./capitalize.js";
9
9
  * @see String.capitalize
10
10
  */
11
11
  function toStudlyCase(string, separator = "-|\\.|_|/|\\s") {
12
+ if (!string) return "";
12
13
  const regex = new RegExp(separator, "g");
13
14
  return string
14
15
  .split(regex)
@@ -7,6 +7,7 @@ import escapeRegex from "../utils/escapeRegex.js";
7
7
  * @return string
8
8
  */
9
9
  function trim(string, needle = " ") {
10
+ if (!string) return "";
10
11
  if (needle === " ") {
11
12
  return string.replace(/^\s+|\s+$/g, "");
12
13
  }
@@ -4,6 +4,7 @@
4
4
  * @return string
5
5
  */
6
6
  function ucfirst(string) {
7
+ if (!string) return "";
7
8
  return string.charAt(0).toUpperCase() + string.slice(1);
8
9
  }
9
10
 
package/esm/types.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare type GenericObject = Record<string, any>;
1
+ export declare type GenericObject<T = any> = Record<string, T>;
2
2
  //# sourceMappingURL=types.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mongez/reinforcements",
3
- "version": "2.2.2",
3
+ "version": "2.2.4",
4
4
  "description": "A lightweight package to give a massive reinforcements to variant types of data in Nodejs/Javascript",
5
5
  "main": "./cjs/index.js",
6
6
  "dependencies": {
@@ -31,5 +31,6 @@
31
31
  "author": "hassanzohdy",
32
32
  "license": "MIT",
33
33
  "module": "./esm/index.js",
34
+ "type": "commonjs",
34
35
  "typings": "./cjs/index.d.ts"
35
36
  }