@stryke/string-format 0.7.2 → 0.8.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.
@@ -11,5 +11,5 @@ function isCamelCase(e) {
11
11
  return e ? /^[a-z][a-z0-9]*$/.test(e) && _acronyms.ACRONYMS.includes(e.trim().toUpperCase()) || /^(?:[a-z][a-z0-9]*[A-Z]+)*$/.test(e) : !1;
12
12
  }
13
13
  function camelCase(e) {
14
- return isCamelCase(e) || e === void 0 ? e : (0, _getWords.getWords)(e).map((t, s) => s === 0 ? t.trim().toLowerCase() : _acronyms.ACRONYMS.includes(t.trim().toUpperCase()) ? t.trim().toUpperCase() : t.trim().charAt(0).toLowerCase() + t.trim().slice(1).toUpperCase()).join("");
14
+ return isCamelCase(e) || e === void 0 ? e : (0, _getWords.getWords)(e).map((t, s) => s === 0 ? t.trim().toLowerCase() : _acronyms.ACRONYMS.includes(t.trim().toUpperCase()) ? t.trim().toUpperCase() : t.trim().charAt(0).toUpperCase() + t.trim().slice(1).toLowerCase()).join("");
15
15
  }
@@ -1 +1 @@
1
- import{ACRONYMS as r}from"./acronyms";import{getWords as a}from"./get-words";export function isCamelCase(e){return e?/^[a-z][a-z0-9]*$/.test(e)&&r.includes(e.trim().toUpperCase())||/^(?:[a-z][a-z0-9]*[A-Z]+)*$/.test(e):!1}export function camelCase(e){return isCamelCase(e)||e===void 0?e:a(e).map((t,s)=>s===0?t.trim().toLowerCase():r.includes(t.trim().toUpperCase())?t.trim().toUpperCase():t.trim().charAt(0).toLowerCase()+t.trim().slice(1).toUpperCase()).join("")}
1
+ import{ACRONYMS as r}from"./acronyms";import{getWords as a}from"./get-words";export function isCamelCase(e){return e?/^[a-z][a-z0-9]*$/.test(e)&&r.includes(e.trim().toUpperCase())||/^(?:[a-z][a-z0-9]*[A-Z]+)*$/.test(e):!1}export function camelCase(e){return isCamelCase(e)||e===void 0?e:a(e).map((t,s)=>s===0?t.trim().toLowerCase():r.includes(t.trim().toUpperCase())?t.trim().toUpperCase():t.trim().charAt(0).toUpperCase()+t.trim().slice(1).toLowerCase()).join("")}
@@ -3,10 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.CASE_SPLIT_PATTERN = void 0;
6
+ exports.RELAXED_SPLIT_PATTERN = exports.CASE_SPLIT_PATTERN = void 0;
7
7
  exports.getWords = getWords;
8
- const CASE_SPLIT_PATTERN = exports.CASE_SPLIT_PATTERN = /[A-Z]?[a-z]+|\d+|[A-Z]+(?![a-z])/g;
9
- function getWords(r) {
10
- if (r.length > 5e3) throw new Error("The regular expression parameter of `get-words` can't handle strings longer than 2000 characters");
11
- return [...(r.match(CASE_SPLIT_PATTERN) ?? [])];
8
+ const CASE_SPLIT_PATTERN = exports.CASE_SPLIT_PATTERN = /[A-Z]?[a-z]+|\d+|[A-Z]+(?![a-z])/g,
9
+ RELAXED_SPLIT_PATTERN = exports.RELAXED_SPLIT_PATTERN = /[A-Z/.-]?[a-z/.-]+|\d+|[A-Z/.-]+(?![a-z/.-])/g;
10
+ function getWords(e, r = {}) {
11
+ if (e.length > 5e3) throw new Error("The regular expression parameter of `get-words` can't handle strings longer than 2000 characters");
12
+ return [...(e.match(r.split ?? (r.relaxed ? RELAXED_SPLIT_PATTERN : CASE_SPLIT_PATTERN)) ?? [])];
12
13
  }
@@ -15,6 +15,20 @@
15
15
  * // matches: ['camel', 'Case', 'HTTP', 'Request']
16
16
  */
17
17
  export declare const CASE_SPLIT_PATTERN: RegExp;
18
+ export declare const RELAXED_SPLIT_PATTERN: RegExp;
19
+ /**
20
+ * Options for splitting a string into words
21
+ */
22
+ export interface GetWordsOptions {
23
+ /**
24
+ * Whether to use a relaxed splitting pattern
25
+ */
26
+ relaxed?: boolean;
27
+ /**
28
+ * Custom regular expression for splitting the string
29
+ */
30
+ split?: RegExp;
31
+ }
18
32
  /**
19
33
  * Splits a string into words using a regular expression pattern
20
34
  *
@@ -23,6 +37,7 @@ export declare const CASE_SPLIT_PATTERN: RegExp;
23
37
  * // words: ['camel', 'Case', 'HTTP', 'Request']
24
38
  *
25
39
  * @param str - The string to split into words
40
+ * @param options - Options for splitting the string
26
41
  * @returns An array of words
27
42
  */
28
- export declare function getWords(str: string): string[];
43
+ export declare function getWords(str: string, options?: GetWordsOptions): string[];
@@ -1 +1 @@
1
- export const CASE_SPLIT_PATTERN=/[A-Z]?[a-z]+|\d+|[A-Z]+(?![a-z])/g;export function getWords(r){if(r.length>5e3)throw new Error("The regular expression parameter of `get-words` can't handle strings longer than 2000 characters");return[...r.match(CASE_SPLIT_PATTERN)??[]]}
1
+ export const CASE_SPLIT_PATTERN=/[A-Z]?[a-z]+|\d+|[A-Z]+(?![a-z])/g,RELAXED_SPLIT_PATTERN=/[A-Z/.-]?[a-z/.-]+|\d+|[A-Z/.-]+(?![a-z/.-])/g;export function getWords(e,r={}){if(e.length>5e3)throw new Error("The regular expression parameter of `get-words` can't handle strings longer than 2000 characters");return[...e.match(r.split??(r.relaxed?RELAXED_SPLIT_PATTERN:CASE_SPLIT_PATTERN))??[]]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stryke/string-format",
3
- "version": "0.7.2",
3
+ "version": "0.8.0",
4
4
  "type": "module",
5
5
  "description": "A package containing utility functions to transform strings into various formats.",
6
6
  "repository": {
@@ -333,5 +333,5 @@
333
333
  "main": "./dist/index.cjs",
334
334
  "module": "./dist/index.mjs",
335
335
  "types": "./dist/index.d.ts",
336
- "gitHead": "a188b9a5ecfa467f25b59a07ad4301db2c41241f"
336
+ "gitHead": "f19ec64d220a861067c35ef848cfc858ac210b94"
337
337
  }