From 9a0ccc32487679fb2e1d82e580f790a6d01d2dfa Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 30 Mar 2024 20:16:59 +0000 Subject: [PATCH 1/9] chore: renaming --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8260181..8eb7f32 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ > This library is a **work in progress**. Please, do not use it in production. -Type Guard module is part of the [PHP's Standard Library](https://github.com/std-library), and allows you to **narrow down the type** of a variable to a more specific type. Using the `type` function, you can perform specific checks to determine the type of an object and then use that object in a way that is **type-safe** according to the [PHPStan](https://phpstan.org/) and [Psalm](https://psalm.dev/) static analyzers. +Type Guard module is part of the [Another Library](https://github.com/another-library), and allows you to **narrow down the type** of a variable to a more specific type. Using the `type` function, you can perform specific checks to determine the type of an object and then use that object in a way that is **type-safe** according to the [PHPStan](https://phpstan.org/) and [Psalm](https://psalm.dev/) static analyzers. Here is an example, where we use the `type` function to narrow down the type of a variable that previously had a `mixed` type: @@ -142,4 +142,4 @@ $variable = type($variable)->asArray(); ------ -**Type Guard** is part of the [PHP's Standard Library](https://github.com/std-library) project. It was created by **[Nuno Maduro](https://twitter.com/enunomaduro)** and open-sourced under the **[MIT license](https://opensource.org/licenses/MIT)**. +**Type Guard** is part of the [Another Library](https://github.com/another-library) project. It was created by **[Nuno Maduro](https://twitter.com/enunomaduro)** and open-sourced under the **[MIT license](https://opensource.org/licenses/MIT)**. From f4d71d8e6cc57b9b5d41ffb6a522d5c8384275db Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 30 Mar 2024 21:12:20 +0000 Subject: [PATCH 2/9] docs: updates logo --- docs/example.jpg | Bin 108500 -> 44482 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/example.jpg b/docs/example.jpg index 8c77c3ebe45d1747cac81bf7a551c4e91c7acbc0..2032a11320079016ad6e8ad9cf0a8dcdb5d4a302 100644 GIT binary patch literal 44482 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 literal 108500 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�rv=VT>Lhxe~Us?sc zi;08PqptD;`_$PD=xei?h^|s&F|9rjvSCkL-H*Lmmd-tdI4*M@VJ@a32 zJ^cQrf8K`urp@@RHGi%(ziBgmYsi15AuV$#?CkHo_)quZzq1zo#zX$jv;SAd{u>YZ zD^mJ9-}4&}`8&`4Um5#vJmjxP>F<2cZ#?AhJo|rT?7#7lzapi-^F6=ukiYZn|CO=- zrV;%sQu;gJ^BWKOJJ0@K8T)TM Date: Sat, 30 Mar 2024 23:44:03 +0000 Subject: [PATCH 3/9] Update composer.json --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 88bbb3a..2f4fd4a 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { - "name": "std-library/type-guard", - "description": "Type Guard module is part of the PHP's Standard Library, and allows you to narrow down the type of an variable to a more specific type.", + "name": "another-library/type-guard", + "description": "Type Guard module is part of the Another Library, and allows you to narrow down the type of an variable to a more specific type.", "keywords": ["std-library", "type-guard", "assert", "narrow", "type", "php"], "license": "MIT", "authors": [ From 61f81eccd25f7e3e2be9c5f9ebae5debe30beb0e Mon Sep 17 00:00:00 2001 From: faissaloux Date: Sun, 31 Mar 2024 01:20:50 +0000 Subject: [PATCH 4/9] update namespaces --- composer.json | 2 +- src/Functions.php | 2 +- src/Not.php | 2 +- src/Type.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 2f4fd4a..b02064f 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ }, "autoload": { "psr-4": { - "StdLibrary\\TypeGuard\\": "src/" + "AnotherLibrary\\TypeGuard\\": "src/" } }, "autoload-dev": { diff --git a/src/Functions.php b/src/Functions.php index cf7b423..8ba8954 100644 --- a/src/Functions.php +++ b/src/Functions.php @@ -2,7 +2,7 @@ declare(strict_types=1); -use StdLibrary\TypeGuard\Type; +use AnotherLibrary\TypeGuard\Type; if (! function_exists('type')) { /** diff --git a/src/Not.php b/src/Not.php index d0793cb..05e9aed 100644 --- a/src/Not.php +++ b/src/Not.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace StdLibrary\TypeGuard; +namespace AnotherLibrary\TypeGuard; use TypeError; diff --git a/src/Type.php b/src/Type.php index 0748f3f..78086b6 100644 --- a/src/Type.php +++ b/src/Type.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace StdLibrary\TypeGuard; +namespace AnotherLibrary\TypeGuard; use TypeError; From 8745bd5c8857b951d67da665002dcb0996595ed9 Mon Sep 17 00:00:00 2001 From: faissaloux Date: Sun, 31 Mar 2024 01:21:53 +0000 Subject: [PATCH 5/9] update documentation and keywords --- README.md | 12 ++++++------ composer.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 8eb7f32..e7c1309 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@

- Skeleton Php + Skeleton Php

- GitHub Workflow Status (master) - Total Downloads - Latest Version - License + GitHub Workflow Status (master) + Total Downloads + Latest Version + License

@@ -53,7 +53,7 @@ $users = type($users)->as(Collection::class); You may use [Composer](https://getcomposer.org) to install Type Guard into your PHP project: ```bash -composer require std-library/type-guard +composer require another-library/type-guard ``` ## Usage diff --git a/composer.json b/composer.json index b02064f..297d471 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "another-library/type-guard", "description": "Type Guard module is part of the Another Library, and allows you to narrow down the type of an variable to a more specific type.", - "keywords": ["std-library", "type-guard", "assert", "narrow", "type", "php"], + "keywords": ["another-library", "type-guard", "assert", "narrow", "type", "php"], "license": "MIT", "authors": [ { From a8a68367cd9ec79f84700d7ee2d0d39b38a40358 Mon Sep 17 00:00:00 2001 From: james-astalty <134993638+james-astalty@users.noreply.github.com> Date: Sun, 31 Mar 2024 16:35:51 +1000 Subject: [PATCH 6/9] Update README.md Fix typo/grammar --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8eb7f32..7d4ca69 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ $users = getUsers(); $users = type($users)->not()->null(); ``` -And one more example, where we narrow down the type of a variable to a Collection without loosing the type information: +And one more example, where we narrow down the type of a variable to a Collection without losing the type information: ```php /** @var Collection|null $users */ From dd7e670858af9e09a6acd780588c55c818bddd66 Mon Sep 17 00:00:00 2001 From: lmottasin Date: Tue, 2 Apr 2024 12:32:54 +0600 Subject: [PATCH 7/9] feat: add iterable type --- src/Type.php | 16 ++++++++++++++++ tests/AsIterableTest.php | 17 +++++++++++++++++ types/AsIterableTest.php | 12 ++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 tests/AsIterableTest.php create mode 100644 types/AsIterableTest.php diff --git a/src/Type.php b/src/Type.php index 78086b6..de7c5d1 100644 --- a/src/Type.php +++ b/src/Type.php @@ -145,6 +145,22 @@ public function asCallable(): callable return $this->variable; } + /** + * Asserts and narrow down the type to an iterable. + * + * @phpstan-assert-if-true iterable $this->variable + * + * @return (TVariable is iterable ? TVariable : never) + */ + public function asIterable(): iterable + { + if (! is_iterable($this->variable)) { + throw new TypeError('Variable is not a [iterable].'); + } + + return $this->variable; + } + /** * Creates a not type instance. * diff --git a/tests/AsIterableTest.php b/tests/AsIterableTest.php new file mode 100644 index 0000000..25907b4 --- /dev/null +++ b/tests/AsIterableTest.php @@ -0,0 +1,17 @@ +asIterable(); + + expect($value)->toBeIterable(); +}); + +test('not iterable type', function (): void { + $variable = 1; + + type($variable)->asIterable(); +})->throws(TypeError::class, 'Variable is not a [iterable].'); diff --git a/types/AsIterableTest.php b/types/AsIterableTest.php new file mode 100644 index 0000000..e4bd517 --- /dev/null +++ b/types/AsIterableTest.php @@ -0,0 +1,12 @@ +|string $variable */ +$variable = random_int(0, 1) !== 0 ? 'string' : [1, 2]; +assertType('array', type($variable)->asIterable()); + +$variable = random_int(0, 1) !== 0 ? 'string' : []; +assertType('array{}', type($variable)->asIterable()); From 233de6110ef637b7f1bacf0ce8b29227f5661dee Mon Sep 17 00:00:00 2001 From: lmottasin Date: Tue, 2 Apr 2024 12:38:32 +0600 Subject: [PATCH 8/9] add iterable in readme --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index c32c036..8fecaa4 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ composer require another-library/type-guard - [`asCallable()`](#ascallable) - [`not()->null()`](#notnull) - [`asArray()`](#asarray) +- [`asIterable()`](#asiterable) ### `as` @@ -139,6 +140,14 @@ Asserts and narrows down the type of the given variable to an array. ```php $variable = type($variable)->asArray(); ``` +### `asIterable()` + +Asserts and narrows down the type of the given variable to an iterable. + +```php +$variable = type($variable)->asIterable(); +``` + ------ From ca40dc402e9ee4e3eafacead7b1cf62af3215225 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Tue, 2 Apr 2024 14:36:47 +0100 Subject: [PATCH 9/9] fix: autoload --- composer.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.json b/composer.json index 88bbb3a..c65bdf0 100644 --- a/composer.json +++ b/composer.json @@ -23,16 +23,16 @@ "autoload": { "psr-4": { "StdLibrary\\TypeGuard\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" }, "files": [ "src/Functions.php" ] }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, "minimum-stability": "dev", "prefer-stable": true, "config": {