From cc89ed5242b706857707326a6c46d0bc11d87724 Mon Sep 17 00:00:00 2001 From: Rolf van de Krol Date: Tue, 7 Aug 2018 11:15:18 +0200 Subject: [PATCH 01/12] Change package --- ts_generator_metatag/ts_generator_metatag.info.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ts_generator_metatag/ts_generator_metatag.info.yml b/ts_generator_metatag/ts_generator_metatag.info.yml index 0620286..fab7454 100644 --- a/ts_generator_metatag/ts_generator_metatag.info.yml +++ b/ts_generator_metatag/ts_generator_metatag.info.yml @@ -1,7 +1,7 @@ name: TS Generator Metatag type: module description: Generate TypeScript code for metatag -package: Custom +package: Hoppinger core: 8.x dependencies: - ts_generator From 782f8617de7fd39f562029b6856a6ba366bc8e92 Mon Sep 17 00:00:00 2001 From: Rolf van de Krol Date: Wed, 8 Aug 2018 13:29:53 +0200 Subject: [PATCH 02/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b0565d1..2b95fc0 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ import { import { input_entity_parser, input_entity_guard -} from "./generated/types" +} from "./generated/parser" export type Result = T | "error" From 5047c1b6c4bcfde886c4872556503b4820285170 Mon Sep 17 00:00:00 2001 From: Rolf van de Krol Date: Wed, 8 Aug 2018 13:30:24 +0200 Subject: [PATCH 03/12] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 2b95fc0..c4680e7 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,6 @@ This is an example of how you could use those types. You are not limited to this ```ts import { InputEntity, - ParsedEntity, ParsedInputEntity, } from "./generated/types" From c48f1700c19d04fa015daba550f4cb6d3f606c46 Mon Sep 17 00:00:00 2001 From: wimjjj Date: Thu, 20 Sep 2018 16:30:21 +0200 Subject: [PATCH 04/12] add support for adding guards to property parsers --- .../Field/FieldGenerator.php | 9 ++- .../PropertiesGenerator.php | 61 ++++++++++++++++++- 2 files changed, 66 insertions(+), 4 deletions(-) diff --git a/src/ComponentGenerator/Field/FieldGenerator.php b/src/ComponentGenerator/Field/FieldGenerator.php index b042e2b..7d54fdd 100644 --- a/src/ComponentGenerator/Field/FieldGenerator.php +++ b/src/ComponentGenerator/Field/FieldGenerator.php @@ -15,6 +15,7 @@ class FieldGenerator extends GeneratorBase { use PropertiesGenerator; protected $supportedFieldType; + protected $needsItemGuard = false; /** * @var \Drupal\Core\Field\FieldTypePluginManagerInterface @@ -83,7 +84,8 @@ protected function generateItem($object, Settings $settings, Result $result, Com Container::underscore($name) . '_parser', $mapping, $settings, - $result + $result, + $this->needsItemGuard ? (Container::underscore($name) . '_guard') : null ); } @@ -118,6 +120,7 @@ public function generateParser($object, Settings $settings, Result $result, Comp $item_target_type = $componentResult->getContext('item')->getComponent('target_type'); $item_parser = $componentResult->getContext('item')->getComponent('parser'); + $item_guard = $componentResult->getContext('item')->getComponent('guard'); if ($object->getFieldStorageDefinition()->getCardinality() == 1) { if ($object->isRequired()) { @@ -125,12 +128,12 @@ public function generateParser($object, Settings $settings, Result $result, Comp return $result->setComponent('parser/' . $name, 'const ' . $name . ' = (f: ' . $type . '): ' . $target_type . ' => ' . $item_parser . '(f[0])'); } else { $name = 'singular_optional_' . Container::underscore($this->getName($object, $settings, $result, $componentResult)) . '_parser'; - return $result->setComponent('parser/' . $name, 'const ' . $name . ' = (f: ' . $type . '): ' . $target_type . ' => f && f.length > 0 ? ' . $item_parser . '(f[0]) : null'); + return $result->setComponent('parser/' . $name, 'const ' . $name . ' = (f: ' . $type . '): ' . $target_type . ' => f && f.length > 0' . ($item_guard ? ' && ' . $item_guard . '(f[0])' : '') . ' ? ' . $item_parser . '(f[0]) : null'); } } else { // parse from FieldItemList to Immutable.List $name = 'plural_' . Container::underscore($this->getName($object, $settings, $result, $componentResult)) . '_parser'; - return $result->setComponent('parser/' . $name, 'const ' . $name . " =\n (f: " . $type . '): ' . $target_type . " =>\n :/immutable/List:<" . $item_target_type . '>(f.map(i => ' . $item_parser . '(i)))'); + return $result->setComponent('parser/' . $name, 'const ' . $name . " =\n (f: " . $type . '): ' . $target_type . " =>\n :/immutable/List:<" . $item_target_type . '>(f' . ($item_guard ? '.filter(i => ' . $item_guard . '(i))' : '') . '.map(i => ' . $item_parser . '(i)))'); } } diff --git a/src/ComponentGenerator/PropertiesGenerator.php b/src/ComponentGenerator/PropertiesGenerator.php index d799b08..fa654e4 100644 --- a/src/ComponentGenerator/PropertiesGenerator.php +++ b/src/ComponentGenerator/PropertiesGenerator.php @@ -208,7 +208,56 @@ protected function generatePropertiesParserContent(array $properties, $mapping = return "({\n" . implode(",\n", $result) . "\n})"; } - protected function generatePropertiesComponentResult($properties, $type_name, $target_type_name, $parser_name, $mapping, Settings $settings, Result $result) { + protected function generatePropertiesGuard(array $properties, $type_name, $mapping = NULL) { + return '(t: any): t is ' . $type_name . ' => ' . $this->generatePropertiesGuardContent($properties, $mapping); + } + + protected function generatePropertiesGuardContent($properties, $mapping = NULL) { + + if (!isset($mapping)) { + $mapping = $this->getDefaultMapping($properties); + } + + $guards = []; + + if (!is_string($mapping)) { + foreach ($mapping as $property_target_key => $property_key) { + if (!is_numeric($property_target_key)) { + continue; + } + + if (is_string($property_key) && isset($properties[$property_key])) { + continue; + } + + if (!is_string($property_key)) { + $guard = $property_key->getComponent('guard'); + if (!$guard) { + continue; + } + + $guards[] = $guard . '(t)'; + } + } + } + + foreach ($properties as $property_key => $property) { + if (!is_string($property)) { + $guard = $property->getComponent('guard'); + if (!$guard) { + continue; + } + + $guards[] = '(t.' . $property_key . ' !== undefined)'; + $guards[] = $guard . '(t.' . $property_key . ')'; + } + } + + + return $guards ? implode (' && ', $guards) : 'true'; + } + + protected function generatePropertiesComponentResult($properties, $type_name, $target_type_name, $parser_name, $mapping, Settings $settings, Result $result, $guard_name = null) { if (!isset($mapping)) { $mapping = $this->getDefaultMapping($properties); } @@ -239,6 +288,16 @@ protected function generatePropertiesComponentResult($properties, $type_name, $t 'const ' . $parser_name . ' = ' . $this->generatePropertiesParser($properties, $type, $target_type, $mapping) ) ); + + if ($guard_name) { + $guard = $componentResult->setComponent( + 'guard', + $result->setComponent( + 'parser/' . $guard_name, + 'const ' . $guard_name . ' = ' . $this->generatePropertiesGuard($properties, $type, $mapping) + ) + ); + } } return $componentResult; From e080a9813ffcccc61ac78ef1c199041b2f07142d Mon Sep 17 00:00:00 2001 From: Erik Deijl Date: Thu, 20 Sep 2018 15:28:32 +0000 Subject: [PATCH 05/12] Fix file urls --- .../Field/FileUriFieldGenerator.php | 15 +++++++++++++++ ts_generator.services.yml | 7 ++++++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/ComponentGenerator/Field/FileUriFieldGenerator.php diff --git a/src/ComponentGenerator/Field/FileUriFieldGenerator.php b/src/ComponentGenerator/Field/FileUriFieldGenerator.php new file mode 100644 index 0000000..6cbb8a2 --- /dev/null +++ b/src/ComponentGenerator/Field/FileUriFieldGenerator.php @@ -0,0 +1,15 @@ + Date: Fri, 9 Nov 2018 13:38:15 +0100 Subject: [PATCH 06/12] fix dataparsing --- src/ComponentGenerator/Data/DateTimeGenerator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ComponentGenerator/Data/DateTimeGenerator.php b/src/ComponentGenerator/Data/DateTimeGenerator.php index 2f3c0e7..9f39521 100644 --- a/src/ComponentGenerator/Data/DateTimeGenerator.php +++ b/src/ComponentGenerator/Data/DateTimeGenerator.php @@ -23,7 +23,7 @@ protected function generateParser($object, Settings $settings, Result $result, C /** @var \Drupal\Core\TypedData\DataDefinitionInterface $object */ $base_parser = $result->setComponent( 'parser/moment_parser', - 'const moment_parser = (t: string): :/moment/Moment*:.Moment => :/moment/Moment*:(t)' + 'const moment_parser = (t: string): :/moment/Moment*:.Moment => :/moment/Moment*:.utc(t).local()' ); $componentResult->setComponent('base_parser', $base_parser); From e859455912248290a893d1e83474fc6fbd1445a3 Mon Sep 17 00:00:00 2001 From: Rolf van de Krol Date: Thu, 10 Jan 2019 11:13:19 +0100 Subject: [PATCH 07/12] Handle optional properties correctly in PropertiesGenerator --- .../PropertiesGenerator.php | 131 +++++++++++++----- 1 file changed, 94 insertions(+), 37 deletions(-) diff --git a/src/ComponentGenerator/PropertiesGenerator.php b/src/ComponentGenerator/PropertiesGenerator.php index fa654e4..45e7281 100644 --- a/src/ComponentGenerator/PropertiesGenerator.php +++ b/src/ComponentGenerator/PropertiesGenerator.php @@ -28,7 +28,7 @@ protected function generatePropertiesObject(array $properties, $mapping = NULL) continue; } - if (is_string($property_key) && isset($properties[$property_key])) { + if (is_string($property_key) && (isset($properties[$property_key]) || isset($properties[$property_key . '?']))) { continue; } @@ -42,7 +42,13 @@ protected function generatePropertiesObject(array $properties, $mapping = NULL) $result_properties = []; foreach ($properties as $key => $property) { - $result_properties[$key] = $this->generatePropertyType($properties, $key, 'type'); + $optional = false; + if (substr($key, -1, 1) == '?') { + $key = substr($key, 0, -1); + $optional = true; + } + + $result_properties[$optional ? ($key . '?') : $key] = $this->generatePropertyType($properties, $key, 'type'); } return $this->formatObject($combinators, $result_properties); @@ -72,13 +78,26 @@ protected function formatObject($combinators, $result_properties) { } protected function generatePropertyType(array $properties, $property_key, $component = 'type') { + if (!isset($properties[$property_key])) { + $property_key .= '?'; + } + $property_data = is_string($properties[$property_key]) ? $properties[$property_key] : $properties[$property_key]->getComponent($component); $property_data = $this->cleanupPropertyType($property_data); return $property_data; } protected function getDefaultMapping(array $properties, $mapping = NULL) { - return array_combine(array_keys($properties), array_keys($properties)); + $keys = array(); + foreach (array_keys($properties) as $key) { + if (substr($key, -1, 1) == '?') { + $keys[] = substr($key, 0, -1); + } else { + $keys[] = $key; + } + } + + return array_combine($keys, $keys); } protected function generatePropertiesTargetObject(array $properties, $mapping = NULL) { @@ -87,7 +106,7 @@ protected function generatePropertiesTargetObject(array $properties, $mapping = } if (is_string($mapping)) { - if (isset($properties[$mapping])) { + if (isset($properties[$mapping]) || isset($properties[$mapping . '?'])) { return $this->generatePropertyType($properties, $mapping, 'target_type'); } else { $mapping = [$mapping]; @@ -99,8 +118,9 @@ protected function generatePropertiesTargetObject(array $properties, $mapping = foreach ($mapping as $property_target_key => $property_key) { if (is_numeric($property_target_key)) { - if (is_string($property_key) && isset($properties[$property_key])) { - $result[$property_key] = $this->generatePropertyType($properties, $property_key, 'target_type'); + if (is_string($property_key) && (isset($properties[$property_key]) || isset($properties[$property_key . '?']))) { + $optional = !isset($properties[$property_key]); + $result[$optional ? ($property_key . '?') : $property_key] = $this->generatePropertyType($properties, $property_key, 'target_type'); } else { if (is_string($property_key)) { $combinators[] = $property_key; @@ -109,8 +129,9 @@ protected function generatePropertiesTargetObject(array $properties, $mapping = } } } else { - if (is_string($property_key) && isset($properties[$property_key])) { - $result[$property_target_key] = $this->generatePropertyType($properties, $property_key, 'target_type'); + if (is_string($property_key) && (isset($properties[$property_key]) || isset($properties[$property_key . '?']))) { + $optional = !isset($properties[$property_key]); + $result[$optional ? ($property_target_key . '?') : $property_target_key] = $this->generatePropertyType($properties, $property_key, 'target_type'); } else { if (is_string($property_key)) { $result[$property_target_key] = $property_key; @@ -132,19 +153,27 @@ protected function cleanupPropertyType($type) { } protected function generatePropertyParser(array $properties, $property_key) { - if (is_string($properties[$property_key])) { - if (!preg_match('/^[a-zA-Z_$][0-9a-zA-Z_$]*$/', $property_key)) { - return 't[' . json_encode($property_key) . ']'; - } else { - return 't.' . $property_key; - } - } else { - if (!preg_match('/^[a-zA-Z_$][0-9a-zA-Z_$]*$/', $property_key)) { - return $properties[$property_key]->getComponent('parser') . '(t[' . json_encode($property_key) . '])'; - } else { - return $properties[$property_key]->getComponent('parser') . '(t.' . $property_key . ')'; - } + $_property_key = $property_key; + $optional = false; + if (!isset($properties[$property_key])) { + $_property_key .= '?'; + $optional = true; } + + $property_accessor = 't.' . $property_key; + if (!preg_match('/^[a-zA-Z_$][0-9a-zA-Z_$]*$/', $property_key)) { + $property_accessor = 't[' . json_encode($property_key) . ']'; + } + + if (is_string($properties[$_property_key])) { + return $property_accessor; + } + + if ($optional) { + return '(' . $property_accessor . ' !== undefined ? ' . $properties[$_property_key]->getComponent('parser') . '(' . $property_accessor . ') : undefined)'; + } + + return $properties[$_property_key]->getComponent('parser') . '(' . $property_accessor . ')'; } protected function generatePropertyParserLine($key, $value) { @@ -163,6 +192,16 @@ protected function generatePropertyParserLine($key, $value) { * @return string */ protected function generatePropertiesParser(array $properties, $type_name, $target_type_name, $mapping = NULL) { + if (!isset($mapping)) { + $mapping = $this->getDefaultMapping($properties); + } + + if (is_string($mapping)) { + if (isset($properties[$mapping . '?'])) { + return '(t: ' . $type_name . '): ' . $target_type_name . " | undefined => " . $this->generatePropertiesParserContent($properties, $mapping); + } + } + return '(t: ' . $type_name . '): ' . $target_type_name . " => " . $this->generatePropertiesParserContent($properties, $mapping); } @@ -172,7 +211,7 @@ protected function generatePropertiesParserContent(array $properties, $mapping = } if (is_string($mapping)) { - if (isset($properties[$mapping])) { + if (isset($properties[$mapping]) || isset($properties[$mapping . '?'])) { return $this->generatePropertyParser($properties, $mapping); } else { $mapping = [$mapping]; @@ -183,7 +222,7 @@ protected function generatePropertiesParserContent(array $properties, $mapping = foreach ($mapping as $property_target_key => $property_key) { if (is_numeric($property_target_key)) { - if (is_string($property_key) && isset($properties[$property_key])) { + if (is_string($property_key) && (isset($properties[$property_key]) || isset($properties[$property_key . '?']))) { $result[] = $this->generatePropertyParserLine($property_key, $this->generatePropertyParser($properties, $property_key)); } else { if (is_string($property_key)) { @@ -193,7 +232,7 @@ protected function generatePropertiesParserContent(array $properties, $mapping = } } } else { - if (is_string($property_key) && isset($properties[$property_key])) { + if (is_string($property_key) && (isset($properties[$property_key]) || isset($properties[$property_key . '?']))) { $result[] = $this->generatePropertyParserLine($property_target_key, $this->generatePropertyParser($properties, $property_key)); } else { if (is_string($property_key)) { @@ -220,6 +259,7 @@ protected function generatePropertiesGuardContent($properties, $mapping = NULL) $guards = []; + // If the mapping contains other objects than properties, run those guards first. if (!is_string($mapping)) { foreach ($mapping as $property_target_key => $property_key) { if (!is_numeric($property_target_key)) { @@ -242,18 +282,27 @@ protected function generatePropertiesGuardContent($properties, $mapping = NULL) } foreach ($properties as $property_key => $property) { - if (!is_string($property)) { - $guard = $property->getComponent('guard'); - if (!$guard) { - continue; + if (is_string($property)) { + if (substr($property_key, -1, 1) != '?' && !in_array('undefined', array_map('trim', explode('|', $property)))) { + $guards[] = '(t.' . $property_key . ' !== undefined)'; } + } else { + if (substr($property_key, -1, 1) != '?') { + $guards[] = '(t.' . $property_key . ' !== undefined)'; - $guards[] = '(t.' . $property_key . ' !== undefined)'; - $guards[] = $guard . '(t.' . $property_key . ')'; + $guard = $property->getComponent('guard'); + if ($guard) { + $guards[] = $guard . '(t.' . $property_key . ')'; + } + } else { + $guard = $property->getComponent('guard'); + if ($guard) { + $guards[] = '((t.' . substr($property_key, 0, -1) . ' === undefined) || ' . $guard . '(t.' . substr($property_key, 0, -1) . '))'; + } + } } } - return $guards ? implode (' && ', $guards) : 'true'; } @@ -273,13 +322,21 @@ protected function generatePropertiesComponentResult($properties, $type_name, $t ); if ($settings->generateParser()) { - $target_type = $componentResult->setComponent( - 'target_type', - !is_string($mapping) ? $result->setComponent( - 'types/' . $target_type_name, - 'type ' . $target_type_name . ' = ' . $this->generatePropertiesTargetObject($properties, $mapping) - ) : $this->generatePropertiesTargetObject($properties, $mapping) - ); + if (is_string($mapping) && (isset($properties[$mapping]) || isset($properties[$mapping . '?']))) { + $optional = isset($properties[$mapping . '?']); + $target_type = $componentResult->setComponent( + 'target_type', + $optional ? ($this->generatePropertiesTargetObject($properties, $mapping) . ' | undefined') : $this->generatePropertiesTargetObject($properties, $mapping) + ); + } else { + $target_type = $componentResult->setComponent( + 'target_type', + $result->setComponent( + 'types/' . $target_type_name, + 'type ' . $target_type_name . ' = ' . $this->generatePropertiesTargetObject($properties, $mapping) + ) + ); + } $parser = $componentResult->setComponent( 'parser', From 29531d4941648bcf90309c92363c2d835d3c1ca0 Mon Sep 17 00:00:00 2001 From: Rolf van de Krol Date: Thu, 10 Jan 2019 11:13:37 +0100 Subject: [PATCH 08/12] Make optional target properties really optional in EntityReferenceFieldGenerator --- .../Field/EntityReferenceFieldGenerator.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ComponentGenerator/Field/EntityReferenceFieldGenerator.php b/src/ComponentGenerator/Field/EntityReferenceFieldGenerator.php index 3a6b8b3..89c7be8 100644 --- a/src/ComponentGenerator/Field/EntityReferenceFieldGenerator.php +++ b/src/ComponentGenerator/Field/EntityReferenceFieldGenerator.php @@ -35,18 +35,18 @@ protected function getName($object, Settings $settings, Result $result, Componen protected function getItemProperties($object, Settings $settings, Result $result, ComponentResult $component_result) { $properties = parent::getItemProperties($object, $settings, $result, $component_result); - $properties['target_type'] = 'string'; - $properties['target_uuid'] = 'string'; + $properties['target_type?'] = 'string'; + $properties['target_uuid?'] = 'string'; if ($this->hasUrl($object)) { - $properties['url'] = 'string'; + $properties['url?'] = 'string'; } return $properties; } public function getItemMapping($object, $properties, Settings $settings, Result $result, ComponentResult $componentResult) { - if (isset($properties['url'])) { + if (isset($properties['url']) || isset($properties['url?'])) { return ['id' => 'target_id', 'url']; } else { return 'target_id'; From 2c3a7902f5df0d09eddc5bb886f7b5c85f766cba Mon Sep 17 00:00:00 2001 From: Rolf van de Krol Date: Fri, 21 Jun 2019 12:26:00 +0200 Subject: [PATCH 09/12] Generate custom fields for entities that have no bundles --- src/ComponentGenerator/Entity/EntityGenerator.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ComponentGenerator/Entity/EntityGenerator.php b/src/ComponentGenerator/Entity/EntityGenerator.php index 242c4b0..8ba85f5 100644 --- a/src/ComponentGenerator/Entity/EntityGenerator.php +++ b/src/ComponentGenerator/Entity/EntityGenerator.php @@ -121,6 +121,21 @@ protected function getBaseProperties($object, Settings $settings, Result $result } } + if (!$this->getBundles($object)) { + $field_definitions = $this->entityFieldManager->getFieldDefinitions($object->id(), $object->id()); + foreach ($field_definitions as $key => $field_definition) { + if ($field_definition->isInternal()) { + continue; + } + + if (isset($base_field_definitions[$key])) { + continue; + } + + $properties[$key] = $this->generator->generate($field_definition, $settings, $result); + } + } + return $properties; } From 262ff7634f54e872661b3630fccea0cc883b60fa Mon Sep 17 00:00:00 2001 From: ashwinimone Date: Tue, 16 Jun 2020 16:18:22 +0200 Subject: [PATCH 10/12] drupal 9 compatibility --- ts_generator.info.yml | 1 + ts_generator_metatag/ts_generator_metatag.info.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/ts_generator.info.yml b/ts_generator.info.yml index 455f58f..86a2825 100644 --- a/ts_generator.info.yml +++ b/ts_generator.info.yml @@ -3,5 +3,6 @@ type: module description: Generate TypeScript code based on the REST Resources package: Hoppinger core: 8.x +Add core_version_requirement: ^8 || ^9 dependencies: - rest diff --git a/ts_generator_metatag/ts_generator_metatag.info.yml b/ts_generator_metatag/ts_generator_metatag.info.yml index fab7454..6e13837 100644 --- a/ts_generator_metatag/ts_generator_metatag.info.yml +++ b/ts_generator_metatag/ts_generator_metatag.info.yml @@ -3,6 +3,7 @@ type: module description: Generate TypeScript code for metatag package: Hoppinger core: 8.x +Add core_version_requirement: ^8 || ^9 dependencies: - ts_generator - metatag From 6bd86fc9068f39ccdde821c14ded8a5797771236 Mon Sep 17 00:00:00 2001 From: ashwinimone Date: Tue, 16 Jun 2020 16:26:15 +0200 Subject: [PATCH 11/12] update Readme file --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c4680e7..1197436 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ This is a Drupal module, that generates Typescript type definitions for certain composer require hoppinger/ts_generator ``` +## Versions + +Version 2.0.0 is Drupal 9 compatible. + ## Usage The generator runs as a Drush command that needs a configuration file. From 4368b22e4af95b2d971da2de9bed54e88e2916fc Mon Sep 17 00:00:00 2001 From: Ashwini Mone Date: Thu, 6 Aug 2020 17:25:48 +0200 Subject: [PATCH 12/12] fix the info core requirement condition --- ts_generator.info.yml | 2 +- ts_generator_metatag/ts_generator_metatag.info.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ts_generator.info.yml b/ts_generator.info.yml index 86a2825..8b098d1 100644 --- a/ts_generator.info.yml +++ b/ts_generator.info.yml @@ -3,6 +3,6 @@ type: module description: Generate TypeScript code based on the REST Resources package: Hoppinger core: 8.x -Add core_version_requirement: ^8 || ^9 +core_version_requirement: ^8 || ^9 dependencies: - rest diff --git a/ts_generator_metatag/ts_generator_metatag.info.yml b/ts_generator_metatag/ts_generator_metatag.info.yml index 6e13837..fdb2bed 100644 --- a/ts_generator_metatag/ts_generator_metatag.info.yml +++ b/ts_generator_metatag/ts_generator_metatag.info.yml @@ -3,7 +3,7 @@ type: module description: Generate TypeScript code for metatag package: Hoppinger core: 8.x -Add core_version_requirement: ^8 || ^9 +core_version_requirement: ^8 || ^9 dependencies: - ts_generator - metatag