@aidc-toolkit/utility 0.9.17-beta → 0.9.18-beta
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/dist/character-set.d.ts +24 -2
- package/dist/character-set.d.ts.map +1 -1
- package/dist/character-set.js +21 -0
- package/dist/character-set.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/iterable-utility.d.ts +39 -0
- package/dist/iterable-utility.d.ts.map +1 -0
- package/dist/iterable-utility.js +35 -0
- package/dist/iterable-utility.js.map +1 -0
- package/dist/locale/en/locale-strings.d.ts +16 -17
- package/dist/locale/en/locale-strings.d.ts.map +1 -1
- package/dist/locale/en/locale-strings.js +16 -17
- package/dist/locale/en/locale-strings.js.map +1 -1
- package/dist/locale/fr/locale-strings.d.ts +16 -17
- package/dist/locale/fr/locale-strings.d.ts.map +1 -1
- package/dist/locale/fr/locale-strings.js +16 -17
- package/dist/locale/fr/locale-strings.js.map +1 -1
- package/dist/record.d.ts +3 -0
- package/dist/record.d.ts.map +1 -1
- package/dist/record.js +3 -0
- package/dist/record.js.map +1 -1
- package/dist/string.d.ts +3 -0
- package/dist/string.d.ts.map +1 -1
- package/dist/transformer.d.ts +4 -35
- package/dist/transformer.d.ts.map +1 -1
- package/dist/transformer.js +4 -31
- package/dist/transformer.js.map +1 -1
- package/package.json +5 -5
- package/src/character-set.ts +28 -2
- package/src/index.ts +1 -0
- package/src/iterable-utility.ts +55 -0
- package/src/locale/en/locale-strings.ts +16 -17
- package/src/locale/fr/locale-strings.ts +16 -17
- package/src/record.ts +3 -0
- package/src/string.ts +3 -0
- package/src/transformer.ts +10 -60
- package/test/character-set.test.ts +28 -12
- package/test/transformer.test.ts +9 -3
package/dist/transformer.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type IndexedCallback } from "./iterable-utility.js";
|
|
1
2
|
/**
|
|
2
3
|
* Transformer primitive type.
|
|
3
4
|
*/
|
|
@@ -6,36 +7,17 @@ export type TransformerPrimitive = string | number | bigint | boolean;
|
|
|
6
7
|
* Transformer input type, one of:
|
|
7
8
|
*
|
|
8
9
|
* - TInput (primitive type)
|
|
9
|
-
* - Iterable
|
|
10
|
+
* - Iterable\<TInput\>
|
|
10
11
|
*
|
|
11
12
|
* @template TInput
|
|
12
13
|
* Transformer input primitive type.
|
|
13
14
|
*/
|
|
14
15
|
export type TransformerInput<TInput extends TransformerPrimitive> = TInput | Iterable<TInput>;
|
|
15
|
-
/**
|
|
16
|
-
* Transformer callback, used to convert transformed value to its final value.
|
|
17
|
-
*
|
|
18
|
-
* @template TInput
|
|
19
|
-
* Transformer input primitive type.
|
|
20
|
-
*
|
|
21
|
-
* @template TOutput
|
|
22
|
-
* Transformer output type.
|
|
23
|
-
*
|
|
24
|
-
* @param input
|
|
25
|
-
* Input value.
|
|
26
|
-
*
|
|
27
|
-
* @param index
|
|
28
|
-
* Index in sequence (0 for single transformation).
|
|
29
|
-
*
|
|
30
|
-
* @returns
|
|
31
|
-
* Output value.
|
|
32
|
-
*/
|
|
33
|
-
export type TransformerCallback<TInput extends TransformerPrimitive, TOutput> = (input: TInput, index: number) => TOutput;
|
|
34
16
|
/**
|
|
35
17
|
* Transformer output, based on transformer input:
|
|
36
18
|
*
|
|
37
19
|
* - If type TTransformerInput is primitive, result is type TOutput.
|
|
38
|
-
* - If type TTransformerInput is Iterable, result is type Iterable
|
|
20
|
+
* - If type TTransformerInput is Iterable, result is type Iterable\<TOutput\>.
|
|
39
21
|
*
|
|
40
22
|
* @template TTransformerInput
|
|
41
23
|
* Transformer input type.
|
|
@@ -44,19 +26,6 @@ export type TransformerCallback<TInput extends TransformerPrimitive, TOutput> =
|
|
|
44
26
|
* Output base type.
|
|
45
27
|
*/
|
|
46
28
|
export type TransformerOutput<TTransformerInput extends TransformerInput<TransformerPrimitive>, TOutput> = TTransformerInput extends (TTransformerInput extends TransformerInput<infer TInput> ? TInput : never) ? TOutput : Iterable<TOutput>;
|
|
47
|
-
/**
|
|
48
|
-
* Transform an input iterable to an output iterable that applies a transformer callback to each value in the input.
|
|
49
|
-
*
|
|
50
|
-
* @param values
|
|
51
|
-
* Input values iterable.
|
|
52
|
-
*
|
|
53
|
-
* @param transformerCallback
|
|
54
|
-
* Callback to transform input value to output value.
|
|
55
|
-
*
|
|
56
|
-
* @returns
|
|
57
|
-
* Output values iterable.
|
|
58
|
-
*/
|
|
59
|
-
export declare function transformIterable<TInput extends TransformerPrimitive, TOutput>(values: Iterable<TInput>, transformerCallback: TransformerCallback<TInput, TOutput>): Iterable<TOutput>;
|
|
60
29
|
/**
|
|
61
30
|
* Transformer that transforms values in a numeric domain to values in a range equal to the domain or to another range
|
|
62
31
|
* defined by a callback function. In other words, the domain determines valid input values and, without a callback, the
|
|
@@ -186,7 +155,7 @@ export declare abstract class Transformer {
|
|
|
186
155
|
* @returns
|
|
187
156
|
* Transformed value(s).
|
|
188
157
|
*/
|
|
189
|
-
forward<TTransformerInput extends TransformerInput<number | bigint>, TOutput>(valueOrValues: TTransformerInput, transformerCallback:
|
|
158
|
+
forward<TTransformerInput extends TransformerInput<number | bigint>, TOutput>(valueOrValues: TTransformerInput, transformerCallback: IndexedCallback<bigint, TOutput>): TransformerOutput<TTransformerInput, TOutput>;
|
|
190
159
|
/**
|
|
191
160
|
* Do the work of transforming a value in reverse.
|
|
192
161
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"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"}
|
package/dist/transformer.js
CHANGED
|
@@ -1,33 +1,6 @@
|
|
|
1
|
+
import { mapIterable } from "./iterable-utility.js";
|
|
1
2
|
import { i18nextUtility } from "./locale/i18n.js";
|
|
2
3
|
import { Sequence } from "./sequence.js";
|
|
3
|
-
/**
|
|
4
|
-
* Transform an input iterable to an output iterable that applies a transformer callback to each value in the input.
|
|
5
|
-
*
|
|
6
|
-
* @param values
|
|
7
|
-
* Input values iterable.
|
|
8
|
-
*
|
|
9
|
-
* @param transformerCallback
|
|
10
|
-
* Callback to transform input value to output value.
|
|
11
|
-
*
|
|
12
|
-
* @returns
|
|
13
|
-
* Output values iterable.
|
|
14
|
-
*/
|
|
15
|
-
export function transformIterable(values, transformerCallback) {
|
|
16
|
-
return {
|
|
17
|
-
/**
|
|
18
|
-
* Iterable implementation.
|
|
19
|
-
*
|
|
20
|
-
* @yields
|
|
21
|
-
* Next output value.
|
|
22
|
-
*/
|
|
23
|
-
*[Symbol.iterator]() {
|
|
24
|
-
let index = 0;
|
|
25
|
-
for (const value of values) {
|
|
26
|
-
yield transformerCallback(value, index++);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
4
|
/**
|
|
32
5
|
* Transformer that transforms values in a numeric domain to values in a range equal to the domain or to another range
|
|
33
6
|
* defined by a callback function. In other words, the domain determines valid input values and, without a callback, the
|
|
@@ -161,7 +134,7 @@ export class Transformer {
|
|
|
161
134
|
// TODO Refactor type when https://github.com/microsoft/TypeScript/pull/56941 released.
|
|
162
135
|
let result;
|
|
163
136
|
if (typeof valueOrValues !== "object") {
|
|
164
|
-
result = transformerCallback === undefined ? this.validateDoForward(valueOrValues) : this.validateDoForwardCallback(transformerCallback, valueOrValues
|
|
137
|
+
result = transformerCallback === undefined ? this.validateDoForward(valueOrValues) : this.validateDoForwardCallback(transformerCallback, valueOrValues);
|
|
165
138
|
}
|
|
166
139
|
else if (valueOrValues instanceof Sequence) {
|
|
167
140
|
if (valueOrValues.minimumValue < 0n) {
|
|
@@ -175,10 +148,10 @@ export class Transformer {
|
|
|
175
148
|
domain: this.domain
|
|
176
149
|
}));
|
|
177
150
|
}
|
|
178
|
-
result = transformerCallback === undefined ?
|
|
151
|
+
result = transformerCallback === undefined ? mapIterable(valueOrValues, value => this.doForward(value)) : mapIterable(valueOrValues, (value, index) => transformerCallback(this.doForward(value), index));
|
|
179
152
|
}
|
|
180
153
|
else {
|
|
181
|
-
result = transformerCallback === undefined ?
|
|
154
|
+
result = transformerCallback === undefined ? mapIterable(valueOrValues, value => this.validateDoForward(value)) : mapIterable(valueOrValues, (value, index) => this.validateDoForwardCallback(transformerCallback, value, index));
|
|
182
155
|
}
|
|
183
156
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Type determination is handled above.
|
|
184
157
|
return result;
|
package/dist/transformer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.js","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"transformer.js","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aidc-toolkit/utility",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.18-beta",
|
|
4
4
|
"description": "Foundational utilities for AIDC Toolkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"test": "vitest run"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@aidc-toolkit/dev": "^0.9.
|
|
31
|
-
"vitest": "^3.
|
|
30
|
+
"@aidc-toolkit/dev": "^0.9.18-beta",
|
|
31
|
+
"vitest": "^3.2.2"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@aidc-toolkit/core": "^0.9.
|
|
35
|
-
"i18next": "^
|
|
34
|
+
"@aidc-toolkit/core": "^0.9.18-beta",
|
|
35
|
+
"i18next": "^25.2.1"
|
|
36
36
|
}
|
|
37
37
|
}
|
package/src/character-set.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { IndexedCallback } from "./iterable-utility";
|
|
1
2
|
import { i18nextUtility } from "./locale/i18n.js";
|
|
2
3
|
import { RegExpValidator } from "./reg-exp.js";
|
|
3
4
|
import type { StringValidation, StringValidator } from "./string.js";
|
|
4
|
-
import { Transformer, type
|
|
5
|
+
import { Transformer, type TransformerInput, type TransformerOutput } from "./transformer.js";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Exclusion options for validating and creating strings based on character sets.
|
|
@@ -531,6 +532,9 @@ export class CharacterSetCreator extends CharacterSetValidator {
|
|
|
531
532
|
* Create string(s) by mapping value(s) to the equivalent characters in the character set across the length of the
|
|
532
533
|
* string.
|
|
533
534
|
*
|
|
535
|
+
* @template TTransformerInput
|
|
536
|
+
* Transformer input type.
|
|
537
|
+
*
|
|
534
538
|
* @param length
|
|
535
539
|
* Required string length.
|
|
536
540
|
*
|
|
@@ -550,7 +554,7 @@ export class CharacterSetCreator extends CharacterSetValidator {
|
|
|
550
554
|
* @returns
|
|
551
555
|
* String(s) created from the value(s).
|
|
552
556
|
*/
|
|
553
|
-
create<TTransformerInput extends TransformerInput<number | bigint>>(length: number, valueOrValues: TTransformerInput, exclusion: Exclusion = Exclusion.None, tweak?: number | bigint, creatorCallback?:
|
|
557
|
+
create<TTransformerInput extends TransformerInput<number | bigint>>(length: number, valueOrValues: TTransformerInput, exclusion: Exclusion = Exclusion.None, tweak?: number | bigint, creatorCallback?: IndexedCallback<string, string>): TransformerOutput<TTransformerInput, string> {
|
|
554
558
|
this.validateLength(length);
|
|
555
559
|
this.validateExclusion(exclusion);
|
|
556
560
|
|
|
@@ -661,6 +665,11 @@ export const NUMERIC_CREATOR = new CharacterSetCreator([
|
|
|
661
665
|
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
|
|
662
666
|
], Exclusion.FirstZero);
|
|
663
667
|
|
|
668
|
+
/**
|
|
669
|
+
* Numeric validator. Character set is 0-9. Supports {@link Exclusion.FirstZero}.
|
|
670
|
+
*/
|
|
671
|
+
export const NUMERIC_VALIDATOR = NUMERIC_CREATOR as CharacterSetValidator;
|
|
672
|
+
|
|
664
673
|
/**
|
|
665
674
|
* Hexadecimal creator. Character set is 0-9, A-F. Supports {@link Exclusion.FirstZero} and {@link
|
|
666
675
|
* Exclusion.AllNumeric}.
|
|
@@ -670,6 +679,12 @@ export const HEXADECIMAL_CREATOR = new CharacterSetCreator([
|
|
|
670
679
|
"A", "B", "C", "D", "E", "F"
|
|
671
680
|
], Exclusion.FirstZero, Exclusion.AllNumeric);
|
|
672
681
|
|
|
682
|
+
/**
|
|
683
|
+
* Hexadecimal validator. Character set is 0-9, A-F. Supports {@link Exclusion.FirstZero} and {@link
|
|
684
|
+
* Exclusion.AllNumeric}.
|
|
685
|
+
*/
|
|
686
|
+
export const HEXADECIMAL_VALIDATOR = HEXADECIMAL_CREATOR as CharacterSetValidator;
|
|
687
|
+
|
|
673
688
|
/**
|
|
674
689
|
* Alphabetic creator. Character set is A-Z.
|
|
675
690
|
*/
|
|
@@ -678,6 +693,11 @@ export const ALPHABETIC_CREATOR = new CharacterSetCreator([
|
|
|
678
693
|
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
|
|
679
694
|
]);
|
|
680
695
|
|
|
696
|
+
/**
|
|
697
|
+
* Alphabetic validator. Character set is A-Z.
|
|
698
|
+
*/
|
|
699
|
+
export const ALPHABETIC_VALIDATOR = ALPHABETIC_CREATOR as CharacterSetValidator;
|
|
700
|
+
|
|
681
701
|
/**
|
|
682
702
|
* Alphanumeric creator. Character set is 0-9, A-Z. Supports {@link Exclusion.FirstZero} and {@link
|
|
683
703
|
* Exclusion.AllNumeric}.
|
|
@@ -687,3 +707,9 @@ export const ALPHANUMERIC_CREATOR = new CharacterSetCreator([
|
|
|
687
707
|
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
|
|
688
708
|
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
|
|
689
709
|
], Exclusion.FirstZero, Exclusion.AllNumeric);
|
|
710
|
+
|
|
711
|
+
/**
|
|
712
|
+
* Alphanumeric validator. Character set is 0-9, A-Z. Supports {@link Exclusion.FirstZero} and {@link
|
|
713
|
+
* Exclusion.AllNumeric}.
|
|
714
|
+
*/
|
|
715
|
+
export const ALPHANUMERIC_VALIDATOR = ALPHANUMERIC_CREATOR as CharacterSetValidator;
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Indexed callback, used to map an input and optionally its index in an iterable to an output.
|
|
3
|
+
*
|
|
4
|
+
* @template TInput
|
|
5
|
+
* Input type.
|
|
6
|
+
*
|
|
7
|
+
* @template TOutput
|
|
8
|
+
* Output type.
|
|
9
|
+
*
|
|
10
|
+
* @param input
|
|
11
|
+
* Input value.
|
|
12
|
+
*
|
|
13
|
+
* @param index
|
|
14
|
+
* Index in iterable or undefined for single mapping).
|
|
15
|
+
*
|
|
16
|
+
* @returns
|
|
17
|
+
* Output value.
|
|
18
|
+
*/
|
|
19
|
+
export type IndexedCallback<TInput, TOutput> = (input: TInput, index?: number) => TOutput;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Map an input iterable to an output iterable that applies a transformer callback to each value in the input.
|
|
23
|
+
*
|
|
24
|
+
* @template TInput
|
|
25
|
+
* Input type.
|
|
26
|
+
*
|
|
27
|
+
* @template TOutput
|
|
28
|
+
* Output type.
|
|
29
|
+
*
|
|
30
|
+
* @param values
|
|
31
|
+
* Input values iterable.
|
|
32
|
+
*
|
|
33
|
+
* @param indexedCallback
|
|
34
|
+
* Callback to transform input value to output value.
|
|
35
|
+
*
|
|
36
|
+
* @returns
|
|
37
|
+
* Output values iterable.
|
|
38
|
+
*/
|
|
39
|
+
export function mapIterable<TInput, TOutput>(values: Iterable<TInput>, indexedCallback: IndexedCallback<TInput, TOutput>): Iterable<TOutput> {
|
|
40
|
+
return {
|
|
41
|
+
/**
|
|
42
|
+
* Iterable implementation.
|
|
43
|
+
*
|
|
44
|
+
* @yields
|
|
45
|
+
* Next output value.
|
|
46
|
+
*/
|
|
47
|
+
* [Symbol.iterator](): Generator<TOutput> {
|
|
48
|
+
let index = 0;
|
|
49
|
+
|
|
50
|
+
for (const value of values) {
|
|
51
|
+
yield indexedCallback(value, index++);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export const localeStrings = {
|
|
2
2
|
Transformer: {
|
|
3
|
-
domainMustBeGreaterThanZero: "Domain {{domain}} must be greater than 0",
|
|
4
|
-
tweakMustBeGreaterThanOrEqualToZero: "Tweak {{tweak}} must be greater than or equal to 0",
|
|
5
|
-
valueMustBeGreaterThanOrEqualToZero: "Value {{value}} must be greater than or equal to 0",
|
|
6
|
-
valueMustBeLessThan: "Value {{value}} must be less than {{domain}}",
|
|
7
|
-
minimumValueMustBeGreaterThanOrEqualToZero: "Minimum value {{minimumValue}} must be greater than or equal to 0",
|
|
8
|
-
maximumValueMustBeLessThan: "Maximum value {{maximumValue}} must be less than {{domain}}"
|
|
3
|
+
domainMustBeGreaterThanZero: "Domain {{domain, number}} must be greater than 0",
|
|
4
|
+
tweakMustBeGreaterThanOrEqualToZero: "Tweak {{tweak, number}} must be greater than or equal to 0",
|
|
5
|
+
valueMustBeGreaterThanOrEqualToZero: "Value {{value, number}} must be greater than or equal to 0",
|
|
6
|
+
valueMustBeLessThan: "Value {{value, number}} must be less than {{domain, number}}",
|
|
7
|
+
minimumValueMustBeGreaterThanOrEqualToZero: "Minimum value {{minimumValue, number}} must be greater than or equal to 0",
|
|
8
|
+
maximumValueMustBeLessThan: "Maximum value {{maximumValue, number}} must be less than {{domain, number}}"
|
|
9
9
|
},
|
|
10
10
|
RegExpValidator: {
|
|
11
11
|
stringDoesNotMatchPattern: "String {{s}} does not match pattern"
|
|
@@ -14,17 +14,16 @@ export const localeStrings = {
|
|
|
14
14
|
firstZeroFirstCharacter: "Character set must support zero as first character",
|
|
15
15
|
allNumericAllNumericCharacters: "Character set must support all numeric characters in sequence",
|
|
16
16
|
stringMustNotBeAllNumeric: "String must not be all numeric",
|
|
17
|
-
lengthMustBeGreaterThanOrEqualTo: "Length {{length}} must be greater than or equal to {{minimumLength}}",
|
|
18
|
-
lengthMustBeLessThanOrEqualTo: "Length {{length}} must be less than or equal to {{maximumLength}}",
|
|
19
|
-
lengthMustBeEqualTo: "Length {{length}} must be equal to {{exactLength}}",
|
|
20
|
-
lengthOfComponentMustBeGreaterThanOrEqualTo: "Length {{length}} of {{component}} must be greater than or equal to {{minimumLength}}",
|
|
21
|
-
lengthOfComponentMustBeLessThanOrEqualTo: "Length {{length}} of {{component}} must be less than or equal to {{maximumLength}}",
|
|
22
|
-
lengthOfComponentMustBeEqualTo: "Length {{length}} of {{component}} must be equal to {{exactLength}}",
|
|
23
|
-
invalidCharacterAtPosition: "Invalid character '{{c}}' at position {{position}}",
|
|
24
|
-
invalidCharacterAtPositionOfComponent: "Invalid character '{{c}}' at position {{position}} of {{component}}",
|
|
25
|
-
exclusionNotSupported: "Exclusion value of {{exclusion}} is not supported",
|
|
26
|
-
|
|
27
|
-
endSequenceValueMustBeLessThanOrEqualTo: "End sequence value (start sequence value + count - 1) must be less than {{domain}}"
|
|
17
|
+
lengthMustBeGreaterThanOrEqualTo: "Length {{length, number}} must be greater than or equal to {{minimumLength, number}}",
|
|
18
|
+
lengthMustBeLessThanOrEqualTo: "Length {{length, number}} must be less than or equal to {{maximumLength, number}}",
|
|
19
|
+
lengthMustBeEqualTo: "Length {{length, number}} must be equal to {{exactLength, number}}",
|
|
20
|
+
lengthOfComponentMustBeGreaterThanOrEqualTo: "Length {{length, number}} of {{component}} must be greater than or equal to {{minimumLength, number}}",
|
|
21
|
+
lengthOfComponentMustBeLessThanOrEqualTo: "Length {{length, number}} of {{component}} must be less than or equal to {{maximumLength, number}}",
|
|
22
|
+
lengthOfComponentMustBeEqualTo: "Length {{length, number}} of {{component}} must be equal to {{exactLength, number}}",
|
|
23
|
+
invalidCharacterAtPosition: "Invalid character '{{c}}' at position {{position, number}}",
|
|
24
|
+
invalidCharacterAtPositionOfComponent: "Invalid character '{{c}}' at position {{position, number}} of {{component}}",
|
|
25
|
+
exclusionNotSupported: "Exclusion value of {{exclusion, number}} is not supported",
|
|
26
|
+
endSequenceValueMustBeLessThanOrEqualTo: "End sequence value (start sequence value + count - 1) must be less than {{domain, number}}"
|
|
28
27
|
},
|
|
29
28
|
RecordValidator: {
|
|
30
29
|
typeNameKeyNotFound: "{{typeName}} \"{{key}}\" not found"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export const localeStrings = {
|
|
2
2
|
Transformer: {
|
|
3
|
-
domainMustBeGreaterThanZero: "Le domaine {{domain}} doit être supérieur à 0",
|
|
4
|
-
tweakMustBeGreaterThanOrEqualToZero: "Le réglage {{tweak}} doit être supérieur ou égal à 0",
|
|
5
|
-
valueMustBeGreaterThanOrEqualToZero: "La valeur {{value}} doit être supérieure ou égale à 0",
|
|
6
|
-
valueMustBeLessThan: "La valeur {{value}} doit être inférieure à {{domain}}",
|
|
7
|
-
minimumValueMustBeGreaterThanOrEqualToZero: "La valeur minimale {{minimumValue}} doit être supérieure ou égale à 0",
|
|
8
|
-
maximumValueMustBeLessThan: "La valeur maximale {{maximumValue}} doit être inférieure à {{domain}}"
|
|
3
|
+
domainMustBeGreaterThanZero: "Le domaine {{domain, number}} doit être supérieur à 0",
|
|
4
|
+
tweakMustBeGreaterThanOrEqualToZero: "Le réglage {{tweak, number}} doit être supérieur ou égal à 0",
|
|
5
|
+
valueMustBeGreaterThanOrEqualToZero: "La valeur {{value, number}} doit être supérieure ou égale à 0",
|
|
6
|
+
valueMustBeLessThan: "La valeur {{value, number}} doit être inférieure à {{domain, number}}",
|
|
7
|
+
minimumValueMustBeGreaterThanOrEqualToZero: "La valeur minimale {{minimumValue, number}} doit être supérieure ou égale à 0",
|
|
8
|
+
maximumValueMustBeLessThan: "La valeur maximale {{maximumValue, number}} doit être inférieure à {{domain, number}}"
|
|
9
9
|
},
|
|
10
10
|
RegExpValidator: {
|
|
11
11
|
stringDoesNotMatchPattern: "La chaîne {{s}} ne correspond pas au modèle"
|
|
@@ -14,17 +14,16 @@ export const localeStrings = {
|
|
|
14
14
|
firstZeroFirstCharacter: "Le jeu de caractères doit prendre en charge zéro comme premier caractère",
|
|
15
15
|
allNumericAllNumericCharacters: "Le jeu de caractères doit prendre en charge tous les caractères numériques en séquence",
|
|
16
16
|
stringMustNotBeAllNumeric: "La chaîne ne doit pas être entièrement numérique",
|
|
17
|
-
lengthMustBeGreaterThanOrEqualTo: "La longueur {{length}} doit être supérieure ou égale à {{minimumLength}}",
|
|
18
|
-
lengthMustBeLessThanOrEqualTo: "La longueur {{length}} doit être inférieure ou égale à {{maximumLength}}",
|
|
19
|
-
lengthMustBeEqualTo: "La longueur {{length}} doit être égale à {{exactLength}}",
|
|
20
|
-
lengthOfComponentMustBeGreaterThanOrEqualTo: "La longueur {{length}} de {{component}} doit être supérieure ou égale à {{minimumLength}}",
|
|
21
|
-
lengthOfComponentMustBeLessThanOrEqualTo: "La longueur {{length}} de {{component}} doit être inférieure ou égale à {{maximumLength}}",
|
|
22
|
-
lengthOfComponentMustBeEqualTo: "La longueur {{length}} de {{component}} doit être égale à {{exactLength}}",
|
|
23
|
-
invalidCharacterAtPosition: "Caractère non valide '{{c}}' à la position {{position}}",
|
|
24
|
-
invalidCharacterAtPositionOfComponent: "Caractère non valide '{{c}}' à la position {{position}} de {{component}}",
|
|
25
|
-
exclusionNotSupported: "La valeur d'exclusion de {{exclusion}} n'est pas prise en charge",
|
|
26
|
-
|
|
27
|
-
endSequenceValueMustBeLessThanOrEqualTo: "La valeur de la séquence de fin (valeur de la séquence de début + nombre - 1) doit être inférieure à {{domaine}}"
|
|
17
|
+
lengthMustBeGreaterThanOrEqualTo: "La longueur {{length, number}} doit être supérieure ou égale à {{minimumLength, number}}",
|
|
18
|
+
lengthMustBeLessThanOrEqualTo: "La longueur {{length, number}} doit être inférieure ou égale à {{maximumLength, number}}",
|
|
19
|
+
lengthMustBeEqualTo: "La longueur {{length, number}} doit être égale à {{exactLength, number}}",
|
|
20
|
+
lengthOfComponentMustBeGreaterThanOrEqualTo: "La longueur {{length, number}} de {{component}} doit être supérieure ou égale à {{minimumLength, number}}",
|
|
21
|
+
lengthOfComponentMustBeLessThanOrEqualTo: "La longueur {{length, number}} de {{component}} doit être inférieure ou égale à {{maximumLength, number}}",
|
|
22
|
+
lengthOfComponentMustBeEqualTo: "La longueur {{length, number}} de {{component}} doit être égale à {{exactLength, number}}",
|
|
23
|
+
invalidCharacterAtPosition: "Caractère non valide '{{c}}' à la position {{position, number}}",
|
|
24
|
+
invalidCharacterAtPositionOfComponent: "Caractère non valide '{{c}}' à la position {{position, number}} de {{component}}",
|
|
25
|
+
exclusionNotSupported: "La valeur d'exclusion de {{exclusion, number}} n'est pas prise en charge",
|
|
26
|
+
endSequenceValueMustBeLessThanOrEqualTo: "La valeur de la séquence de fin (valeur de la séquence de début + nombre - 1) doit être inférieure à {{domain, number}}"
|
|
28
27
|
},
|
|
29
28
|
RecordValidator: {
|
|
30
29
|
typeNameKeyNotFound: "{{typeName}} \"{{key}}\" introuvable"
|
package/src/record.ts
CHANGED
|
@@ -4,6 +4,9 @@ import type { StringValidator } from "./string.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Record validator. Validation is performed against a record with a string key type and throws an error if the key is
|
|
6
6
|
* not found.
|
|
7
|
+
*
|
|
8
|
+
* @template T
|
|
9
|
+
* Property type.
|
|
7
10
|
*/
|
|
8
11
|
export class RecordValidator<T> implements StringValidator {
|
|
9
12
|
/**
|
package/src/string.ts
CHANGED
package/src/transformer.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type IndexedCallback, mapIterable } from "./iterable-utility.js";
|
|
1
2
|
import { i18nextUtility } from "./locale/i18n.js";
|
|
2
3
|
import { Sequence } from "./sequence.js";
|
|
3
4
|
|
|
@@ -10,38 +11,18 @@ export type TransformerPrimitive = string | number | bigint | boolean;
|
|
|
10
11
|
* Transformer input type, one of:
|
|
11
12
|
*
|
|
12
13
|
* - TInput (primitive type)
|
|
13
|
-
* - Iterable
|
|
14
|
+
* - Iterable\<TInput\>
|
|
14
15
|
*
|
|
15
16
|
* @template TInput
|
|
16
17
|
* Transformer input primitive type.
|
|
17
18
|
*/
|
|
18
19
|
export type TransformerInput<TInput extends TransformerPrimitive> = TInput | Iterable<TInput>;
|
|
19
20
|
|
|
20
|
-
/**
|
|
21
|
-
* Transformer callback, used to convert transformed value to its final value.
|
|
22
|
-
*
|
|
23
|
-
* @template TInput
|
|
24
|
-
* Transformer input primitive type.
|
|
25
|
-
*
|
|
26
|
-
* @template TOutput
|
|
27
|
-
* Transformer output type.
|
|
28
|
-
*
|
|
29
|
-
* @param input
|
|
30
|
-
* Input value.
|
|
31
|
-
*
|
|
32
|
-
* @param index
|
|
33
|
-
* Index in sequence (0 for single transformation).
|
|
34
|
-
*
|
|
35
|
-
* @returns
|
|
36
|
-
* Output value.
|
|
37
|
-
*/
|
|
38
|
-
export type TransformerCallback<TInput extends TransformerPrimitive, TOutput> = (input: TInput, index: number) => TOutput;
|
|
39
|
-
|
|
40
21
|
/**
|
|
41
22
|
* Transformer output, based on transformer input:
|
|
42
23
|
*
|
|
43
24
|
* - If type TTransformerInput is primitive, result is type TOutput.
|
|
44
|
-
* - If type TTransformerInput is Iterable, result is type Iterable
|
|
25
|
+
* - If type TTransformerInput is Iterable, result is type Iterable\<TOutput\>.
|
|
45
26
|
*
|
|
46
27
|
* @template TTransformerInput
|
|
47
28
|
* Transformer input type.
|
|
@@ -49,38 +30,7 @@ export type TransformerCallback<TInput extends TransformerPrimitive, TOutput> =
|
|
|
49
30
|
* @template TOutput
|
|
50
31
|
* Output base type.
|
|
51
32
|
*/
|
|
52
|
-
export type TransformerOutput<TTransformerInput extends TransformerInput<TransformerPrimitive>, TOutput> =
|
|
53
|
-
TTransformerInput extends (TTransformerInput extends TransformerInput<infer TInput> ? TInput : never) ? TOutput : Iterable<TOutput>;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Transform an input iterable to an output iterable that applies a transformer callback to each value in the input.
|
|
57
|
-
*
|
|
58
|
-
* @param values
|
|
59
|
-
* Input values iterable.
|
|
60
|
-
*
|
|
61
|
-
* @param transformerCallback
|
|
62
|
-
* Callback to transform input value to output value.
|
|
63
|
-
*
|
|
64
|
-
* @returns
|
|
65
|
-
* Output values iterable.
|
|
66
|
-
*/
|
|
67
|
-
export function transformIterable<TInput extends TransformerPrimitive, TOutput>(values: Iterable<TInput>, transformerCallback: TransformerCallback<TInput, TOutput>): Iterable<TOutput> {
|
|
68
|
-
return {
|
|
69
|
-
/**
|
|
70
|
-
* Iterable implementation.
|
|
71
|
-
*
|
|
72
|
-
* @yields
|
|
73
|
-
* Next output value.
|
|
74
|
-
*/
|
|
75
|
-
* [Symbol.iterator](): Generator<TOutput> {
|
|
76
|
-
let index = 0;
|
|
77
|
-
|
|
78
|
-
for (const value of values) {
|
|
79
|
-
yield transformerCallback(value, index++);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
}
|
|
33
|
+
export type TransformerOutput<TTransformerInput extends TransformerInput<TransformerPrimitive>, TOutput> = TTransformerInput extends (TTransformerInput extends TransformerInput<infer TInput> ? TInput : never) ? TOutput : Iterable<TOutput>;
|
|
84
34
|
|
|
85
35
|
/**
|
|
86
36
|
* Transformer that transforms values in a numeric domain to values in a range equal to the domain or to another range
|
|
@@ -234,7 +184,7 @@ export abstract class Transformer {
|
|
|
234
184
|
* @returns
|
|
235
185
|
* Transformed value.
|
|
236
186
|
*/
|
|
237
|
-
private validateDoForwardCallback<TOutput>(transformerCallback:
|
|
187
|
+
private validateDoForwardCallback<TOutput>(transformerCallback: IndexedCallback<bigint, TOutput>, value: number | bigint, index?: number): TOutput {
|
|
238
188
|
return transformerCallback(this.validateDoForward(value), index);
|
|
239
189
|
};
|
|
240
190
|
|
|
@@ -272,15 +222,15 @@ export abstract class Transformer {
|
|
|
272
222
|
* @returns
|
|
273
223
|
* Transformed value(s).
|
|
274
224
|
*/
|
|
275
|
-
forward<TTransformerInput extends TransformerInput<number | bigint>, TOutput>(valueOrValues: TTransformerInput, transformerCallback:
|
|
225
|
+
forward<TTransformerInput extends TransformerInput<number | bigint>, TOutput>(valueOrValues: TTransformerInput, transformerCallback: IndexedCallback<bigint, TOutput>): TransformerOutput<TTransformerInput, TOutput>;
|
|
276
226
|
|
|
277
227
|
// eslint-disable-next-line jsdoc/require-jsdoc -- Implementation of overloaded signatures.
|
|
278
|
-
forward<TTransformerInput extends TransformerInput<number | bigint>, TOutput>(valueOrValues: TTransformerInput, transformerCallback?:
|
|
228
|
+
forward<TTransformerInput extends TransformerInput<number | bigint>, TOutput>(valueOrValues: TTransformerInput, transformerCallback?: IndexedCallback<bigint, TOutput>): TransformerOutput<TTransformerInput, TOutput> {
|
|
279
229
|
// TODO Refactor type when https://github.com/microsoft/TypeScript/pull/56941 released.
|
|
280
230
|
let result: bigint | TOutput | Iterable<bigint> | Iterable<TOutput>;
|
|
281
231
|
|
|
282
232
|
if (typeof valueOrValues !== "object") {
|
|
283
|
-
result = transformerCallback === undefined ? this.validateDoForward(valueOrValues) : this.validateDoForwardCallback(transformerCallback, valueOrValues
|
|
233
|
+
result = transformerCallback === undefined ? this.validateDoForward(valueOrValues) : this.validateDoForwardCallback(transformerCallback, valueOrValues);
|
|
284
234
|
} else if (valueOrValues instanceof Sequence) {
|
|
285
235
|
if (valueOrValues.minimumValue < 0n) {
|
|
286
236
|
throw new RangeError(i18nextUtility.t("Transformer.minimumValueMustBeGreaterThanOrEqualToZero", {
|
|
@@ -295,9 +245,9 @@ export abstract class Transformer {
|
|
|
295
245
|
}));
|
|
296
246
|
}
|
|
297
247
|
|
|
298
|
-
result = transformerCallback === undefined ?
|
|
248
|
+
result = transformerCallback === undefined ? mapIterable(valueOrValues, value => this.doForward(value)) : mapIterable(valueOrValues, (value, index) => transformerCallback(this.doForward(value), index));
|
|
299
249
|
} else {
|
|
300
|
-
result = transformerCallback === undefined ?
|
|
250
|
+
result = transformerCallback === undefined ? mapIterable(valueOrValues, value => this.validateDoForward(value)) : mapIterable(valueOrValues, (value, index) => this.validateDoForwardCallback(transformerCallback, value, index));
|
|
301
251
|
}
|
|
302
252
|
|
|
303
253
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Type determination is handled above.
|