|
5 | 5 | * To re-generate this file run `make test` |
6 | 6 | * |
7 | 7 | * |
8 | | - * @generated SignedSource<<87191fcc75856e69e35c2652ba5f9836>> |
| 8 | + * @generated SignedSource<<7f20c3eead69c411ea999a821ff7167a>> |
9 | 9 | */ |
10 | 10 | namespace Slack\Hack\JsonSchema\Tests\Generated; |
11 | 11 | use namespace Slack\Hack\JsonSchema; |
|
25 | 25 | ?'unique_numbers_coerce' => keyset<int>, |
26 | 26 | ?'unsupported_unique_items' => vec<TArraySchemaValidatorPropertiesUnsupportedUniqueItemsItems>, |
27 | 27 | ?'hack_enum_items' => vec<\Slack\Hack\JsonSchema\Tests\TestStringEnum>, |
| 28 | + ?'unique_hack_enum_items' => keyset<\Slack\Hack\JsonSchema\Tests\TestStringEnum>, |
28 | 29 | ... |
29 | 30 | ); |
30 | 31 |
|
@@ -392,6 +393,63 @@ public static function check( |
392 | 393 | } |
393 | 394 | } |
394 | 395 |
|
| 396 | +final class ArraySchemaValidatorPropertiesUniqueHackEnumItemsItems { |
| 397 | + |
| 398 | + private static bool $coerce = false; |
| 399 | + |
| 400 | + public static function check( |
| 401 | + mixed $input, |
| 402 | + string $pointer, |
| 403 | + ): \Slack\Hack\JsonSchema\Tests\TestStringEnum { |
| 404 | + $typed = Constraints\StringConstraint::check($input, $pointer, self::$coerce); |
| 405 | + |
| 406 | + $typed = Constraints\HackEnumConstraint::check( |
| 407 | + $typed, |
| 408 | + \Slack\Hack\JsonSchema\Tests\TestStringEnum::class, |
| 409 | + $pointer, |
| 410 | + ); |
| 411 | + return $typed; |
| 412 | + } |
| 413 | +} |
| 414 | + |
| 415 | +final class ArraySchemaValidatorPropertiesUniqueHackEnumItems { |
| 416 | + |
| 417 | + private static bool $coerce = true; |
| 418 | + |
| 419 | + public static function check( |
| 420 | + mixed $input, |
| 421 | + string $pointer, |
| 422 | + ): keyset<\Slack\Hack\JsonSchema\Tests\TestStringEnum> { |
| 423 | + $typed = Constraints\ArrayConstraint::check($input, $pointer, self::$coerce); |
| 424 | + |
| 425 | + $output = vec[]; |
| 426 | + $errors = vec[]; |
| 427 | + |
| 428 | + foreach ($typed as $index => $value) { |
| 429 | + try { |
| 430 | + $output[] = ArraySchemaValidatorPropertiesUniqueHackEnumItemsItems::check( |
| 431 | + $value, |
| 432 | + JsonSchema\get_pointer($pointer, (string) $index), |
| 433 | + ); |
| 434 | + } catch (JsonSchema\InvalidFieldException $e) { |
| 435 | + $errors = \HH\Lib\Vec\concat($errors, $e->errors); |
| 436 | + } |
| 437 | + } |
| 438 | + |
| 439 | + if (\HH\Lib\C\count($errors)) { |
| 440 | + throw new JsonSchema\InvalidFieldException($pointer, $errors); |
| 441 | + } |
| 442 | + |
| 443 | + $output = Constraints\ArrayUniqueItemsConstraint::check( |
| 444 | + $output, |
| 445 | + $pointer, |
| 446 | + self::$coerce, |
| 447 | + ); |
| 448 | + |
| 449 | + return $output; |
| 450 | + } |
| 451 | +} |
| 452 | + |
395 | 453 | final class ArraySchemaValidator |
396 | 454 | extends JsonSchema\BaseValidator<TArraySchemaValidator> { |
397 | 455 |
|
@@ -500,6 +558,17 @@ public static function check( |
500 | 558 | } |
501 | 559 | } |
502 | 560 |
|
| 561 | + if (\HH\Lib\C\contains_key($typed, 'unique_hack_enum_items')) { |
| 562 | + try { |
| 563 | + $output['unique_hack_enum_items'] = ArraySchemaValidatorPropertiesUniqueHackEnumItems::check( |
| 564 | + $typed['unique_hack_enum_items'], |
| 565 | + JsonSchema\get_pointer($pointer, 'unique_hack_enum_items'), |
| 566 | + ); |
| 567 | + } catch (JsonSchema\InvalidFieldException $e) { |
| 568 | + $errors = \HH\Lib\Vec\concat($errors, $e->errors); |
| 569 | + } |
| 570 | + } |
| 571 | + |
503 | 572 | if (\HH\Lib\C\count($errors)) { |
504 | 573 | throw new JsonSchema\InvalidFieldException($pointer, $errors); |
505 | 574 | } |
|
0 commit comments