@robinpath/string 0.1.0 → 0.1.1

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
@@ -1,98 +1,98 @@
1
- # @robinpath/string
2
-
3
- > String manipulation utilities: case conversion, slugify, truncate, pad, reverse, and more
4
-
5
- ![Category](https://img.shields.io/badge/category-Utility-blue) ![Functions](https://img.shields.io/badge/functions-15-green) ![Auth](https://img.shields.io/badge/auth-none-lightgrey) ![License](https://img.shields.io/badge/license-MIT-brightgreen)
6
-
7
- ## Why use this module?
8
-
9
- The `string` module lets you:
10
-
11
- - Capitalize the first letter of a string
12
- - Convert a string to camelCase
13
- - Convert a string to snake_case
14
- - Convert a string to kebab-case
15
- - Convert a string to PascalCase
16
-
17
- All functions are callable directly from RobinPath scripts with a simple, consistent API.
18
-
19
- ## Installation
20
-
21
- ```bash
22
- npm install @robinpath/string
23
- ```
24
-
25
- ## Quick Start
26
-
27
- No credentials needed — start using it right away:
28
-
29
- ```robinpath
30
- string.camelCase "hello world"
31
- ```
32
-
33
- ## Available Functions
34
-
35
- | Function | Description |
36
- |----------|-------------|
37
- | `string.capitalize` | Capitalize the first letter of a string |
38
- | `string.camelCase` | Convert a string to camelCase |
39
- | `string.snakeCase` | Convert a string to snake_case |
40
- | `string.kebabCase` | Convert a string to kebab-case |
41
- | `string.pascalCase` | Convert a string to PascalCase |
42
- | `string.titleCase` | Capitalize the first letter of each word |
43
- | `string.slugify` | Convert a string to a URL-friendly slug |
44
- | `string.truncate` | Truncate a string to a maximum length with a suffix |
45
- | `string.padStart` | Pad the start of a string to a target length |
46
- | `string.padEnd` | Pad the end of a string to a target length |
47
- | `string.reverse` | Reverse a string |
48
- | `string.wordCount` | Count the number of words in a string |
49
- | `string.contains` | Check if a string contains a substring |
50
- | `string.repeat` | Repeat a string N times |
51
- | `string.replaceAll` | Replace all occurrences of a search string with a replacement |
52
-
53
- ## Examples
54
-
55
- ### Convert a string to camelCase
56
-
57
- ```robinpath
58
- string.camelCase "hello world"
59
- ```
60
-
61
- ### Convert a string to snake_case
62
-
63
- ```robinpath
64
- string.snakeCase "helloWorld"
65
- ```
66
-
67
- ### Convert a string to kebab-case
68
-
69
- ```robinpath
70
- string.kebabCase "helloWorld"
71
- ```
72
-
73
- ## Integration with RobinPath
74
-
75
- ```typescript
76
- import { RobinPath } from "@wiredwp/robinpath";
77
- import Module from "@robinpath/string";
78
-
79
- const rp = new RobinPath();
80
- rp.registerModule(Module.name, Module.functions);
81
- rp.registerModuleMeta(Module.name, Module.functionMetadata);
82
-
83
- const result = await rp.executeScript(`
84
- string.camelCase "hello world"
85
- `);
86
- ```
87
-
88
- ## Full API Reference
89
-
90
- See [MODULE.md](./MODULE.md) for complete documentation including all parameters, return types, error handling, and advanced examples.
91
-
92
- ## Related Modules
93
-
94
- - [`@robinpath/json`](../json) — JSON module for complementary functionality
95
-
96
- ## License
97
-
98
- MIT
1
+ # @robinpath/string
2
+
3
+ > String manipulation utilities: case conversion, slugify, truncate, pad, reverse, and more
4
+
5
+ ![Category](https://img.shields.io/badge/category-Utility-blue) ![Functions](https://img.shields.io/badge/functions-15-green) ![Auth](https://img.shields.io/badge/auth-none-lightgrey) ![License](https://img.shields.io/badge/license-MIT-brightgreen)
6
+
7
+ ## Why use this module?
8
+
9
+ The `string` module lets you:
10
+
11
+ - Capitalize the first letter of a string
12
+ - Convert a string to camelCase
13
+ - Convert a string to snake_case
14
+ - Convert a string to kebab-case
15
+ - Convert a string to PascalCase
16
+
17
+ All functions are callable directly from RobinPath scripts with a simple, consistent API.
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npm install @robinpath/string
23
+ ```
24
+
25
+ ## Quick Start
26
+
27
+ No credentials needed — start using it right away:
28
+
29
+ ```robinpath
30
+ string.camelCase "hello world"
31
+ ```
32
+
33
+ ## Available Functions
34
+
35
+ | Function | Description |
36
+ |----------|-------------|
37
+ | `string.capitalize` | Capitalize the first letter of a string |
38
+ | `string.camelCase` | Convert a string to camelCase |
39
+ | `string.snakeCase` | Convert a string to snake_case |
40
+ | `string.kebabCase` | Convert a string to kebab-case |
41
+ | `string.pascalCase` | Convert a string to PascalCase |
42
+ | `string.titleCase` | Capitalize the first letter of each word |
43
+ | `string.slugify` | Convert a string to a URL-friendly slug |
44
+ | `string.truncate` | Truncate a string to a maximum length with a suffix |
45
+ | `string.padStart` | Pad the start of a string to a target length |
46
+ | `string.padEnd` | Pad the end of a string to a target length |
47
+ | `string.reverse` | Reverse a string |
48
+ | `string.wordCount` | Count the number of words in a string |
49
+ | `string.contains` | Check if a string contains a substring |
50
+ | `string.repeat` | Repeat a string N times |
51
+ | `string.replaceAll` | Replace all occurrences of a search string with a replacement |
52
+
53
+ ## Examples
54
+
55
+ ### Convert a string to camelCase
56
+
57
+ ```robinpath
58
+ string.camelCase "hello world"
59
+ ```
60
+
61
+ ### Convert a string to snake_case
62
+
63
+ ```robinpath
64
+ string.snakeCase "helloWorld"
65
+ ```
66
+
67
+ ### Convert a string to kebab-case
68
+
69
+ ```robinpath
70
+ string.kebabCase "helloWorld"
71
+ ```
72
+
73
+ ## Integration with RobinPath
74
+
75
+ ```typescript
76
+ import { RobinPath } from "@wiredwp/robinpath";
77
+ import Module from "@robinpath/string";
78
+
79
+ const rp = new RobinPath();
80
+ rp.registerModule(Module.name, Module.functions);
81
+ rp.registerModuleMeta(Module.name, Module.functionMetadata);
82
+
83
+ const result = await rp.executeScript(`
84
+ string.camelCase "hello world"
85
+ `);
86
+ ```
87
+
88
+ ## Full API Reference
89
+
90
+ See [MODULE.md](./MODULE.md) for complete documentation including all parameters, return types, error handling, and advanced examples.
91
+
92
+ ## Related Modules
93
+
94
+ - [`@robinpath/json`](../json) — JSON module for complementary functionality
95
+
96
+ ## License
97
+
98
+ MIT
package/package.json CHANGED
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "name": "@robinpath/string",
3
- "version": "0.1.0",
4
- "publishConfig": { "access": "public" },
3
+ "version": "0.1.1",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
5
7
  "type": "module",
6
8
  "main": "dist/index.js",
7
9
  "types": "dist/index.d.ts",
@@ -11,17 +13,31 @@
11
13
  "types": "./dist/index.d.ts"
12
14
  }
13
15
  },
14
- "files": ["dist"],
16
+ "files": [
17
+ "dist"
18
+ ],
15
19
  "scripts": {
16
20
  "build": "tsc",
17
21
  "test": "node --import tsx --test tests/*.test.ts"
18
22
  },
19
23
  "peerDependencies": {
20
- "@wiredwp/robinpath": ">=0.20.0"
24
+ "@robinpath/core": ">=0.20.0"
21
25
  },
22
26
  "devDependencies": {
23
- "@wiredwp/robinpath": "^0.30.1",
27
+ "@robinpath/core": "^0.30.1",
24
28
  "tsx": "^4.19.0",
25
29
  "typescript": "^5.6.0"
30
+ },
31
+ "description": "String manipulation utilities: case conversion, slugify, truncate, pad, reverse, and more",
32
+ "keywords": [
33
+ "string",
34
+ "utility"
35
+ ],
36
+ "license": "MIT",
37
+ "robinpath": {
38
+ "category": "utility",
39
+ "type": "utility",
40
+ "auth": "none",
41
+ "functionCount": 15
26
42
  }
27
43
  }
package/dist/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import type { ModuleAdapter } from "@wiredwp/robinpath";
2
- declare const StringModule: ModuleAdapter;
3
- export default StringModule;
4
- export { StringModule };
5
- export { StringFunctions, StringFunctionMetadata, StringModuleMetadata } from "./string.js";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,QAAA,MAAM,YAAY,EAAE,aAMnB,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js DELETED
@@ -1,12 +0,0 @@
1
- import { StringFunctions, StringFunctionMetadata, StringModuleMetadata } from "./string.js";
2
- const StringModule = {
3
- name: "string",
4
- functions: StringFunctions,
5
- functionMetadata: StringFunctionMetadata,
6
- moduleMetadata: StringModuleMetadata,
7
- global: false,
8
- }; // as ModuleAdapter
9
- export default StringModule;
10
- export { StringModule };
11
- export { StringFunctions, StringFunctionMetadata, StringModuleMetadata } from "./string.js";
12
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE5F,MAAM,YAAY,GAAkB;IAClC,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,eAAe;IAC1B,gBAAgB,EAAE,sBAA6B;IAC/C,cAAc,EAAE,oBAA2B;IAC3C,MAAM,EAAE,KAAK;CACd,CAAC,CAAC,mBAAmB;AAEtB,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
package/dist/string.d.ts DELETED
@@ -1,228 +0,0 @@
1
- import type { BuiltinHandler } from "@wiredwp/robinpath";
2
- export declare const StringFunctions: Record<string, BuiltinHandler>;
3
- export declare const StringFunctionMetadata: {
4
- capitalize: {
5
- description: string;
6
- parameters: {
7
- name: string;
8
- dataType: string;
9
- description: string;
10
- formInputType: string;
11
- required: boolean;
12
- }[];
13
- returnType: string;
14
- returnDescription: string;
15
- example: string;
16
- };
17
- camelCase: {
18
- description: string;
19
- parameters: {
20
- name: string;
21
- dataType: string;
22
- description: string;
23
- formInputType: string;
24
- required: boolean;
25
- }[];
26
- returnType: string;
27
- returnDescription: string;
28
- example: string;
29
- };
30
- snakeCase: {
31
- description: string;
32
- parameters: {
33
- name: string;
34
- dataType: string;
35
- description: string;
36
- formInputType: string;
37
- required: boolean;
38
- }[];
39
- returnType: string;
40
- returnDescription: string;
41
- example: string;
42
- };
43
- kebabCase: {
44
- description: string;
45
- parameters: {
46
- name: string;
47
- dataType: string;
48
- description: string;
49
- formInputType: string;
50
- required: boolean;
51
- }[];
52
- returnType: string;
53
- returnDescription: string;
54
- example: string;
55
- };
56
- pascalCase: {
57
- description: string;
58
- parameters: {
59
- name: string;
60
- dataType: string;
61
- description: string;
62
- formInputType: string;
63
- required: boolean;
64
- }[];
65
- returnType: string;
66
- returnDescription: string;
67
- example: string;
68
- };
69
- titleCase: {
70
- description: string;
71
- parameters: {
72
- name: string;
73
- dataType: string;
74
- description: string;
75
- formInputType: string;
76
- required: boolean;
77
- }[];
78
- returnType: string;
79
- returnDescription: string;
80
- example: string;
81
- };
82
- slugify: {
83
- description: string;
84
- parameters: {
85
- name: string;
86
- dataType: string;
87
- description: string;
88
- formInputType: string;
89
- required: boolean;
90
- }[];
91
- returnType: string;
92
- returnDescription: string;
93
- example: string;
94
- };
95
- truncate: {
96
- description: string;
97
- parameters: ({
98
- name: string;
99
- dataType: string;
100
- description: string;
101
- formInputType: string;
102
- required: boolean;
103
- defaultValue?: undefined;
104
- } | {
105
- name: string;
106
- dataType: string;
107
- description: string;
108
- formInputType: string;
109
- required: boolean;
110
- defaultValue: string;
111
- })[];
112
- returnType: string;
113
- returnDescription: string;
114
- example: string;
115
- };
116
- padStart: {
117
- description: string;
118
- parameters: ({
119
- name: string;
120
- dataType: string;
121
- description: string;
122
- formInputType: string;
123
- required: boolean;
124
- defaultValue?: undefined;
125
- } | {
126
- name: string;
127
- dataType: string;
128
- description: string;
129
- formInputType: string;
130
- required: boolean;
131
- defaultValue: string;
132
- })[];
133
- returnType: string;
134
- returnDescription: string;
135
- example: string;
136
- };
137
- padEnd: {
138
- description: string;
139
- parameters: ({
140
- name: string;
141
- dataType: string;
142
- description: string;
143
- formInputType: string;
144
- required: boolean;
145
- defaultValue?: undefined;
146
- } | {
147
- name: string;
148
- dataType: string;
149
- description: string;
150
- formInputType: string;
151
- required: boolean;
152
- defaultValue: string;
153
- })[];
154
- returnType: string;
155
- returnDescription: string;
156
- example: string;
157
- };
158
- reverse: {
159
- description: string;
160
- parameters: {
161
- name: string;
162
- dataType: string;
163
- description: string;
164
- formInputType: string;
165
- required: boolean;
166
- }[];
167
- returnType: string;
168
- returnDescription: string;
169
- example: string;
170
- };
171
- wordCount: {
172
- description: string;
173
- parameters: {
174
- name: string;
175
- dataType: string;
176
- description: string;
177
- formInputType: string;
178
- required: boolean;
179
- }[];
180
- returnType: string;
181
- returnDescription: string;
182
- example: string;
183
- };
184
- contains: {
185
- description: string;
186
- parameters: {
187
- name: string;
188
- dataType: string;
189
- description: string;
190
- formInputType: string;
191
- required: boolean;
192
- }[];
193
- returnType: string;
194
- returnDescription: string;
195
- example: string;
196
- };
197
- repeat: {
198
- description: string;
199
- parameters: {
200
- name: string;
201
- dataType: string;
202
- description: string;
203
- formInputType: string;
204
- required: boolean;
205
- }[];
206
- returnType: string;
207
- returnDescription: string;
208
- example: string;
209
- };
210
- replaceAll: {
211
- description: string;
212
- parameters: {
213
- name: string;
214
- dataType: string;
215
- description: string;
216
- formInputType: string;
217
- required: boolean;
218
- }[];
219
- returnType: string;
220
- returnDescription: string;
221
- example: string;
222
- };
223
- };
224
- export declare const StringModuleMetadata: {
225
- description: string;
226
- methods: string[];
227
- };
228
- //# sourceMappingURL=string.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAC;AA+G3F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAgB1D,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJlC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC"}
package/dist/string.js DELETED
@@ -1,262 +0,0 @@
1
- // ── Helpers ─────────────────────────────────────────────────────────
2
- function splitWords(str) {
3
- return str
4
- .replace(/([a-z])([A-Z])/g, "$1 $2")
5
- .replace(/[_\-]+/g, " ")
6
- .replace(/[^a-zA-Z0-9\s]/g, "")
7
- .trim()
8
- .split(/\s+/)
9
- .filter(Boolean);
10
- }
11
- // ── Handlers ────────────────────────────────────────────────────────
12
- const capitalize = (args) => {
13
- const str = String(args[0] ?? "");
14
- if (str.length === 0)
15
- return "";
16
- return str.charAt(0).toUpperCase() + str.slice(1);
17
- };
18
- const camelCase = (args) => {
19
- const words = splitWords(String(args[0] ?? ""));
20
- return words
21
- .map((w, i) => (i === 0 ? w.toLowerCase() : w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()))
22
- .join("");
23
- };
24
- const snakeCase = (args) => {
25
- return splitWords(String(args[0] ?? "")).map((w) => w.toLowerCase()).join("_");
26
- };
27
- const kebabCase = (args) => {
28
- return splitWords(String(args[0] ?? "")).map((w) => w.toLowerCase()).join("-");
29
- };
30
- const pascalCase = (args) => {
31
- return splitWords(String(args[0] ?? ""))
32
- .map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())
33
- .join("");
34
- };
35
- const titleCase = (args) => {
36
- const str = String(args[0] ?? "");
37
- return str.replace(/\b\w/g, (ch) => ch.toUpperCase());
38
- };
39
- const slugify = (args) => {
40
- return String(args[0] ?? "")
41
- .toLowerCase()
42
- .trim()
43
- .replace(/[^a-z0-9\s-]/g, "")
44
- .replace(/[\s]+/g, "-")
45
- .replace(/-+/g, "-")
46
- .replace(/^-|-$/g, "");
47
- };
48
- const truncate = (args) => {
49
- const str = String(args[0] ?? "");
50
- const maxLength = Number(args[1] ?? 100);
51
- const suffix = args[2] != null ? String(args[2]) : "...";
52
- if (str.length <= maxLength)
53
- return str;
54
- return str.slice(0, maxLength - suffix.length) + suffix;
55
- };
56
- const padStart = (args) => {
57
- const str = String(args[0] ?? "");
58
- const targetLength = Number(args[1] ?? 0);
59
- const padChar = args[2] != null ? String(args[2]) : " ";
60
- return str.padStart(targetLength, padChar);
61
- };
62
- const padEnd = (args) => {
63
- const str = String(args[0] ?? "");
64
- const targetLength = Number(args[1] ?? 0);
65
- const padChar = args[2] != null ? String(args[2]) : " ";
66
- return str.padEnd(targetLength, padChar);
67
- };
68
- const reverse = (args) => {
69
- return String(args[0] ?? "").split("").reverse().join("");
70
- };
71
- const wordCount = (args) => {
72
- const str = String(args[0] ?? "").trim();
73
- if (str.length === 0)
74
- return 0;
75
- return str.split(/\s+/).length;
76
- };
77
- const contains = (args) => {
78
- const str = String(args[0] ?? "");
79
- const sub = String(args[1] ?? "");
80
- return str.includes(sub);
81
- };
82
- const repeat = (args) => {
83
- const str = String(args[0] ?? "");
84
- const count = Number(args[1] ?? 1);
85
- return str.repeat(count);
86
- };
87
- const replaceAll = (args) => {
88
- const str = String(args[0] ?? "");
89
- const search = String(args[1] ?? "");
90
- const replacement = String(args[2] ?? "");
91
- return str.split(search).join(replacement);
92
- };
93
- // ── Exports ─────────────────────────────────────────────────────────
94
- export const StringFunctions = {
95
- capitalize,
96
- camelCase,
97
- snakeCase,
98
- kebabCase,
99
- pascalCase,
100
- titleCase,
101
- slugify,
102
- truncate,
103
- padStart,
104
- padEnd,
105
- reverse,
106
- wordCount,
107
- contains,
108
- repeat,
109
- replaceAll,
110
- };
111
- export const StringFunctionMetadata = {
112
- capitalize: {
113
- description: "Capitalize the first letter of a string",
114
- parameters: [
115
- { name: "str", dataType: "string", description: "The string to capitalize", formInputType: "text", required: true },
116
- ],
117
- returnType: "string",
118
- returnDescription: "String with first letter capitalized",
119
- example: 'string.capitalize "hello"',
120
- },
121
- camelCase: {
122
- description: "Convert a string to camelCase",
123
- parameters: [
124
- { name: "str", dataType: "string", description: "The string to convert", formInputType: "text", required: true },
125
- ],
126
- returnType: "string",
127
- returnDescription: "camelCase string",
128
- example: 'string.camelCase "hello world"',
129
- },
130
- snakeCase: {
131
- description: "Convert a string to snake_case",
132
- parameters: [
133
- { name: "str", dataType: "string", description: "The string to convert", formInputType: "text", required: true },
134
- ],
135
- returnType: "string",
136
- returnDescription: "snake_case string",
137
- example: 'string.snakeCase "helloWorld"',
138
- },
139
- kebabCase: {
140
- description: "Convert a string to kebab-case",
141
- parameters: [
142
- { name: "str", dataType: "string", description: "The string to convert", formInputType: "text", required: true },
143
- ],
144
- returnType: "string",
145
- returnDescription: "kebab-case string",
146
- example: 'string.kebabCase "helloWorld"',
147
- },
148
- pascalCase: {
149
- description: "Convert a string to PascalCase",
150
- parameters: [
151
- { name: "str", dataType: "string", description: "The string to convert", formInputType: "text", required: true },
152
- ],
153
- returnType: "string",
154
- returnDescription: "PascalCase string",
155
- example: 'string.pascalCase "hello world"',
156
- },
157
- titleCase: {
158
- description: "Capitalize the first letter of each word",
159
- parameters: [
160
- { name: "str", dataType: "string", description: "The string to convert", formInputType: "text", required: true },
161
- ],
162
- returnType: "string",
163
- returnDescription: "Title Case string",
164
- example: 'string.titleCase "hello world"',
165
- },
166
- slugify: {
167
- description: "Convert a string to a URL-friendly slug",
168
- parameters: [
169
- { name: "str", dataType: "string", description: "The string to slugify", formInputType: "text", required: true },
170
- ],
171
- returnType: "string",
172
- returnDescription: "URL-friendly slug",
173
- example: 'string.slugify "Hello World!"',
174
- },
175
- truncate: {
176
- description: "Truncate a string to a maximum length with a suffix",
177
- parameters: [
178
- { name: "str", dataType: "string", description: "The string to truncate", formInputType: "text", required: true },
179
- { name: "maxLength", dataType: "number", description: "Maximum length", formInputType: "number", required: true },
180
- { name: "suffix", dataType: "string", description: "Suffix to append (default: '...')", formInputType: "text", required: false, defaultValue: "..." },
181
- ],
182
- returnType: "string",
183
- returnDescription: "Truncated string",
184
- example: 'string.truncate "Hello World" 8',
185
- },
186
- padStart: {
187
- description: "Pad the start of a string to a target length",
188
- parameters: [
189
- { name: "str", dataType: "string", description: "The string to pad", formInputType: "text", required: true },
190
- { name: "targetLength", dataType: "number", description: "Target length", formInputType: "number", required: true },
191
- { name: "padChar", dataType: "string", description: "Pad character (default: space)", formInputType: "text", required: false, defaultValue: " " },
192
- ],
193
- returnType: "string",
194
- returnDescription: "Padded string",
195
- example: 'string.padStart "5" 3 "0"',
196
- },
197
- padEnd: {
198
- description: "Pad the end of a string to a target length",
199
- parameters: [
200
- { name: "str", dataType: "string", description: "The string to pad", formInputType: "text", required: true },
201
- { name: "targetLength", dataType: "number", description: "Target length", formInputType: "number", required: true },
202
- { name: "padChar", dataType: "string", description: "Pad character (default: space)", formInputType: "text", required: false, defaultValue: " " },
203
- ],
204
- returnType: "string",
205
- returnDescription: "Padded string",
206
- example: 'string.padEnd "hi" 5 "."',
207
- },
208
- reverse: {
209
- description: "Reverse a string",
210
- parameters: [
211
- { name: "str", dataType: "string", description: "The string to reverse", formInputType: "text", required: true },
212
- ],
213
- returnType: "string",
214
- returnDescription: "Reversed string",
215
- example: 'string.reverse "hello"',
216
- },
217
- wordCount: {
218
- description: "Count the number of words in a string",
219
- parameters: [
220
- { name: "str", dataType: "string", description: "The string to count words in", formInputType: "text", required: true },
221
- ],
222
- returnType: "number",
223
- returnDescription: "Number of words",
224
- example: 'string.wordCount "hello world"',
225
- },
226
- contains: {
227
- description: "Check if a string contains a substring",
228
- parameters: [
229
- { name: "str", dataType: "string", description: "The string to search in", formInputType: "text", required: true },
230
- { name: "substring", dataType: "string", description: "The substring to search for", formInputType: "text", required: true },
231
- ],
232
- returnType: "boolean",
233
- returnDescription: "True if the string contains the substring",
234
- example: 'string.contains "hello world" "world"',
235
- },
236
- repeat: {
237
- description: "Repeat a string N times",
238
- parameters: [
239
- { name: "str", dataType: "string", description: "The string to repeat", formInputType: "text", required: true },
240
- { name: "count", dataType: "number", description: "Number of repetitions", formInputType: "number", required: true },
241
- ],
242
- returnType: "string",
243
- returnDescription: "Repeated string",
244
- example: 'string.repeat "ab" 3',
245
- },
246
- replaceAll: {
247
- description: "Replace all occurrences of a search string with a replacement",
248
- parameters: [
249
- { name: "str", dataType: "string", description: "The input string", formInputType: "text", required: true },
250
- { name: "search", dataType: "string", description: "The string to search for", formInputType: "text", required: true },
251
- { name: "replacement", dataType: "string", description: "The replacement string", formInputType: "text", required: true },
252
- ],
253
- returnType: "string",
254
- returnDescription: "String with all occurrences replaced",
255
- example: 'string.replaceAll "hello world" "o" "0"',
256
- },
257
- };
258
- export const StringModuleMetadata = {
259
- description: "String manipulation utilities: case conversion, slugify, truncate, pad, reverse, and more",
260
- methods: ["capitalize", "camelCase", "snakeCase", "kebabCase", "pascalCase", "titleCase", "slugify", "truncate", "padStart", "padEnd", "reverse", "wordCount", "contains", "repeat", "replaceAll"],
261
- };
262
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"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"}