@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.
Files changed (41) hide show
  1. package/dist/character-set.d.ts +24 -2
  2. package/dist/character-set.d.ts.map +1 -1
  3. package/dist/character-set.js +21 -0
  4. package/dist/character-set.js.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/iterable-utility.d.ts +39 -0
  10. package/dist/iterable-utility.d.ts.map +1 -0
  11. package/dist/iterable-utility.js +35 -0
  12. package/dist/iterable-utility.js.map +1 -0
  13. package/dist/locale/en/locale-strings.d.ts +16 -17
  14. package/dist/locale/en/locale-strings.d.ts.map +1 -1
  15. package/dist/locale/en/locale-strings.js +16 -17
  16. package/dist/locale/en/locale-strings.js.map +1 -1
  17. package/dist/locale/fr/locale-strings.d.ts +16 -17
  18. package/dist/locale/fr/locale-strings.d.ts.map +1 -1
  19. package/dist/locale/fr/locale-strings.js +16 -17
  20. package/dist/locale/fr/locale-strings.js.map +1 -1
  21. package/dist/record.d.ts +3 -0
  22. package/dist/record.d.ts.map +1 -1
  23. package/dist/record.js +3 -0
  24. package/dist/record.js.map +1 -1
  25. package/dist/string.d.ts +3 -0
  26. package/dist/string.d.ts.map +1 -1
  27. package/dist/transformer.d.ts +4 -35
  28. package/dist/transformer.d.ts.map +1 -1
  29. package/dist/transformer.js +4 -31
  30. package/dist/transformer.js.map +1 -1
  31. package/package.json +5 -5
  32. package/src/character-set.ts +28 -2
  33. package/src/index.ts +1 -0
  34. package/src/iterable-utility.ts +55 -0
  35. package/src/locale/en/locale-strings.ts +16 -17
  36. package/src/locale/fr/locale-strings.ts +16 -17
  37. package/src/record.ts +3 -0
  38. package/src/string.ts +3 -0
  39. package/src/transformer.ts +10 -60
  40. package/test/character-set.test.ts +28 -12
  41. package/test/transformer.test.ts +9 -3
@@ -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<TInput>
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<TOutput>.
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: TransformerCallback<bigint, TOutput>): TransformerOutput<TTransformerInput, TOutput>;
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":"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"}
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"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"}
@@ -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, 0);
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 ? transformIterable(valueOrValues, value => this.doForward(value)) : transformIterable(valueOrValues, (value, index) => transformerCallback(this.doForward(value), index));
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 ? transformIterable(valueOrValues, value => this.validateDoForward(value)) : transformIterable(valueOrValues, (value, index) => this.validateDoForwardCallback(transformerCallback, value, index));
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;
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"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"}
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.17-beta",
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.17-beta",
31
- "vitest": "^3.0.7"
30
+ "@aidc-toolkit/dev": "^0.9.18-beta",
31
+ "vitest": "^3.2.2"
32
32
  },
33
33
  "dependencies": {
34
- "@aidc-toolkit/core": "^0.9.17-beta",
35
- "i18next": "^24.2.2"
34
+ "@aidc-toolkit/core": "^0.9.18-beta",
35
+ "i18next": "^25.2.1"
36
36
  }
37
37
  }
@@ -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 TransformerCallback, type TransformerInput, type TransformerOutput } from "./transformer.js";
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?: TransformerCallback<string, string>): TransformerOutput<TTransformerInput, string> {
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
@@ -16,6 +16,7 @@
16
16
  */
17
17
  export * from "./locale/i18n.js";
18
18
  export * from "./sequence.js";
19
+ export * from "./iterable-utility.js";
19
20
  export * from "./transformer.js";
20
21
  export type * from "./string.js";
21
22
  export * from "./reg-exp.js";
@@ -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
- invalidTweakWithAllNumericExclusion: "Tweak must not be used with all-numeric exclusion",
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
- invalidTweakWithAllNumericExclusion: "Le réglage ne doit pas être utilisé avec une exclusion entièrement numérique",
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
@@ -7,6 +7,9 @@ export interface StringValidation {
7
7
 
8
8
  /**
9
9
  * String validator interface.
10
+ *
11
+ * @template V
12
+ * String validation type.
10
13
  */
11
14
  export interface StringValidator<V extends StringValidation = StringValidation> {
12
15
  /**
@@ -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<TInput>
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<TOutput>.
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: TransformerCallback<bigint, TOutput>, value: number | bigint, index: number): TOutput {
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: TransformerCallback<bigint, TOutput>): TransformerOutput<TTransformerInput, TOutput>;
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?: TransformerCallback<bigint, TOutput>): TransformerOutput<TTransformerInput, TOutput> {
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, 0);
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 ? transformIterable(valueOrValues, value => this.doForward(value)) : transformIterable(valueOrValues, (value, index) => transformerCallback(this.doForward(value), index));
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 ? transformIterable(valueOrValues, value => this.validateDoForward(value)) : transformIterable(valueOrValues, (value, index) => this.validateDoForwardCallback(transformerCallback, value, index));
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.