Skip to content

Commit

Permalink
refactor(visibilities): reduce visibilities wherever possible
Browse files Browse the repository at this point in the history
  • Loading branch information
Brainshaker95 committed Oct 18, 2023
1 parent a033736 commit 2a5a3c1
Show file tree
Hide file tree
Showing 9 changed files with 122 additions and 116 deletions.
4 changes: 2 additions & 2 deletions src/Command/DumpCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ abstract class DumpCommand extends Command
use HasConfiguration;
use HasDumper;

final public const INDENT_STYLE_KEY = C::INDENT_KEY . '-' . C::INDENT_STYLE_KEY;
final public const INDENT_COUNT_KEY = C::INDENT_KEY . '-' . C::INDENT_COUNT_KEY;
final protected const INDENT_STYLE_KEY = C::INDENT_KEY . '-' . C::INDENT_STYLE_KEY;
final protected const INDENT_COUNT_KEY = C::INDENT_KEY . '-' . C::INDENT_COUNT_KEY;

protected InputInterface $input;

Expand Down
78 changes: 39 additions & 39 deletions src/Interface/Config.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,50 +30,50 @@
*/
interface Config
{
public const OUTPUT_DIR_KEY = 'output_dir';
public const OUTPUT_DIR_DEFAULT = 'assets/ts/types/php-to-ts';
public const OUTPUT_DIR_DESC = 'Directory in which to dump TypeScript interfaces';

public const INPUT_DIR_KEY = 'input_dir';
public const INPUT_DIR_DEFAULT = 'src/Model';
public const INPUT_DIR_DESC = 'Directory in which to look for models to include';

public const FILE_TYPE_KEY = 'file_type';
public const FILE_TYPE_DEFAULT = FileType::TYPE_MODULE;
public const FILE_TYPE_DESC = 'File type to use for TypeScript interfaces';
public const FILE_TYPE_VALID_VALUES = [FileType::TYPE_DECLARATION, FileType::TYPE_MODULE];

public const TYPE_DEFINITION_TYPE_KEY = 'type_definition_type';
public const TYPE_DEFINITION_TYPE_DEFAULT = TypeDefinitionType::TYPE_INTERFACE;
public const TYPE_DEFINITION_TYPE_DESC = 'Type definition type to use for TypeScript interfaces';
public const TYPE_DEFINITION_TYPE_VALID_VALUES = [TypeDefinitionType::TYPE_INTERFACE, TypeDefinitionType::TYPE_TYPE_ALIAS];

public const INDENT_KEY = 'indent';
public const INDENT_DESC = 'Indentation used for TypeScript interfaces';
public const INDENT_STYLE_KEY = 'style';
public const INDENT_STYLE_DEFAULT = Indent::STYLE_SPACE;
public const INDENT_STYLE_DESC = 'Indent style used for TypeScript interfaces';
public const INDENT_STYLE_VALID_VALUES = [Indent::STYLE_SPACE, Indent::STYLE_TAB];
public const INDENT_COUNT_KEY = 'count';
public const INDENT_COUNT_DEFAULT = 2;
public const INDENT_COUNT_DESC = 'Number of indent style characters per indent';

public const QUOTES_KEY = 'quotes';
public const QUOTES_DESC = 'Quote style used for strings in TypeScript interfaces';
public const QUOTES_DEFAULT = Quotes::STYLE_SINGLE;
public const QUOTES_VALID_VALUES = [Quotes::STYLE_DOUBLE, Quotes::STYLE_SINGLE];

public const SORT_STRATEGIES_KEY = 'sort_strategies';
public const SORT_STRATEGIES_DEFAULT = [
final public const OUTPUT_DIR_KEY = 'output_dir';
final public const OUTPUT_DIR_DEFAULT = 'assets/ts/types/php-to-ts';
final public const OUTPUT_DIR_DESC = 'Directory in which to dump TypeScript interfaces';

final public const INPUT_DIR_KEY = 'input_dir';
final public const INPUT_DIR_DEFAULT = 'src/Model';
final public const INPUT_DIR_DESC = 'Directory in which to look for models to include';

final public const FILE_TYPE_KEY = 'file_type';
final public const FILE_TYPE_DEFAULT = FileType::TYPE_MODULE;
final public const FILE_TYPE_DESC = 'File type to use for TypeScript interfaces';
final public const FILE_TYPE_VALID_VALUES = [FileType::TYPE_DECLARATION, FileType::TYPE_MODULE];

final public const TYPE_DEFINITION_TYPE_KEY = 'type_definition_type';
final public const TYPE_DEFINITION_TYPE_DEFAULT = TypeDefinitionType::TYPE_INTERFACE;
final public const TYPE_DEFINITION_TYPE_DESC = 'Type definition type to use for TypeScript interfaces';
final public const TYPE_DEFINITION_TYPE_VALID_VALUES = [TypeDefinitionType::TYPE_INTERFACE, TypeDefinitionType::TYPE_TYPE_ALIAS];

final public const INDENT_KEY = 'indent';
final public const INDENT_DESC = 'Indentation used for TypeScript interfaces';
final public const INDENT_STYLE_KEY = 'style';
final public const INDENT_STYLE_DEFAULT = Indent::STYLE_SPACE;
final public const INDENT_STYLE_DESC = 'Indent style used for TypeScript interfaces';
final public const INDENT_STYLE_VALID_VALUES = [Indent::STYLE_SPACE, Indent::STYLE_TAB];
final public const INDENT_COUNT_KEY = 'count';
final public const INDENT_COUNT_DEFAULT = 2;
final public const INDENT_COUNT_DESC = 'Number of indent style characters per indent';

final public const QUOTES_KEY = 'quotes';
final public const QUOTES_DESC = 'Quote style used for strings in TypeScript interfaces';
final public const QUOTES_DEFAULT = Quotes::STYLE_SINGLE;
final public const QUOTES_VALID_VALUES = [Quotes::STYLE_DOUBLE, Quotes::STYLE_SINGLE];

final public const SORT_STRATEGIES_KEY = 'sort_strategies';
final public const SORT_STRATEGIES_DEFAULT = [
AlphabeticalAsc::class,
ConstructorFirst::class,
ReadonlyFirst::class,
];
public const SORT_STRATEGIES_DESC = 'Class names of sort strategies used for TypeScript properties';
final public const SORT_STRATEGIES_DESC = 'Class names of sort strategies used for TypeScript properties';

public const FILE_NAME_STRATEGY_KEY = 'file_name_strategy';
public const FILE_NAME_STRATEGY_DEFAULT = KebabCase::class;
public const FILE_NAME_STRATEGY_DESC = 'Class name of file name strategies used for TypeScript files';
final public const FILE_NAME_STRATEGY_KEY = 'file_name_strategy';
final public const FILE_NAME_STRATEGY_DEFAULT = KebabCase::class;
final public const FILE_NAME_STRATEGY_DESC = 'Class name of file name strategies used for TypeScript files';

public function getInputDir(): ?string;

Expand Down
4 changes: 3 additions & 1 deletion src/Model/Config/FileType.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@

namespace Brainshaker95\PhpToTsBundle\Model\Config;

abstract class FileType
final class FileType
{
public const TYPE_DECLARATION = 'declaration';
public const TYPE_MODULE = 'module';

private function __construct() {}
}
4 changes: 3 additions & 1 deletion src/Model/Config/TypeDefinitionType.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@

namespace Brainshaker95\PhpToTsBundle\Model\Config;

abstract class TypeDefinitionType
final class TypeDefinitionType
{
public const TYPE_INTERFACE = 'interface';
public const TYPE_TYPE_ALIAS = 'type';

private function __construct() {}
}
30 changes: 15 additions & 15 deletions src/Tool/Assert.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
/**
* @internal
*/
abstract class Assert
final class Assert
{
private function __construct() {}

Expand All @@ -32,7 +32,7 @@ private function __construct() {}
*
* @return non-empty-string
*/
final public static function nonEmptyStringNonNullable(mixed $value): string
public static function nonEmptyStringNonNullable(mixed $value): string
{
if (!is_string($value) || !$value) {
throw new AssertionFailedException(sprintf(
Expand All @@ -49,7 +49,7 @@ final public static function nonEmptyStringNonNullable(mixed $value): string
*
* @return ?non-empty-string
*/
final public static function nonEmptyStringNullable(mixed $value): ?string
public static function nonEmptyStringNullable(mixed $value): ?string
{
if ($value === null) {
return $value;
Expand All @@ -63,7 +63,7 @@ final public static function nonEmptyStringNullable(mixed $value): ?string
*
* @return int<0,max>
*/
final public static function nonNegativeIntegerNonNullable(mixed $value): int
public static function nonNegativeIntegerNonNullable(mixed $value): int
{
$intval = is_numeric($value) ? (int) $value : -1;

Expand All @@ -82,7 +82,7 @@ final public static function nonNegativeIntegerNonNullable(mixed $value): int
*
* @return ?int<0,max>
*/
final public static function nonNegativeIntegerNullable(mixed $value): ?int
public static function nonNegativeIntegerNullable(mixed $value): ?int
{
if ($value === null) {
return $value;
Expand All @@ -96,7 +96,7 @@ final public static function nonNegativeIntegerNullable(mixed $value): ?int
*
* @return non-empty-string[]
*/
final public static function nonEmptyStringArrayNonNullable(mixed $value): array
public static function nonEmptyStringArrayNonNullable(mixed $value): array
{
if (!is_array($value)
|| count(array_filter($value, static fn (mixed $val) => !is_string($val) || !$val))) {
Expand All @@ -114,7 +114,7 @@ final public static function nonEmptyStringArrayNonNullable(mixed $value): array
*
* @return ?non-empty-string[]
*/
final public static function nonEmptyStringArrayNullable(mixed $value): ?array
public static function nonEmptyStringArrayNullable(mixed $value): ?array
{
if ($value === null) {
return $value;
Expand All @@ -132,7 +132,7 @@ final public static function nonEmptyStringArrayNullable(mixed $value): ?array
*
* @return value-of<T>
*/
final public static function inStringArrayNonNullable(mixed $value, array $allowedStrings): string
public static function inStringArrayNonNullable(mixed $value, array $allowedStrings): string
{
if (!is_string($value) || !in_array($value, $allowedStrings, true)) {
throw new AssertionFailedException(sprintf(
Expand All @@ -154,7 +154,7 @@ final public static function inStringArrayNonNullable(mixed $value, array $allow
*
* @return ?value-of<T>
*/
final public static function inStringArrayNullable(mixed $value, array $allowedStrings): ?string
public static function inStringArrayNullable(mixed $value, array $allowedStrings): ?string
{
if ($value === null) {
return $value;
Expand All @@ -172,7 +172,7 @@ final public static function inStringArrayNullable(mixed $value, array $allowedS
*
* @return T
*/
final public static function instanceOf(object $value, string $class): object
public static function instanceOf(object $value, string $class): object
{
if (!$value instanceof $class) {
throw new AssertionFailedException(sprintf(
Expand All @@ -194,7 +194,7 @@ final public static function instanceOf(object $value, string $class): object
*
* @return class-string<T>
*/
final public static function interfaceClassStringNonNullable(mixed $value, string $class): string
public static function interfaceClassStringNonNullable(mixed $value, string $class): string
{
if (!is_string($value)
|| !is_a($value, $class, true)
Expand All @@ -218,7 +218,7 @@ final public static function interfaceClassStringNonNullable(mixed $value, strin
*
* @return ?class-string<T>
*/
final public static function interfaceClassStringNullable(mixed $value, string $class): ?string
public static function interfaceClassStringNullable(mixed $value, string $class): ?string
{
if ($value === null) {
return $value;
Expand All @@ -236,7 +236,7 @@ final public static function interfaceClassStringNullable(mixed $value, string $
*
* @return class-string<T>[]
*/
final public static function interfaceClassStringArrayNonNullable(mixed $value, string $class): array
public static function interfaceClassStringArrayNonNullable(mixed $value, string $class): array
{
return array_map(
static fn (string $val) => self::interfaceClassStringNonNullable($val, $class),
Expand All @@ -253,7 +253,7 @@ final public static function interfaceClassStringArrayNonNullable(mixed $value,
*
* @return ?class-string<T>[]
*/
final public static function interfaceClassStringArrayNullable(mixed $value, string $class): ?array
public static function interfaceClassStringArrayNullable(mixed $value, string $class): ?array
{
if ($value === null) {
return $value;
Expand All @@ -265,7 +265,7 @@ final public static function interfaceClassStringArrayNullable(mixed $value, str
/**
* @param object|class-string $class
*/
final public static function existingClassAttribute(object|string $class, string $attribute): void
public static function existingClassAttribute(object|string $class, string $attribute): void
{
if (!Attribute::existsOnClass($attribute, $class)) {
throw new AssertionFailedException(sprintf(
Expand Down
6 changes: 3 additions & 3 deletions src/Tool/Attribute.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
/**
* @internal
*/
abstract class Attribute
final class Attribute
{
private function __construct() {}

/**
* @param object|class-string $class
*/
final public static function existsOnClass(string $attribute, object|string $class): bool
public static function existsOnClass(string $attribute, object|string $class): bool
{
return (is_string($class) && !class_exists($class))
? false
Expand All @@ -31,7 +31,7 @@ final public static function existsOnClass(string $attribute, object|string $cla
/**
* @param object|class-string $class
*/
final public static function existsOnProperty(string $attribute, object|string $class, string $propertyName): bool
public static function existsOnProperty(string $attribute, object|string $class, string $propertyName): bool
{
if (is_string($class) && !class_exists($class)) {
return false;
Expand Down
14 changes: 7 additions & 7 deletions src/Tool/Converter.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
/**
* @internal
*/
abstract class Converter
final class Converter
{
public const TYPE_ARRAY = 'array';
public const TYPE_ARRAY_KEY = 'array-key';
Expand Down Expand Up @@ -138,7 +138,7 @@ abstract class Converter

private function __construct() {}

final public static function toInterface(Class_ $node, bool $isReadonly): TsInterface
public static function toInterface(Class_ $node, bool $isReadonly): TsInterface
{
$name = $node->name?->name;

Expand Down Expand Up @@ -170,7 +170,7 @@ final public static function toInterface(Class_ $node, bool $isReadonly): TsInte
/**
* @throws InvalidEnumException
*/
final public static function toEnum(Enum_ $node): TsEnum
public static function toEnum(Enum_ $node): TsEnum
{
$name = $node->name?->name;

Expand Down Expand Up @@ -209,7 +209,7 @@ final public static function toEnum(Enum_ $node): TsEnum
/**
* @throws InvalidPropertyException
*/
final public static function toProperty(
public static function toProperty(
Param|Property|EnumCase $property,
bool $isReadonly,
?Doc $docComment,
Expand Down Expand Up @@ -275,7 +275,7 @@ classIdentifiers: $classIdentifiers,
/**
* @param Node[] $nodes
*/
final public static function applyIndentAndQuotes(
public static function applyIndentAndQuotes(
array $nodes,
Indent $indent,
Quotes $quotes,
Expand Down Expand Up @@ -326,7 +326,7 @@ final public static function applyIndentAndQuotes(
/**
* @return Node[]
*/
final public static function getNextLevelNodes(Node $node): array
public static function getNextLevelNodes(Node $node): array
{
return match (true) {
default => [],
Expand All @@ -343,7 +343,7 @@ final public static function getNextLevelNodes(Node $node): array
};
}

final public static function getClassIdentifierNode(Node $node): ?IdentifierTypeNode
public static function getClassIdentifierNode(Node $node): ?IdentifierTypeNode
{
return match (true) {
default => null,
Expand Down
Loading

0 comments on commit 2a5a3c1

Please sign in to comment.