@akterjs/cli 0.0.0-stage → 0.1.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/LICENSE +201 -0
- package/README.md +47 -2
- package/dist/Argument-D81dqizB.mjs +57 -0
- package/dist/Array-B4kuTQeW.mjs +2323 -0
- package/dist/Boolean-kILIvmhE.mjs +26 -0
- package/dist/ChildProcess-BCIwxPGc.mjs +577 -0
- package/dist/CliError-Cf5xqkkj.mjs +633 -0
- package/dist/Command-Dzq9KM-h.mjs +5135 -0
- package/dist/Config-B6OND9WR.mjs +854 -0
- package/dist/Console-BKHUkH6a.mjs +141 -0
- package/dist/Data-CeCULr0-.mjs +251 -0
- package/dist/Digest-CBd3uv5B.mjs +348 -0
- package/dist/Duration-EH9Vy4U6.mjs +791 -0
- package/dist/Effect-CKFpqbmw.mjs +12911 -0
- package/dist/FileSystem-4pPcEb_i.mjs +1366 -0
- package/dist/HttpClientError-BUeMWx70.mjs +303 -0
- package/dist/HttpClientResponse-D5ZKICVV.mjs +855 -0
- package/dist/Match-CGPLZYrV.mjs +434 -0
- package/dist/MutableHashMap-f8nW8AJR.mjs +376 -0
- package/dist/MutableHashSet-_HI572Ya.mjs +155 -0
- package/dist/MutableRef-D4Qv592C.mjs +107 -0
- package/dist/Number-BvkRkfc-.mjs +137 -0
- package/dist/Option-DkxSnBhp.mjs +3967 -0
- package/dist/Order-C1JC991I.mjs +481 -0
- package/dist/Path-Djdv_eF5.mjs +130 -0
- package/dist/Queue-CO5UQ6os.mjs +1394 -0
- package/dist/Redacted-RkJrG5Me.mjs +160 -0
- package/dist/Ref-BIPOxJNH.mjs +267 -0
- package/dist/Runtime-BInIAwK3.mjs +297 -0
- package/dist/Schema-MiKt5K1v.mjs +10999 -0
- package/dist/SecureRandom-B_U4ysO3.mjs +279 -0
- package/dist/Semaphore-DOVJ4ZGS.mjs +177 -0
- package/dist/Stdio-KylmOBX_.mjs +74 -0
- package/dist/Stream-bK9QIETN.mjs +4012 -0
- package/dist/String-q5dcsVe4.mjs +351 -0
- package/dist/TerminalCapabilities-w_44MAca.mjs +1769 -0
- package/dist/WebCrypto-ZI_GNVlw.mjs +33 -0
- package/dist/actor-call.service-CGM_vD9u.mjs +1269 -0
- package/dist/actor-client.adapter-Coem7gF1.mjs +3691 -0
- package/dist/akter-program.config-C4cXx4Fr.mjs +7034 -0
- package/dist/akter.cli.mjs +5 -0
- package/dist/app-cli.config.mjs +49 -0
- package/dist/app-entry.pure.mjs +31 -0
- package/dist/archive/akter-archive.schema.mjs +65 -0
- package/dist/archive/akter-archive.service.mjs +309 -0
- package/dist/archive/archive-cli.config.mjs +45 -0
- package/dist/archive/archive-invalid.errors.mjs +5 -0
- package/dist/archive/archived-lineage.pure.mjs +13 -0
- package/dist/archive/tar.pure.mjs +291 -0
- package/dist/archive/zstd.adapter.mjs +46 -0
- package/dist/bench/bench-report.pure.mjs +120 -0
- package/dist/bench/bench-runner.pure.mjs +89 -0
- package/dist/bench/bench.service.mjs +301 -0
- package/dist/cli-runtime.layer-BqK2mmVL.mjs +1191 -0
- package/dist/cli-runtime.layer.mjs +1 -0
- package/dist/cloud-client.adapter-Cy1BjDbG.mjs +3186 -0
- package/dist/cloud-client.adapter-DOVMoYAj.mjs +304 -0
- package/dist/command/akter-commands.config.mjs +32 -0
- package/dist/command/akter-program.config.mjs +1 -0
- package/dist/credentials/credentials.service.mjs +226 -0
- package/dist/credentials/keychain.adapter.mjs +92 -0
- package/dist/credentials/login.config.mjs +251 -0
- package/dist/deploy/auth/api-attempt.service.mjs +30 -0
- package/dist/deploy/auth/token-refresh.errors.mjs +4 -0
- package/dist/deploy/build-bundle.adapter.mjs +133 -0
- package/dist/deploy/build-manifest.pure.mjs +44 -0
- package/dist/deploy/cloud-client.adapter.mjs +1 -0
- package/dist/deploy/cloud-url.pure.mjs +17 -0
- package/dist/deploy/deploy-failed.errors.mjs +17 -0
- package/dist/deploy/deploy.service.mjs +156 -0
- package/dist/deploy/request-failure.pure.mjs +87 -0
- package/dist/dev-runner.pure.mjs +30 -0
- package/dist/docs/doc-topics.pure.mjs +21 -0
- package/dist/docs/docs.config.mjs +1 -0
- package/dist/docs.config-_21Xi6HU.mjs +190 -0
- package/dist/export/actor-export.service.mjs +267 -0
- package/dist/export/export-failed.errors.mjs +4 -0
- package/dist/export/export-failure.pure.mjs +18 -0
- package/dist/export/ordered-lines.pure.mjs +43 -0
- package/dist/export/ranged-download.pure.mjs +66 -0
- package/dist/export/snapshot-download.pure.mjs +86 -0
- package/dist/history-runner.pure.mjs +186 -0
- package/dist/history-since.pure.mjs +17 -0
- package/dist/hosted-runtime.layer-Cx3IPsEd.mjs +16358 -0
- package/dist/local/environment-cli.config.mjs +90 -0
- package/dist/local/environment-runner.pure.mjs +75 -0
- package/dist/local/local-cli.config.mjs +159 -0
- package/dist/logs/log-follow.config.mjs +21 -0
- package/dist/logs/log-follow.service.mjs +87 -0
- package/dist/logs/log-lines.pure.mjs +44 -0
- package/dist/migrate-runner.pure.mjs +28 -0
- package/dist/operation-input.pure-CS9iUhqK.mjs +1383 -0
- package/dist/operation-registry.pure-DVC8EDgj.mjs +283 -0
- package/dist/registry/actor-call.service.mjs +1 -0
- package/dist/registry/actor-commands.config.mjs +127 -0
- package/dist/registry/actor-refusal.pure.mjs +34 -0
- package/dist/registry/approval.service.mjs +80 -0
- package/dist/registry/cloud-commands.config.mjs +151 -0
- package/dist/registry/cloud-served.pure.mjs +31 -0
- package/dist/registry/operation-call.service.mjs +262 -0
- package/dist/registry/operation-input.pure.mjs +1 -0
- package/dist/registry/operation-output.pure.mjs +91 -0
- package/dist/registry/served-command.config.mjs +57 -0
- package/dist/runner-exited.errors.mjs +10 -0
- package/dist/terminal/cli-exit.errors.mjs +38 -0
- package/dist/terminal/cli-failure.pure.mjs +31 -0
- package/dist/terminal/confirm.adapter.mjs +27 -0
- package/package.json +61 -3
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { bn as dual, i as filter, w as some } from "./Option-DkxSnBhp.mjs";
|
|
2
|
+
import { lt as isArrayNonEmpty } from "./Array-B4kuTQeW.mjs";
|
|
3
|
+
import { t as isGreaterThanOrEqualTo } from "./Number-BvkRkfc-.mjs";
|
|
4
|
+
import { a as String$1 } from "./Order-C1JC991I.mjs";
|
|
5
|
+
globalThis.String;
|
|
6
|
+
/**
|
|
7
|
+
* Provides an `Order` instance for comparing strings using lexicographic
|
|
8
|
+
* ordering.
|
|
9
|
+
*
|
|
10
|
+
* **Example** (Comparing strings lexicographically)
|
|
11
|
+
*
|
|
12
|
+
* ```ts import.meta.vitest
|
|
13
|
+
* import { String } from "effect"
|
|
14
|
+
*
|
|
15
|
+
* String.Order("apple", "banana") // => -1
|
|
16
|
+
* String.Order("banana", "apple") // => 1
|
|
17
|
+
* String.Order("apple", "apple") // => 0
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @stability stable
|
|
21
|
+
* @category instances
|
|
22
|
+
* @since 2.0.0
|
|
23
|
+
*/
|
|
24
|
+
const Order = String$1;
|
|
25
|
+
/**
|
|
26
|
+
* Converts a string to uppercase.
|
|
27
|
+
*
|
|
28
|
+
* **Example** (Converting strings to uppercase)
|
|
29
|
+
*
|
|
30
|
+
* ```ts import.meta.vitest
|
|
31
|
+
* import { pipe, String } from "effect"
|
|
32
|
+
*
|
|
33
|
+
* pipe("a", String.toUpperCase) // => "A"
|
|
34
|
+
* String.toUpperCase("hello") // => "HELLO"
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @stability stable
|
|
38
|
+
* @category transforming
|
|
39
|
+
* @since 2.0.0
|
|
40
|
+
*/
|
|
41
|
+
const toUpperCase = (self) => self.toUpperCase();
|
|
42
|
+
/**
|
|
43
|
+
* Converts a string to lowercase.
|
|
44
|
+
*
|
|
45
|
+
* **Example** (Converting strings to lowercase)
|
|
46
|
+
*
|
|
47
|
+
* ```ts import.meta.vitest
|
|
48
|
+
* import { pipe, String } from "effect"
|
|
49
|
+
*
|
|
50
|
+
* pipe("A", String.toLowerCase) // => "a"
|
|
51
|
+
* String.toLowerCase("HELLO") // => "hello"
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @stability stable
|
|
55
|
+
* @category transforming
|
|
56
|
+
* @since 2.0.0
|
|
57
|
+
*/
|
|
58
|
+
const toLowerCase = (self) => self.toLowerCase();
|
|
59
|
+
/**
|
|
60
|
+
* Replaces matches in a string using `String.prototype.replace`.
|
|
61
|
+
*
|
|
62
|
+
* **Details**
|
|
63
|
+
*
|
|
64
|
+
* String search values and non-global regular expressions replace the first
|
|
65
|
+
* match; global regular expressions replace every match.
|
|
66
|
+
*
|
|
67
|
+
* **Example** (Replacing a substring)
|
|
68
|
+
*
|
|
69
|
+
* ```ts import.meta.vitest
|
|
70
|
+
* import { pipe, String } from "effect"
|
|
71
|
+
*
|
|
72
|
+
* pipe("abc", String.replace("b", "d")) // => "adc"
|
|
73
|
+
* pipe("hello world", String.replace("world", "Effect")) // => "hello Effect"
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* @stability stable
|
|
77
|
+
* @category transforming
|
|
78
|
+
* @since 2.0.0
|
|
79
|
+
*/
|
|
80
|
+
const replace = (searchValue, replaceValue) => (self) => self.replace(searchValue, replaceValue);
|
|
81
|
+
/**
|
|
82
|
+
* Removes whitespace from both ends of a string.
|
|
83
|
+
*
|
|
84
|
+
* **Example** (Trimming whitespace)
|
|
85
|
+
*
|
|
86
|
+
* ```ts import.meta.vitest
|
|
87
|
+
* import { String } from "effect"
|
|
88
|
+
*
|
|
89
|
+
* String.trim(" a ") // => "a"
|
|
90
|
+
* String.trim(" hello world ") // => "hello world"
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* @stability stable
|
|
94
|
+
* @category transforming
|
|
95
|
+
* @since 2.0.0
|
|
96
|
+
*/
|
|
97
|
+
const trim = (self) => self.trim();
|
|
98
|
+
/**
|
|
99
|
+
* Removes whitespace from the end of a string.
|
|
100
|
+
*
|
|
101
|
+
* **Example** (Trimming trailing whitespace)
|
|
102
|
+
*
|
|
103
|
+
* ```ts import.meta.vitest
|
|
104
|
+
* import { String } from "effect"
|
|
105
|
+
*
|
|
106
|
+
* String.trimEnd(" a ") // => " a"
|
|
107
|
+
* String.trimEnd("hello world ") // => "hello world"
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* @stability stable
|
|
111
|
+
* @category transforming
|
|
112
|
+
* @since 2.0.0
|
|
113
|
+
*/
|
|
114
|
+
const trimEnd = (self) => self.trimEnd();
|
|
115
|
+
/**
|
|
116
|
+
* Extracts a section of a string and returns it as a new string.
|
|
117
|
+
*
|
|
118
|
+
* **Example** (Slicing strings)
|
|
119
|
+
*
|
|
120
|
+
* ```ts import.meta.vitest
|
|
121
|
+
* import { pipe, String } from "effect"
|
|
122
|
+
*
|
|
123
|
+
* pipe("abcd", String.slice(1, 3)) // => "bc"
|
|
124
|
+
* pipe("hello world", String.slice(0, 5)) // => "hello"
|
|
125
|
+
* ```
|
|
126
|
+
*
|
|
127
|
+
* @stability stable
|
|
128
|
+
* @category transforming
|
|
129
|
+
* @since 2.0.0
|
|
130
|
+
*/
|
|
131
|
+
const slice = (start, end) => (self) => self.slice(start, end);
|
|
132
|
+
/**
|
|
133
|
+
* Checks whether a `string` is empty.
|
|
134
|
+
*
|
|
135
|
+
* **Example** (Checking for empty strings)
|
|
136
|
+
*
|
|
137
|
+
* ```ts import.meta.vitest
|
|
138
|
+
* import { String } from "effect"
|
|
139
|
+
*
|
|
140
|
+
* String.isEmpty("") // => true
|
|
141
|
+
* String.isEmpty("a") // => false
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @stability stable
|
|
145
|
+
* @category guards
|
|
146
|
+
* @since 2.0.0
|
|
147
|
+
*/
|
|
148
|
+
const isEmpty = (self) => self.length === 0;
|
|
149
|
+
/**
|
|
150
|
+
* Checks whether a `string` is non-empty.
|
|
151
|
+
*
|
|
152
|
+
* **Example** (Checking for non-empty strings)
|
|
153
|
+
*
|
|
154
|
+
* ```ts import.meta.vitest
|
|
155
|
+
* import { String } from "effect"
|
|
156
|
+
*
|
|
157
|
+
* String.isNonEmpty("") // => false
|
|
158
|
+
* String.isNonEmpty("a") // => true
|
|
159
|
+
* ```
|
|
160
|
+
*
|
|
161
|
+
* @stability stable
|
|
162
|
+
* @category predicates
|
|
163
|
+
* @since 2.0.0
|
|
164
|
+
*/
|
|
165
|
+
const isNonEmpty = (self) => self.length > 0;
|
|
166
|
+
/**
|
|
167
|
+
* Splits a string into an array of substrings using a separator.
|
|
168
|
+
*
|
|
169
|
+
* **Example** (Splitting strings)
|
|
170
|
+
*
|
|
171
|
+
* ```ts import.meta.vitest
|
|
172
|
+
* import { pipe, String } from "effect"
|
|
173
|
+
*
|
|
174
|
+
* pipe("abc", String.split("")) // => ["a", "b", "c"]
|
|
175
|
+
* pipe("", String.split("")) // => [""]
|
|
176
|
+
* String.split("hello,world", ",") // => ["hello", "world"]
|
|
177
|
+
* ```
|
|
178
|
+
*
|
|
179
|
+
* @stability stable
|
|
180
|
+
* @category transforming
|
|
181
|
+
* @since 2.0.0
|
|
182
|
+
*/
|
|
183
|
+
const split = /*#__PURE__*/ dual(2, (self, separator) => {
|
|
184
|
+
const out = self.split(separator);
|
|
185
|
+
return isArrayNonEmpty(out) ? out : [self];
|
|
186
|
+
});
|
|
187
|
+
/**
|
|
188
|
+
* Returns `true` if `searchString` appears as a substring of `self`, at one or more positions that are
|
|
189
|
+
* greater than or equal to `position`; otherwise, returns `false`.
|
|
190
|
+
*
|
|
191
|
+
* **Example** (Checking for substrings)
|
|
192
|
+
*
|
|
193
|
+
* ```ts import.meta.vitest
|
|
194
|
+
* import { pipe, String } from "effect"
|
|
195
|
+
*
|
|
196
|
+
* pipe("hello world", String.includes("world")) // => true
|
|
197
|
+
* pipe("hello world", String.includes("foo")) // => false
|
|
198
|
+
* ```
|
|
199
|
+
*
|
|
200
|
+
* @stability stable
|
|
201
|
+
* @category predicates
|
|
202
|
+
* @since 2.0.0
|
|
203
|
+
*/
|
|
204
|
+
const includes = (searchString, position) => (self) => self.includes(searchString, position);
|
|
205
|
+
/**
|
|
206
|
+
* Returns `true` if the string starts with the specified search string.
|
|
207
|
+
*
|
|
208
|
+
* **Example** (Checking string prefixes)
|
|
209
|
+
*
|
|
210
|
+
* ```ts import.meta.vitest
|
|
211
|
+
* import { pipe, String } from "effect"
|
|
212
|
+
*
|
|
213
|
+
* pipe("hello world", String.startsWith("hello")) // => true
|
|
214
|
+
* pipe("hello world", String.startsWith("world")) // => false
|
|
215
|
+
* ```
|
|
216
|
+
*
|
|
217
|
+
* @stability stable
|
|
218
|
+
* @category predicates
|
|
219
|
+
* @since 2.0.0
|
|
220
|
+
*/
|
|
221
|
+
const startsWith = (searchString, position) => (self) => self.startsWith(searchString, position);
|
|
222
|
+
/**
|
|
223
|
+
* Returns `true` if the string ends with the specified search string.
|
|
224
|
+
*
|
|
225
|
+
* **Example** (Checking string suffixes)
|
|
226
|
+
*
|
|
227
|
+
* ```ts import.meta.vitest
|
|
228
|
+
* import { pipe, String } from "effect"
|
|
229
|
+
*
|
|
230
|
+
* pipe("hello world", String.endsWith("world")) // => true
|
|
231
|
+
* pipe("hello world", String.endsWith("hello")) // => false
|
|
232
|
+
* ```
|
|
233
|
+
*
|
|
234
|
+
* @stability stable
|
|
235
|
+
* @category predicates
|
|
236
|
+
* @since 2.0.0
|
|
237
|
+
*/
|
|
238
|
+
const endsWith = (searchString, position) => (self) => self.endsWith(searchString, position);
|
|
239
|
+
/**
|
|
240
|
+
* Returns the index of the first occurrence of a substring safely, or `None` if not found.
|
|
241
|
+
*
|
|
242
|
+
* **Example** (Finding the first substring index)
|
|
243
|
+
*
|
|
244
|
+
* ```ts import.meta.vitest
|
|
245
|
+
* import { Option, pipe, String } from "effect"
|
|
246
|
+
*
|
|
247
|
+
* pipe("abbbc", String.indexOf("b")) // => Option.some(1)
|
|
248
|
+
* pipe("abbbc", String.indexOf("z")) // => Option.none()
|
|
249
|
+
* ```
|
|
250
|
+
*
|
|
251
|
+
* @stability stable
|
|
252
|
+
* @category searching
|
|
253
|
+
* @since 2.0.0
|
|
254
|
+
*/
|
|
255
|
+
const indexOf = (searchString) => (self) => filter(some(self.indexOf(searchString)), isGreaterThanOrEqualTo(0));
|
|
256
|
+
/**
|
|
257
|
+
* Normalizes a string according to the specified Unicode normalization form.
|
|
258
|
+
*
|
|
259
|
+
* **Example** (Normalizing Unicode strings)
|
|
260
|
+
*
|
|
261
|
+
* ```ts import.meta.vitest
|
|
262
|
+
* import { pipe, String } from "effect"
|
|
263
|
+
*
|
|
264
|
+
* const str = "\u1E9B\u0323"
|
|
265
|
+
* Array.from(pipe(str, String.normalize()), (character) => character.codePointAt(0)) // => [0x1e9b, 0x323]
|
|
266
|
+
* Array.from(pipe(str, String.normalize("NFC")), (character) => character.codePointAt(0)) // => [0x1e9b, 0x323]
|
|
267
|
+
* Array.from(
|
|
268
|
+
* pipe(str, String.normalize("NFD")),
|
|
269
|
+
* (character) => character.codePointAt(0)
|
|
270
|
+
* ) // => [0x17f, 0x323, 0x307]
|
|
271
|
+
* Array.from(pipe(str, String.normalize("NFKC")), (character) => character.codePointAt(0)) // => [0x1e69]
|
|
272
|
+
* Array.from(
|
|
273
|
+
* pipe(str, String.normalize("NFKD")),
|
|
274
|
+
* (character) => character.codePointAt(0)
|
|
275
|
+
* ) // => [0x73, 0x323, 0x307]
|
|
276
|
+
* ```
|
|
277
|
+
*
|
|
278
|
+
* @stability stable
|
|
279
|
+
* @category transforming
|
|
280
|
+
* @since 2.0.0
|
|
281
|
+
*/
|
|
282
|
+
const normalize = (form) => (self) => self.normalize(form);
|
|
283
|
+
/**
|
|
284
|
+
* Pads the string from the end with a given fill string to a specified length.
|
|
285
|
+
*
|
|
286
|
+
* **Example** (Padding strings at the end)
|
|
287
|
+
*
|
|
288
|
+
* ```ts import.meta.vitest
|
|
289
|
+
* import { pipe, String } from "effect"
|
|
290
|
+
*
|
|
291
|
+
* pipe("a", String.padEnd(5)) // => "a "
|
|
292
|
+
* pipe("a", String.padEnd(5, "_")) // => "a____"
|
|
293
|
+
* ```
|
|
294
|
+
*
|
|
295
|
+
* @stability stable
|
|
296
|
+
* @category transforming
|
|
297
|
+
* @since 2.0.0
|
|
298
|
+
*/
|
|
299
|
+
const padEnd = (maxLength, fillString) => (self) => self.padEnd(maxLength, fillString);
|
|
300
|
+
/**
|
|
301
|
+
* Pads the string from the start with a given fill string to a specified length.
|
|
302
|
+
*
|
|
303
|
+
* **Example** (Padding strings at the start)
|
|
304
|
+
*
|
|
305
|
+
* ```ts import.meta.vitest
|
|
306
|
+
* import { pipe, String } from "effect"
|
|
307
|
+
*
|
|
308
|
+
* pipe("a", String.padStart(5)) // => " a"
|
|
309
|
+
* pipe("a", String.padStart(5, "_")) // => "____a"
|
|
310
|
+
* ```
|
|
311
|
+
*
|
|
312
|
+
* @stability stable
|
|
313
|
+
* @category transforming
|
|
314
|
+
* @since 2.0.0
|
|
315
|
+
*/
|
|
316
|
+
const padStart = (maxLength, fillString) => (self) => self.padStart(maxLength, fillString);
|
|
317
|
+
/**
|
|
318
|
+
* Replaces all occurrences of a substring or pattern in a string.
|
|
319
|
+
*
|
|
320
|
+
* **Example** (Replacing all matches)
|
|
321
|
+
*
|
|
322
|
+
* ```ts import.meta.vitest
|
|
323
|
+
* import { pipe, String } from "effect"
|
|
324
|
+
*
|
|
325
|
+
* pipe("ababb", String.replaceAll("b", "c")) // => "acacc"
|
|
326
|
+
* pipe("ababb", String.replaceAll(/ba/g, "cc")) // => "accbb"
|
|
327
|
+
* ```
|
|
328
|
+
*
|
|
329
|
+
* @stability stable
|
|
330
|
+
* @category transforming
|
|
331
|
+
* @since 2.0.0
|
|
332
|
+
*/
|
|
333
|
+
const replaceAll = (searchValue, replaceValue) => (self) => self.replaceAll(searchValue, replaceValue);
|
|
334
|
+
/**
|
|
335
|
+
* Converts a camelCase string to snake_case.
|
|
336
|
+
*
|
|
337
|
+
* **Example** (Converting camelCase to snake_case)
|
|
338
|
+
*
|
|
339
|
+
* ```ts import.meta.vitest
|
|
340
|
+
* import { String } from "effect"
|
|
341
|
+
*
|
|
342
|
+
* String.camelToSnake("helloWorld") // => "hello_world"
|
|
343
|
+
* String.camelToSnake("fooBarBaz") // => "foo_bar_baz"
|
|
344
|
+
* ```
|
|
345
|
+
*
|
|
346
|
+
* @stability stable
|
|
347
|
+
* @category transforming
|
|
348
|
+
* @since 2.0.0
|
|
349
|
+
*/
|
|
350
|
+
const camelToSnake = (self) => self.replace(/([A-Z])/g, "_$1").toLowerCase();
|
|
351
|
+
export { toUpperCase as _, indexOf as a, normalize as c, replace as d, replaceAll as f, toLowerCase as g, startsWith as h, includes as i, padEnd as l, split as m, camelToSnake as n, isEmpty as o, slice as p, endsWith as r, isNonEmpty as s, Order as t, padStart as u, trim as v, trimEnd as y };
|