inray 0.0.6 → 0.0.8
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.md +32 -29
- package/README.md +467 -55
- package/dist/db/postgres/types/index.d.ts +2 -1
- package/dist/random/_pcg32.d.ts +61 -0
- package/dist/random/_pcg32.d.ts.map +1 -0
- package/dist/random/_pcg32.js +122 -0
- package/dist/random/_pcg32.js.map +1 -0
- package/dist/random/_platform.d.ts +12 -0
- package/dist/random/_platform.d.ts.map +1 -0
- package/dist/random/_platform.js +13 -0
- package/dist/random/_platform.js.map +1 -0
- package/dist/random/_seed_bytes_from_uint64.d.ts +15 -0
- package/dist/random/_seed_bytes_from_uint64.d.ts.map +1 -0
- package/dist/random/_seed_bytes_from_uint64.js +23 -0
- package/dist/random/_seed_bytes_from_uint64.js.map +1 -0
- package/dist/random/_test_utils.d.ts +15 -0
- package/dist/random/_test_utils.d.ts.map +1 -0
- package/dist/random/_test_utils.js +92 -0
- package/dist/random/_test_utils.js.map +1 -0
- package/dist/random/_types.d.ts +50 -0
- package/dist/random/_types.d.ts.map +1 -0
- package/dist/random/_types.js +10 -0
- package/dist/random/_types.js.map +1 -0
- package/dist/random/between.d.ts +33 -0
- package/dist/random/between.d.ts.map +1 -0
- package/dist/random/between.js +44 -0
- package/dist/random/between.js.map +1 -0
- package/dist/random/get_random_values_seeded.d.ts +31 -0
- package/dist/random/get_random_values_seeded.d.ts.map +1 -0
- package/dist/random/get_random_values_seeded.js +34 -0
- package/dist/random/get_random_values_seeded.js.map +1 -0
- package/dist/random/integer_between.d.ts +33 -0
- package/dist/random/integer_between.d.ts.map +1 -0
- package/dist/random/integer_between.js +34 -0
- package/dist/random/integer_between.js.map +1 -0
- package/dist/random/internal/_testing.d.ts +15 -0
- package/dist/random/internal/_testing.d.ts.map +1 -0
- package/dist/random/internal/_testing.js +27 -0
- package/dist/random/internal/_testing.js.map +1 -0
- package/dist/random/mod.d.ts +45 -0
- package/dist/random/mod.d.ts.map +1 -0
- package/dist/random/mod.js +46 -0
- package/dist/random/mod.js.map +1 -0
- package/dist/random/next_float_64.d.ts +38 -0
- package/dist/random/next_float_64.d.ts.map +1 -0
- package/dist/random/next_float_64.js +47 -0
- package/dist/random/next_float_64.js.map +1 -0
- package/dist/random/sample.d.ts +58 -0
- package/dist/random/sample.d.ts.map +1 -0
- package/dist/random/sample.js +69 -0
- package/dist/random/sample.js.map +1 -0
- package/dist/random/seeded.d.ts +34 -0
- package/dist/random/seeded.d.ts.map +1 -0
- package/dist/random/seeded.js +37 -0
- package/dist/random/seeded.js.map +1 -0
- package/dist/random/shuffle.d.ts +35 -0
- package/dist/random/shuffle.d.ts.map +1 -0
- package/dist/random/shuffle.js +48 -0
- package/dist/random/shuffle.js.map +1 -0
- package/dist/semver/_constants.d.ts +20 -0
- package/dist/semver/_constants.d.ts.map +1 -0
- package/dist/semver/_constants.js +28 -0
- package/dist/semver/_constants.js.map +1 -0
- package/dist/semver/_shared.d.ts +52 -0
- package/dist/semver/_shared.d.ts.map +1 -0
- package/dist/semver/_shared.js +168 -0
- package/dist/semver/_shared.js.map +1 -0
- package/dist/semver/_test_comparator_set.d.ts +11 -0
- package/dist/semver/_test_comparator_set.d.ts.map +1 -0
- package/dist/semver/_test_comparator_set.js +62 -0
- package/dist/semver/_test_comparator_set.js.map +1 -0
- package/dist/semver/can_parse.d.ts +24 -0
- package/dist/semver/can_parse.d.ts.map +1 -0
- package/dist/semver/can_parse.js +34 -0
- package/dist/semver/can_parse.js.map +1 -0
- package/dist/semver/compare.d.ts +35 -0
- package/dist/semver/compare.d.ts.map +1 -0
- package/dist/semver/compare.js +43 -0
- package/dist/semver/compare.js.map +1 -0
- package/dist/semver/difference.d.ts +34 -0
- package/dist/semver/difference.d.ts.map +1 -0
- package/dist/semver/difference.js +48 -0
- package/dist/semver/difference.js.map +1 -0
- package/dist/semver/equals.d.ts +31 -0
- package/dist/semver/equals.d.ts.map +1 -0
- package/dist/semver/equals.js +34 -0
- package/dist/semver/equals.js.map +1 -0
- package/dist/semver/format.d.ts +29 -0
- package/dist/semver/format.d.ts.map +1 -0
- package/dist/semver/format.js +40 -0
- package/dist/semver/format.js.map +1 -0
- package/dist/semver/format_range.d.ts +25 -0
- package/dist/semver/format_range.d.ts.map +1 -0
- package/dist/semver/format_range.js +33 -0
- package/dist/semver/format_range.js.map +1 -0
- package/dist/semver/greater_or_equal.d.ts +32 -0
- package/dist/semver/greater_or_equal.d.ts.map +1 -0
- package/dist/semver/greater_or_equal.js +34 -0
- package/dist/semver/greater_or_equal.js.map +1 -0
- package/dist/semver/greater_than.d.ts +32 -0
- package/dist/semver/greater_than.d.ts.map +1 -0
- package/dist/semver/greater_than.js +34 -0
- package/dist/semver/greater_than.js.map +1 -0
- package/dist/semver/greater_than_range.d.ts +30 -0
- package/dist/semver/greater_than_range.d.ts.map +1 -0
- package/dist/semver/greater_than_range.js +64 -0
- package/dist/semver/greater_than_range.js.map +1 -0
- package/dist/semver/increment.d.ts +61 -0
- package/dist/semver/increment.d.ts.map +1 -0
- package/dist/semver/increment.js +186 -0
- package/dist/semver/increment.js.map +1 -0
- package/dist/semver/is_range.d.ts +30 -0
- package/dist/semver/is_range.d.ts.map +1 -0
- package/dist/semver/is_range.js +42 -0
- package/dist/semver/is_range.js.map +1 -0
- package/dist/semver/is_semver.d.ts +41 -0
- package/dist/semver/is_semver.d.ts.map +1 -0
- package/dist/semver/is_semver.js +60 -0
- package/dist/semver/is_semver.js.map +1 -0
- package/dist/semver/less_or_equal.d.ts +32 -0
- package/dist/semver/less_or_equal.d.ts.map +1 -0
- package/dist/semver/less_or_equal.js +34 -0
- package/dist/semver/less_or_equal.js.map +1 -0
- package/dist/semver/less_than.d.ts +32 -0
- package/dist/semver/less_than.d.ts.map +1 -0
- package/dist/semver/less_than.js +34 -0
- package/dist/semver/less_than.js.map +1 -0
- package/dist/semver/less_than_range.d.ts +30 -0
- package/dist/semver/less_than_range.d.ts.map +1 -0
- package/dist/semver/less_than_range.js +64 -0
- package/dist/semver/less_than_range.js.map +1 -0
- package/dist/semver/max_satisfying.d.ts +29 -0
- package/dist/semver/max_satisfying.d.ts.map +1 -0
- package/dist/semver/max_satisfying.js +38 -0
- package/dist/semver/max_satisfying.js.map +1 -0
- package/dist/semver/min_satisfying.d.ts +29 -0
- package/dist/semver/min_satisfying.d.ts.map +1 -0
- package/dist/semver/min_satisfying.js +38 -0
- package/dist/semver/min_satisfying.js.map +1 -0
- package/dist/semver/mod.d.ts +305 -0
- package/dist/semver/mod.d.ts.map +1 -0
- package/dist/semver/mod.js +306 -0
- package/dist/semver/mod.js.map +1 -0
- package/dist/semver/not_equals.d.ts +31 -0
- package/dist/semver/not_equals.d.ts.map +1 -0
- package/dist/semver/not_equals.js +33 -0
- package/dist/semver/not_equals.js.map +1 -0
- package/dist/semver/parse.d.ts +32 -0
- package/dist/semver/parse.d.ts.map +1 -0
- package/dist/semver/parse.js +50 -0
- package/dist/semver/parse.js.map +1 -0
- package/dist/semver/parse_range.d.ts +34 -0
- package/dist/semver/parse_range.d.ts.map +1 -0
- package/dist/semver/parse_range.js +352 -0
- package/dist/semver/parse_range.js.map +1 -0
- package/dist/semver/range_intersects.d.ts +32 -0
- package/dist/semver/range_intersects.d.ts.map +1 -0
- package/dist/semver/range_intersects.js +89 -0
- package/dist/semver/range_intersects.js.map +1 -0
- package/dist/semver/satisfies.d.ts +31 -0
- package/dist/semver/satisfies.d.ts.map +1 -0
- package/dist/semver/satisfies.js +33 -0
- package/dist/semver/satisfies.js.map +1 -0
- package/dist/semver/try_parse.d.ts +28 -0
- package/dist/semver/try_parse.d.ts.map +1 -0
- package/dist/semver/try_parse.js +35 -0
- package/dist/semver/try_parse.js.map +1 -0
- package/dist/semver/try_parse_range.d.ts +31 -0
- package/dist/semver/try_parse_range.d.ts.map +1 -0
- package/dist/semver/try_parse_range.js +40 -0
- package/dist/semver/try_parse_range.js.map +1 -0
- package/dist/semver/types.d.ts +66 -0
- package/dist/semver/types.d.ts.map +1 -0
- package/dist/semver/types.js +10 -0
- package/dist/semver/types.js.map +1 -0
- package/dist/text/_util.d.ts +11 -0
- package/dist/text/_util.d.ts.map +1 -0
- package/dist/text/_util.js +21 -0
- package/dist/text/_util.js.map +1 -0
- package/dist/text/closest_string.d.ts +49 -0
- package/dist/text/closest_string.d.ts.map +1 -0
- package/dist/text/closest_string.js +51 -0
- package/dist/text/closest_string.js.map +1 -0
- package/dist/text/compare_similarity.d.ts +54 -0
- package/dist/text/compare_similarity.d.ts.map +1 -0
- package/dist/text/compare_similarity.js +45 -0
- package/dist/text/compare_similarity.js.map +1 -0
- package/dist/text/levenshtein_distance.d.ts +30 -0
- package/dist/text/levenshtein_distance.d.ts.map +1 -0
- package/dist/text/levenshtein_distance.js +134 -0
- package/dist/text/levenshtein_distance.js.map +1 -0
- package/dist/text/mod.d.ts +34 -0
- package/dist/text/mod.d.ts.map +1 -0
- package/dist/text/mod.js +35 -0
- package/dist/text/mod.js.map +1 -0
- package/dist/text/to_camel_case.d.ts +23 -0
- package/dist/text/to_camel_case.d.ts.map +1 -0
- package/dist/text/to_camel_case.js +29 -0
- package/dist/text/to_camel_case.js.map +1 -0
- package/dist/text/to_kebab_case.d.ts +23 -0
- package/dist/text/to_kebab_case.d.ts.map +1 -0
- package/dist/text/to_kebab_case.js +28 -0
- package/dist/text/to_kebab_case.js.map +1 -0
- package/dist/text/to_pascal_case.d.ts +23 -0
- package/dist/text/to_pascal_case.d.ts.map +1 -0
- package/dist/text/to_pascal_case.js +28 -0
- package/dist/text/to_pascal_case.js.map +1 -0
- package/dist/text/to_snake_case.d.ts +23 -0
- package/dist/text/to_snake_case.d.ts.map +1 -0
- package/dist/text/to_snake_case.js +28 -0
- package/dist/text/to_snake_case.js.map +1 -0
- package/dist/text/truncate.d.ts +81 -0
- package/dist/text/truncate.d.ts.map +1 -0
- package/dist/text/truncate.js +116 -0
- package/dist/text/truncate.js.map +1 -0
- package/dist/text/word_similarity_sort.d.ts +46 -0
- package/dist/text/word_similarity_sort.d.ts.map +1 -0
- package/dist/text/word_similarity_sort.js +47 -0
- package/dist/text/word_similarity_sort.js.map +1 -0
- package/package.json +16 -1
package/dist/text/mod.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
// This module is browser compatible.
|
|
10
|
+
/**
|
|
11
|
+
* Utility functions for working with text.
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { toCamelCase, compareSimilarity } from "inray/text";
|
|
15
|
+
*
|
|
16
|
+
* toCamelCase("snake_case"); // "snakeCase"
|
|
17
|
+
*
|
|
18
|
+
* const words = ["hi", "help", "hello"];
|
|
19
|
+
*
|
|
20
|
+
* // Words most similar to "hep" will be at the front
|
|
21
|
+
* words.sort(compareSimilarity("hep")); // ["help", "hi", "hello"]
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @module
|
|
25
|
+
*/
|
|
26
|
+
export * from "./levenshtein_distance.js";
|
|
27
|
+
export * from "./closest_string.js";
|
|
28
|
+
export * from "./compare_similarity.js";
|
|
29
|
+
export * from "./word_similarity_sort.js";
|
|
30
|
+
export * from "./to_camel_case.js";
|
|
31
|
+
export * from "./to_kebab_case.js";
|
|
32
|
+
export * from "./to_pascal_case.js";
|
|
33
|
+
export * from "./to_snake_case.js";
|
|
34
|
+
export * from "./truncate.js";
|
|
35
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/text/mod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AAErC;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* Converts a string into camelCase.
|
|
11
|
+
*
|
|
12
|
+
* @example Usage
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { toCamelCase } from "inray/text";
|
|
15
|
+
*
|
|
16
|
+
* toCamelCase("deno is awesome"); // "denoIsAwesome"
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @param input The string that is going to be converted into camelCase
|
|
20
|
+
* @returns The string as camelCase
|
|
21
|
+
*/
|
|
22
|
+
export declare function toCamelCase(input: string): string;
|
|
23
|
+
//# sourceMappingURL=to_camel_case.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_camel_case.d.ts","sourceRoot":"","sources":["../../src/text/to_camel_case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAML;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
// This module is browser compatible.
|
|
10
|
+
import { capitalizeWord, splitToWords } from "./_util.js";
|
|
11
|
+
/**
|
|
12
|
+
* Converts a string into camelCase.
|
|
13
|
+
*
|
|
14
|
+
* @example Usage
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { toCamelCase } from "inray/text";
|
|
17
|
+
*
|
|
18
|
+
* toCamelCase("deno is awesome"); // "denoIsAwesome"
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @param input The string that is going to be converted into camelCase
|
|
22
|
+
* @returns The string as camelCase
|
|
23
|
+
*/
|
|
24
|
+
export function toCamelCase(input) {
|
|
25
|
+
input = input.trim();
|
|
26
|
+
const [first = '', ...rest] = splitToWords(input);
|
|
27
|
+
return [first.toLowerCase(), ...rest.map(capitalizeWord)].join('');
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=to_camel_case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_camel_case.js","sourceRoot":"","sources":["../../src/text/to_camel_case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AAErC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* Converts a string into kebab-case.
|
|
11
|
+
*
|
|
12
|
+
* @example Usage
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { toKebabCase } from "inray/text";
|
|
15
|
+
*
|
|
16
|
+
* toKebabCase("deno is awesome"); // "deno-is-awesome"
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @param input The string that is going to be converted into kebab-case
|
|
20
|
+
* @returns The string as kebab-case
|
|
21
|
+
*/
|
|
22
|
+
export declare function toKebabCase(input: string): string;
|
|
23
|
+
//# sourceMappingURL=to_kebab_case.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_kebab_case.d.ts","sourceRoot":"","sources":["../../src/text/to_kebab_case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAML;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
// This module is browser compatible.
|
|
10
|
+
import { splitToWords } from "./_util.js";
|
|
11
|
+
/**
|
|
12
|
+
* Converts a string into kebab-case.
|
|
13
|
+
*
|
|
14
|
+
* @example Usage
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { toKebabCase } from "inray/text";
|
|
17
|
+
*
|
|
18
|
+
* toKebabCase("deno is awesome"); // "deno-is-awesome"
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @param input The string that is going to be converted into kebab-case
|
|
22
|
+
* @returns The string as kebab-case
|
|
23
|
+
*/
|
|
24
|
+
export function toKebabCase(input) {
|
|
25
|
+
input = input.trim();
|
|
26
|
+
return splitToWords(input).join('-').toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=to_kebab_case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_kebab_case.js","sourceRoot":"","sources":["../../src/text/to_kebab_case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* Converts a string into PascalCase.
|
|
11
|
+
*
|
|
12
|
+
* @example Usage
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { toPascalCase } from "inray/text";
|
|
15
|
+
*
|
|
16
|
+
* toPascalCase("deno is awesome"); // "DenoIsAwesome"
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @param input The string that is going to be converted into PascalCase
|
|
20
|
+
* @returns The string as PascalCase
|
|
21
|
+
*/
|
|
22
|
+
export declare function toPascalCase(input: string): string;
|
|
23
|
+
//# sourceMappingURL=to_pascal_case.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_pascal_case.d.ts","sourceRoot":"","sources":["../../src/text/to_pascal_case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAML;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGlD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
// This module is browser compatible.
|
|
10
|
+
import { capitalizeWord, splitToWords } from "./_util.js";
|
|
11
|
+
/**
|
|
12
|
+
* Converts a string into PascalCase.
|
|
13
|
+
*
|
|
14
|
+
* @example Usage
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { toPascalCase } from "inray/text";
|
|
17
|
+
*
|
|
18
|
+
* toPascalCase("deno is awesome"); // "DenoIsAwesome"
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @param input The string that is going to be converted into PascalCase
|
|
22
|
+
* @returns The string as PascalCase
|
|
23
|
+
*/
|
|
24
|
+
export function toPascalCase(input) {
|
|
25
|
+
input = input.trim();
|
|
26
|
+
return splitToWords(input).map(capitalizeWord).join('');
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=to_pascal_case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_pascal_case.js","sourceRoot":"","sources":["../../src/text/to_pascal_case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AAErC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* Converts a string into snake_case.
|
|
11
|
+
*
|
|
12
|
+
* @example Usage
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { toSnakeCase } from "inray/text";
|
|
15
|
+
*
|
|
16
|
+
* toSnakeCase("deno is awesome"); // "deno_is_awesome"
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @param input The string that is going to be converted into snake_case
|
|
20
|
+
* @returns The string as snake_case
|
|
21
|
+
*/
|
|
22
|
+
export declare function toSnakeCase(input: string): string;
|
|
23
|
+
//# sourceMappingURL=to_snake_case.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_snake_case.d.ts","sourceRoot":"","sources":["../../src/text/to_snake_case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAML;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
// This module is browser compatible.
|
|
10
|
+
import { splitToWords } from "./_util.js";
|
|
11
|
+
/**
|
|
12
|
+
* Converts a string into snake_case.
|
|
13
|
+
*
|
|
14
|
+
* @example Usage
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { toSnakeCase } from "inray/text";
|
|
17
|
+
*
|
|
18
|
+
* toSnakeCase("deno is awesome"); // "deno_is_awesome"
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @param input The string that is going to be converted into snake_case
|
|
22
|
+
* @returns The string as snake_case
|
|
23
|
+
*/
|
|
24
|
+
export function toSnakeCase(input) {
|
|
25
|
+
input = input.trim();
|
|
26
|
+
return splitToWords(input).join('_').toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=to_snake_case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_snake_case.js","sourceRoot":"","sources":["../../src/text/to_snake_case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/** Options for {@linkcode truncate}. */
|
|
10
|
+
export interface TruncateOptions {
|
|
11
|
+
/**
|
|
12
|
+
* The string used to indicate where truncation occurred.
|
|
13
|
+
*
|
|
14
|
+
* @default {"…"}
|
|
15
|
+
*/
|
|
16
|
+
suffix?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Where to truncate.
|
|
19
|
+
*
|
|
20
|
+
* - `"end"`: `"very long te…"`
|
|
21
|
+
* - `"middle"`: `"very l…g text"` (useful for file paths)
|
|
22
|
+
* - `"start"`: `"…ery long text"`
|
|
23
|
+
*
|
|
24
|
+
* @default {"end"}
|
|
25
|
+
*/
|
|
26
|
+
position?: 'end' | 'middle' | 'start';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Truncates a string to at most `maxLength` UTF-16 code units. When truncation
|
|
30
|
+
* occurs the suffix is included within the `maxLength` budget. Surrogate pairs
|
|
31
|
+
* are never split, so the result may be shorter than `maxLength` when a cut
|
|
32
|
+
* would land inside a pair. When the suffix itself contains surrogate pairs and
|
|
33
|
+
* `maxLength` is very small, the result can even be empty.
|
|
34
|
+
*
|
|
35
|
+
* Note: this function is not grapheme-cluster-aware. Combining characters, flag
|
|
36
|
+
* emoji, and ZWJ sequences may still be visually split.
|
|
37
|
+
*
|
|
38
|
+
* @experimental **UNSTABLE**: New API, yet to be vetted.
|
|
39
|
+
*
|
|
40
|
+
* @param str The string to truncate.
|
|
41
|
+
* @param maxLength The maximum length of the returned string (must be a
|
|
42
|
+
* non-negative integer).
|
|
43
|
+
* @param options The truncation options.
|
|
44
|
+
* @returns The truncated string.
|
|
45
|
+
* @throws {RangeError} If `maxLength` is not a non-negative integer.
|
|
46
|
+
* @throws {TypeError} If `position` is not a valid position.
|
|
47
|
+
*
|
|
48
|
+
* @example End truncation (default)
|
|
49
|
+
* ```ts
|
|
50
|
+
* import { truncate } from "inray/text";
|
|
51
|
+
*
|
|
52
|
+
* truncate("Hello, world!", 8); // "Hello, …");
|
|
53
|
+
* truncate("Short", 10); // "Short"
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @example Middle truncation
|
|
57
|
+
* ```ts
|
|
58
|
+
* import { truncate } from "inray/text";
|
|
59
|
+
*
|
|
60
|
+
* truncate("src/components/Button.tsx", 18, { position: "middle" });
|
|
61
|
+
* // "src/comp…utton.tsx"
|
|
62
|
+
* * ```
|
|
63
|
+
*
|
|
64
|
+
* @example Start truncation
|
|
65
|
+
* ```ts
|
|
66
|
+
* import { truncate } from "inray/text";
|
|
67
|
+
*
|
|
68
|
+
* truncate("Hello, world!", 8, { position: "start" });
|
|
69
|
+
* // "… world!"
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* @example Custom suffix
|
|
73
|
+
* ```ts
|
|
74
|
+
* import { truncate } from "inray/text";
|
|
75
|
+
*
|
|
76
|
+
* truncate("Hello, world!", 10, { suffix: "→" });
|
|
77
|
+
* // "Hello, wo→"
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function truncate(str: string, maxLength: number, options?: TruncateOptions): string;
|
|
81
|
+
//# sourceMappingURL=truncate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../src/text/truncate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAgC1F"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* Truncates a string to at most `maxLength` UTF-16 code units. When truncation
|
|
11
|
+
* occurs the suffix is included within the `maxLength` budget. Surrogate pairs
|
|
12
|
+
* are never split, so the result may be shorter than `maxLength` when a cut
|
|
13
|
+
* would land inside a pair. When the suffix itself contains surrogate pairs and
|
|
14
|
+
* `maxLength` is very small, the result can even be empty.
|
|
15
|
+
*
|
|
16
|
+
* Note: this function is not grapheme-cluster-aware. Combining characters, flag
|
|
17
|
+
* emoji, and ZWJ sequences may still be visually split.
|
|
18
|
+
*
|
|
19
|
+
* @experimental **UNSTABLE**: New API, yet to be vetted.
|
|
20
|
+
*
|
|
21
|
+
* @param str The string to truncate.
|
|
22
|
+
* @param maxLength The maximum length of the returned string (must be a
|
|
23
|
+
* non-negative integer).
|
|
24
|
+
* @param options The truncation options.
|
|
25
|
+
* @returns The truncated string.
|
|
26
|
+
* @throws {RangeError} If `maxLength` is not a non-negative integer.
|
|
27
|
+
* @throws {TypeError} If `position` is not a valid position.
|
|
28
|
+
*
|
|
29
|
+
* @example End truncation (default)
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { truncate } from "inray/text";
|
|
32
|
+
*
|
|
33
|
+
* truncate("Hello, world!", 8); // "Hello, …");
|
|
34
|
+
* truncate("Short", 10); // "Short"
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example Middle truncation
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { truncate } from "inray/text";
|
|
40
|
+
*
|
|
41
|
+
* truncate("src/components/Button.tsx", 18, { position: "middle" });
|
|
42
|
+
* // "src/comp…utton.tsx"
|
|
43
|
+
* * ```
|
|
44
|
+
*
|
|
45
|
+
* @example Start truncation
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { truncate } from "inray/text";
|
|
48
|
+
*
|
|
49
|
+
* truncate("Hello, world!", 8, { position: "start" });
|
|
50
|
+
* // "… world!"
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @example Custom suffix
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { truncate } from "inray/text";
|
|
56
|
+
*
|
|
57
|
+
* truncate("Hello, world!", 10, { suffix: "→" });
|
|
58
|
+
* // "Hello, wo→"
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export function truncate(str, maxLength, options) {
|
|
62
|
+
if (!Number.isInteger(maxLength) || maxLength < 0) {
|
|
63
|
+
throw new RangeError(`Cannot truncate: maxLength must be a non-negative integer, received ${maxLength}`);
|
|
64
|
+
}
|
|
65
|
+
if (maxLength === 0)
|
|
66
|
+
return '';
|
|
67
|
+
if (str.length <= maxLength)
|
|
68
|
+
return str;
|
|
69
|
+
const suffix = options?.suffix ?? '\u2026';
|
|
70
|
+
const position = options?.position ?? 'end';
|
|
71
|
+
if (maxLength <= suffix.length) {
|
|
72
|
+
return suffix.slice(0, adjustSplitBack(suffix, maxLength));
|
|
73
|
+
}
|
|
74
|
+
const budget = maxLength - suffix.length;
|
|
75
|
+
switch (position) {
|
|
76
|
+
case 'start': {
|
|
77
|
+
const start = str.length - budget;
|
|
78
|
+
return suffix + str.slice(adjustSplitForward(str, start));
|
|
79
|
+
}
|
|
80
|
+
case 'middle': {
|
|
81
|
+
const leftLen = Math.floor(budget / 2);
|
|
82
|
+
const rightLen = budget - leftLen;
|
|
83
|
+
const rightStart = str.length - rightLen;
|
|
84
|
+
return str.slice(0, adjustSplitBack(str, leftLen)) + suffix + str.slice(adjustSplitForward(str, rightStart));
|
|
85
|
+
}
|
|
86
|
+
case 'end':
|
|
87
|
+
return str.slice(0, adjustSplitBack(str, budget)) + suffix;
|
|
88
|
+
default:
|
|
89
|
+
throw new TypeError(`Cannot truncate: position must be "end", "middle", or "start", received "${position}"`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* If `index` lands on a low surrogate, back up one position so we don't split
|
|
94
|
+
* a surrogate pair.
|
|
95
|
+
*/
|
|
96
|
+
function adjustSplitBack(str, index) {
|
|
97
|
+
if (index > 0 && index < str.length) {
|
|
98
|
+
const code = str.charCodeAt(index);
|
|
99
|
+
if (code >= 0xdc00 && code <= 0xdfff)
|
|
100
|
+
return index - 1;
|
|
101
|
+
}
|
|
102
|
+
return index;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* If `index` lands on a low surrogate, advance one position so we don't split
|
|
106
|
+
* a surrogate pair.
|
|
107
|
+
*/
|
|
108
|
+
function adjustSplitForward(str, index) {
|
|
109
|
+
if (index > 0 && index < str.length) {
|
|
110
|
+
const code = str.charCodeAt(index);
|
|
111
|
+
if (code >= 0xdc00 && code <= 0xdfff)
|
|
112
|
+
return index + 1;
|
|
113
|
+
}
|
|
114
|
+
return index;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=truncate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/text/truncate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAwBL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,SAAiB,EAAE,OAAyB;IAChF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,UAAU,CAAC,uEAAuE,SAAS,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,GAAG,CAAC;IAExC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC;IAE5C,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAEzC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;YAClC,OAAO,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;YAClC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YACzC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;QAC/G,CAAC;QACD,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;QAC7D;YACE,MAAM,IAAI,SAAS,CAAC,4EAA4E,QAAQ,GAAG,CAAC,CAAC;IACjH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAW,EAAE,KAAa;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;YAAE,OAAO,KAAK,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAW,EAAE,KAAa;IACpD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;YAAE,OAAO,KAAK,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
import { type CompareSimilarityOptions } from './compare_similarity.ts';
|
|
10
|
+
/** Options for {@linkcode wordSimilaritySort}. */
|
|
11
|
+
export interface WordSimilaritySortOptions extends CompareSimilarityOptions {
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Sorts a string-array by similarity to a given string.
|
|
15
|
+
*
|
|
16
|
+
* By default, calculates the distance between words using the
|
|
17
|
+
* {@link https://en.wikipedia.org/wiki/Levenshtein_distance | Levenshtein distance}.
|
|
18
|
+
*
|
|
19
|
+
* @example Basic usage
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { wordSimilaritySort } from "inray/text";
|
|
23
|
+
*
|
|
24
|
+
* const possibleWords = ["length", "size", "blah", "help"];
|
|
25
|
+
* const suggestions = wordSimilaritySort("hep", possibleWords);
|
|
26
|
+
* // ["help", "size", "blah", "length"]
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example Case-sensitive sorting
|
|
30
|
+
*
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { wordSimilaritySort } from "inray/text";
|
|
33
|
+
*
|
|
34
|
+
* const possibleWords = ["length", "Size", "blah", "HELP"];
|
|
35
|
+
* const suggestions = wordSimilaritySort("hep", possibleWords, { caseSensitive: true });
|
|
36
|
+
* // ["Size", "blah", "HELP", "length"]
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @param givenWord The string to measure distance against.
|
|
40
|
+
* @param possibleWords The string-array that will be sorted. This array will
|
|
41
|
+
* not be mutated, but the sorted copy will be returned.
|
|
42
|
+
* @param options Options for the sort.
|
|
43
|
+
* @returns A sorted copy of `possibleWords`.
|
|
44
|
+
*/
|
|
45
|
+
export declare function wordSimilaritySort(givenWord: string, possibleWords: ReadonlyArray<string>, options?: WordSimilaritySortOptions): string[];
|
|
46
|
+
//# sourceMappingURL=word_similarity_sort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"word_similarity_sort.d.ts","sourceRoot":"","sources":["../../src/text/word_similarity_sort.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAE3F,kDAAkD;AAClD,MAAM,WAAW,yBAA0B,SAAQ,wBAAwB;CAAG;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,EACpC,OAAO,CAAC,EAAE,yBAAyB,GAClC,MAAM,EAAE,CAGV"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: denoland/@std
|
|
3
|
+
* - Copyright (c) 2018-2026 the Deno authors. MIT license.
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
// This module is browser compatible.
|
|
10
|
+
import { compareSimilarity } from "./compare_similarity.js";
|
|
11
|
+
/**
|
|
12
|
+
* Sorts a string-array by similarity to a given string.
|
|
13
|
+
*
|
|
14
|
+
* By default, calculates the distance between words using the
|
|
15
|
+
* {@link https://en.wikipedia.org/wiki/Levenshtein_distance | Levenshtein distance}.
|
|
16
|
+
*
|
|
17
|
+
* @example Basic usage
|
|
18
|
+
*
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { wordSimilaritySort } from "inray/text";
|
|
21
|
+
*
|
|
22
|
+
* const possibleWords = ["length", "size", "blah", "help"];
|
|
23
|
+
* const suggestions = wordSimilaritySort("hep", possibleWords);
|
|
24
|
+
* // ["help", "size", "blah", "length"]
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @example Case-sensitive sorting
|
|
28
|
+
*
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { wordSimilaritySort } from "inray/text";
|
|
31
|
+
*
|
|
32
|
+
* const possibleWords = ["length", "Size", "blah", "HELP"];
|
|
33
|
+
* const suggestions = wordSimilaritySort("hep", possibleWords, { caseSensitive: true });
|
|
34
|
+
* // ["Size", "blah", "HELP", "length"]
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @param givenWord The string to measure distance against.
|
|
38
|
+
* @param possibleWords The string-array that will be sorted. This array will
|
|
39
|
+
* not be mutated, but the sorted copy will be returned.
|
|
40
|
+
* @param options Options for the sort.
|
|
41
|
+
* @returns A sorted copy of `possibleWords`.
|
|
42
|
+
*/
|
|
43
|
+
export function wordSimilaritySort(givenWord, possibleWords, options) {
|
|
44
|
+
// This distance metric could be swapped/improved in the future
|
|
45
|
+
return possibleWords.toSorted(compareSimilarity(givenWord, options));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=word_similarity_sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"word_similarity_sort.js","sourceRoot":"","sources":["../../src/text/word_similarity_sort.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AACrC,OAAO,EAAE,iBAAiB,EAAiC,MAAM,yBAAyB,CAAC;AAK3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,aAAoC,EACpC,OAAmC;IAEnC,+DAA+D;IAC/D,OAAO,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "inray",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "Inray SDK",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -41,7 +41,10 @@
|
|
|
41
41
|
"test:media-types": "vitest run --project media-types",
|
|
42
42
|
"test:node-cron": "vitest run --project node-cron",
|
|
43
43
|
"test:phonenumbers": "vitest run --project phonenumbers",
|
|
44
|
+
"test:random": "vitest run --project random",
|
|
45
|
+
"test:semver": "vitest run --project semver",
|
|
44
46
|
"test:streams": "vitest run --project streams",
|
|
47
|
+
"test:text": "vitest run --project text",
|
|
45
48
|
"test:unidecode": "vitest run --project unidecode",
|
|
46
49
|
"test:valibot": "vitest run --project valibot",
|
|
47
50
|
"test:yaml": "vitest run --project yaml",
|
|
@@ -468,10 +471,22 @@
|
|
|
468
471
|
"types": "./dist/phonenumbers/mod.d.ts",
|
|
469
472
|
"import": "./dist/phonenumbers/mod.js"
|
|
470
473
|
},
|
|
474
|
+
"./random": {
|
|
475
|
+
"types": "./dist/random/mod.d.ts",
|
|
476
|
+
"import": "./dist/random/mod.js"
|
|
477
|
+
},
|
|
478
|
+
"./semver": {
|
|
479
|
+
"types": "./dist/semver/mod.d.ts",
|
|
480
|
+
"import": "./dist/semver/mod.js"
|
|
481
|
+
},
|
|
471
482
|
"./streams": {
|
|
472
483
|
"types": "./dist/streams/mod.d.ts",
|
|
473
484
|
"import": "./dist/streams/mod.js"
|
|
474
485
|
},
|
|
486
|
+
"./text": {
|
|
487
|
+
"types": "./dist/text/mod.d.ts",
|
|
488
|
+
"import": "./dist/text/mod.js"
|
|
489
|
+
},
|
|
475
490
|
"./unidecode": {
|
|
476
491
|
"types": "./dist/unidecode/mod.d.ts",
|
|
477
492
|
"import": "./dist/unidecode/mod.js"
|