From 40875d486622b88f33ebeb200e111143a63b30e1 Mon Sep 17 00:00:00 2001 From: Convly Date: Thu, 30 Jun 2022 17:39:49 +0200 Subject: [PATCH] Fix circular dependencies breaking types resolution due to DefaultOption using GetAttributeValue --- .../lib/types/core/attributes/base.d.ts | 4 ++-- .../lib/types/core/attributes/biginteger.d.ts | 18 +++++++---------- .../lib/types/core/attributes/boolean.d.ts | 16 ++++++--------- .../lib/types/core/attributes/date-time.d.ts | 18 +++++++---------- .../lib/types/core/attributes/date.d.ts | 18 +++++++---------- .../lib/types/core/attributes/decimal.d.ts | 18 +++++++---------- .../lib/types/core/attributes/email.d.ts | 20 ++++++++----------- .../types/core/attributes/enumeration.d.ts | 16 ++++++--------- .../lib/types/core/attributes/float.d.ts | 18 +++++++---------- .../lib/types/core/attributes/integer.d.ts | 18 +++++++---------- .../lib/types/core/attributes/password.d.ts | 20 +++++++------------ .../lib/types/core/attributes/richtext.d.ts | 18 +++++++---------- .../lib/types/core/attributes/string.d.ts | 20 ++++++++----------- .../lib/types/core/attributes/text.d.ts | 20 ++++++++----------- .../lib/types/core/attributes/time.d.ts | 18 +++++++---------- .../lib/types/core/attributes/timestamp.d.ts | 18 +++++++---------- .../strapi/lib/types/core/attributes/uid.d.ts | 20 +++++++++---------- .../lib/types/core/attributes/utils.d.ts | 5 +++-- 18 files changed, 120 insertions(+), 183 deletions(-) diff --git a/packages/core/strapi/lib/types/core/attributes/base.d.ts b/packages/core/strapi/lib/types/core/attributes/base.d.ts index 3151b5fdc4..a9e58d65b6 100644 --- a/packages/core/strapi/lib/types/core/attributes/base.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/base.d.ts @@ -55,8 +55,8 @@ export interface UniqueOption { unique?: boolean; } -export interface DefaultOption { - default?: GetAttributeValue; +export interface DefaultOption { + default?: T; } export interface ConfigurableOption { diff --git a/packages/core/strapi/lib/types/core/attributes/biginteger.d.ts b/packages/core/strapi/lib/types/core/attributes/biginteger.d.ts index 0d36bb86a0..963c45481f 100644 --- a/packages/core/strapi/lib/types/core/attributes/biginteger.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/biginteger.d.ts @@ -7,17 +7,13 @@ import { RequiredOption, } from './base'; -export type BigIntegerAttribute = Attribute<'biginteger'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - MinMaxOption & - PrivateOption & - RequiredOption - : never - : never; +export type BigIntegerAttribute = Attribute<'biginteger'> & + // Options + ConfigurableOption & + DefaultOption & + MinMaxOption & + PrivateOption & + RequiredOption; export type BigIntegerValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/boolean.d.ts b/packages/core/strapi/lib/types/core/attributes/boolean.d.ts index fa891beed4..f58bd5cc8b 100644 --- a/packages/core/strapi/lib/types/core/attributes/boolean.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/boolean.d.ts @@ -6,16 +6,12 @@ import { RequiredOption, } from './base'; -export type BooleanAttribute = Attribute<'boolean'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - PrivateOption & - RequiredOption - : never - : never; +export type BooleanAttribute = Attribute<'boolean'> & + // Options + ConfigurableOption & + DefaultOption & + PrivateOption & + RequiredOption; export type BooleanValue = boolean; diff --git a/packages/core/strapi/lib/types/core/attributes/date-time.d.ts b/packages/core/strapi/lib/types/core/attributes/date-time.d.ts index b7c9775179..7a52d59f01 100644 --- a/packages/core/strapi/lib/types/core/attributes/date-time.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/date-time.d.ts @@ -7,17 +7,13 @@ import { UniqueOption, } from './base'; -export type DateTimeAttribute = Attribute<'datetime'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - PrivateOption & - RequiredOption & - UniqueOption - : never - : never; +export type DateTimeAttribute = Attribute<'datetime'> & + // Options + ConfigurableOption & + DefaultOption & + PrivateOption & + RequiredOption & + UniqueOption; export type DateTimeValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/date.d.ts b/packages/core/strapi/lib/types/core/attributes/date.d.ts index 9aa9caa1a8..b7d8ac2c6c 100644 --- a/packages/core/strapi/lib/types/core/attributes/date.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/date.d.ts @@ -7,17 +7,13 @@ import { UniqueOption, } from './base'; -export type DateAttribute = Attribute<'date'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - PrivateOption & - RequiredOption & - UniqueOption - : never - : never; +export type DateAttribute = Attribute<'date'> & + // Options + ConfigurableOption & + DefaultOption & + PrivateOption & + RequiredOption & + UniqueOption; export type DateValue = Date; diff --git a/packages/core/strapi/lib/types/core/attributes/decimal.d.ts b/packages/core/strapi/lib/types/core/attributes/decimal.d.ts index 999905988e..976ba22c82 100644 --- a/packages/core/strapi/lib/types/core/attributes/decimal.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/decimal.d.ts @@ -7,17 +7,13 @@ import { RequiredOption, } from './base'; -export type DecimalAttribute = Attribute<'decimal'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - MinMaxOption & - PrivateOption & - RequiredOption - : never - : never; +export type DecimalAttribute = Attribute<'decimal'> & + // Options + ConfigurableOption & + DefaultOption & + MinMaxOption & + PrivateOption & + RequiredOption; export type DecimalValue = number; diff --git a/packages/core/strapi/lib/types/core/attributes/email.d.ts b/packages/core/strapi/lib/types/core/attributes/email.d.ts index 70b1f86345..2c3881fae6 100644 --- a/packages/core/strapi/lib/types/core/attributes/email.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/email.d.ts @@ -8,18 +8,14 @@ import { UniqueOption, } from './base'; -export type EmailAttribute = Attribute<'email'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - MinMaxLengthOption & - PrivateOption & - RequiredOption & - UniqueOption - : never - : never; +export type EmailAttribute = Attribute<'email'> & + // Options + ConfigurableOption & + DefaultOption & + MinMaxLengthOption & + PrivateOption & + RequiredOption & + UniqueOption; export type EmailValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/enumeration.d.ts b/packages/core/strapi/lib/types/core/attributes/enumeration.d.ts index 3e04934d72..c7ab004f0c 100644 --- a/packages/core/strapi/lib/types/core/attributes/enumeration.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/enumeration.d.ts @@ -12,16 +12,12 @@ export interface EnumerationAttributeProperties { } export type EnumerationAttribute = Attribute<'enumeration'> & - EnumerationAttributeProperties extends infer U - ? U extends Attribute - ? U & - // Options - ConfigurableOption & - DefaultOption & - PrivateOption & - RequiredOption - : never - : never; + EnumerationAttributeProperties & + // Options + ConfigurableOption & + DefaultOption & + PrivateOption & + RequiredOption; export type EnumerationValue = GetArrayValues; diff --git a/packages/core/strapi/lib/types/core/attributes/float.d.ts b/packages/core/strapi/lib/types/core/attributes/float.d.ts index ba455c6ced..93a20eff7c 100644 --- a/packages/core/strapi/lib/types/core/attributes/float.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/float.d.ts @@ -7,17 +7,13 @@ import { RequiredOption, } from './base'; -export type FloatAttribute = Attribute<'float'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - MinMaxOption & - PrivateOption & - RequiredOption - : never - : never; +export type FloatAttribute = Attribute<'float'> & + // Options + ConfigurableOption & + DefaultOption & + MinMaxOption & + PrivateOption & + RequiredOption; export type FloatValue = number; diff --git a/packages/core/strapi/lib/types/core/attributes/integer.d.ts b/packages/core/strapi/lib/types/core/attributes/integer.d.ts index 5ea5634e0e..860b34464f 100644 --- a/packages/core/strapi/lib/types/core/attributes/integer.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/integer.d.ts @@ -7,17 +7,13 @@ import { RequiredOption, } from './base'; -export type IntegerAttribute = Attribute<'integer'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - MinMaxOption & - PrivateOption & - RequiredOption - : never - : never; +export type IntegerAttribute = Attribute<'integer'> & + // Options + ConfigurableOption & + DefaultOption & + MinMaxOption & + PrivateOption & + RequiredOption; export type IntegerValue = number; diff --git a/packages/core/strapi/lib/types/core/attributes/password.d.ts b/packages/core/strapi/lib/types/core/attributes/password.d.ts index 967dde4a65..c87d96bb6d 100644 --- a/packages/core/strapi/lib/types/core/attributes/password.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/password.d.ts @@ -7,19 +7,13 @@ import { RequiredOption, } from './base'; -// export interface PasswordAttribute extends BaseStringAttribute<'password'> {} - -export type PasswordAttribute = Attribute<'password'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - MinMaxLengthOption & - PrivateOption & - RequiredOption - : never - : never; +export type PasswordAttribute = Attribute<'password'> & + // Options + ConfigurableOption & + DefaultOption & + MinMaxLengthOption & + PrivateOption & + RequiredOption; export type PasswordValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/richtext.d.ts b/packages/core/strapi/lib/types/core/attributes/richtext.d.ts index 2bef156fd4..89a6251413 100644 --- a/packages/core/strapi/lib/types/core/attributes/richtext.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/richtext.d.ts @@ -7,17 +7,13 @@ import { RequiredOption, } from './base'; -export type RichTextAttribute = Attribute<'richtext'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - MinMaxLengthOption & - PrivateOption & - RequiredOption - : never - : never; +export type RichTextAttribute = Attribute<'richtext'> & + // Options + ConfigurableOption & + DefaultOption & + MinMaxLengthOption & + PrivateOption & + RequiredOption; export type RichTextValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/string.d.ts b/packages/core/strapi/lib/types/core/attributes/string.d.ts index 5fda13dc07..4bfd9684f3 100644 --- a/packages/core/strapi/lib/types/core/attributes/string.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/string.d.ts @@ -14,18 +14,14 @@ export interface StringAttributeProperties { export type StringAttribute = Attribute<'string'> & // Properties - StringAttributeProperties extends infer U - ? U extends Attribute - ? U & - // Options - ConfigurableOption & - DefaultOption & - MinMaxLengthOption & - PrivateOption & - UniqueOption & - RequiredOption - : never - : never; + StringAttributeProperties & + // Options + ConfigurableOption & + DefaultOption & + MinMaxLengthOption & + PrivateOption & + UniqueOption & + RequiredOption; export type StringValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/text.d.ts b/packages/core/strapi/lib/types/core/attributes/text.d.ts index d18d573994..579fb1431d 100644 --- a/packages/core/strapi/lib/types/core/attributes/text.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/text.d.ts @@ -14,18 +14,14 @@ export interface TextAttributeProperties { export type TextAttribute = Attribute<'text'> & // Properties - TextAttributeProperties extends infer U - ? U extends Attribute - ? U & - // Options - ConfigurableOption & - DefaultOption & - MinMaxLengthOption & - PrivateOption & - UniqueOption & - RequiredOption - : never - : never; + TextAttributeProperties & + // Options + ConfigurableOption & + DefaultOption & + MinMaxLengthOption & + PrivateOption & + UniqueOption & + RequiredOption; export type TextValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/time.d.ts b/packages/core/strapi/lib/types/core/attributes/time.d.ts index 3632243bcb..26dc0046a6 100644 --- a/packages/core/strapi/lib/types/core/attributes/time.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/time.d.ts @@ -7,17 +7,13 @@ import { UniqueOption, } from './base'; -export type TimeAttribute = Attribute<'time'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - PrivateOption & - RequiredOption & - UniqueOption - : never - : never; +export type TimeAttribute = Attribute<'time'> & + // Options + ConfigurableOption & + DefaultOption & + PrivateOption & + RequiredOption & + UniqueOption; export type TimeValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/timestamp.d.ts b/packages/core/strapi/lib/types/core/attributes/timestamp.d.ts index 9bfb6df4df..c632d11a0b 100644 --- a/packages/core/strapi/lib/types/core/attributes/timestamp.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/timestamp.d.ts @@ -7,17 +7,13 @@ import { UniqueOption, } from './base'; -export type TimestampAttribute = Attribute<'timestamp'> extends infer T - ? T extends Attribute - ? T & - // Options - ConfigurableOption & - DefaultOption & - PrivateOption & - RequiredOption & - UniqueOption - : never - : never; +export type TimestampAttribute = Attribute<'timestamp'> & + // Options + ConfigurableOption & + DefaultOption & + PrivateOption & + RequiredOption & + UniqueOption; export type TimestampValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/uid.d.ts b/packages/core/strapi/lib/types/core/attributes/uid.d.ts index cd8ae06f48..7e1eb64aff 100644 --- a/packages/core/strapi/lib/types/core/attributes/uid.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/uid.d.ts @@ -40,17 +40,15 @@ export type UIDAttribute< U extends T extends SchemaUID ? GetAttributesKeysByType : undefined = undefined -> = Attribute<'uid'> & UIDAttributeProperties extends infer P - ? P extends Attribute - ? P & - // Options - ConfigurableOption & - DefaultOption

& - MinMaxLengthOption & - PrivateOption & - RequiredOption - : never - : never; +> = Attribute<'uid'> & + // Properties + UIDAttributeProperties & + // Options + ConfigurableOption & + DefaultOption & + MinMaxLengthOption & + PrivateOption & + RequiredOption; export type UIDValue = string; diff --git a/packages/core/strapi/lib/types/core/attributes/utils.d.ts b/packages/core/strapi/lib/types/core/attributes/utils.d.ts index 2c389e8ef0..e0515bc966 100644 --- a/packages/core/strapi/lib/types/core/attributes/utils.d.ts +++ b/packages/core/strapi/lib/types/core/attributes/utils.d.ts @@ -3,7 +3,6 @@ import { Attribute, AttributeType, GetBigIntegerAttributeValue, - GetComponentAttributeValue, GetBooleanAttributeValue, GetDecimalAttributeValue, GetDynamicZoneAttributeValue, @@ -18,7 +17,8 @@ import { GetStringAttributeValue, GetTextAttributeValue, GetUIDAttributeValue, - BigIntegerAttribute, + GetComponentAttributeValue, + GetEmailAttributeValue, } from '.'; import { GetDateAttributeValue } from './date'; import { GetDateTimeAttributeValue } from './date-time'; @@ -54,6 +54,7 @@ export type GetAttributeValue = | GetDecimalAttributeValue | GetDynamicZoneAttributeValue | GetEnumerationAttributeValue + | GetEmailAttributeValue | GetFloatAttributeValue | GetIntegerAttributeValue | GetJsonAttributeValue