From 7f34b3852e7d7d91ff2840c901891dde66b5ead6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Luba=C5=84ski?= Date: Thu, 11 Apr 2024 15:05:25 +0200 Subject: [PATCH] chore: fix formatting --- test/types/store/direct-methods.ts | 12 +- types/index.d.ts | 266 ++++++++++++++++------------- 2 files changed, 153 insertions(+), 125 deletions(-) diff --git a/test/types/store/direct-methods.ts b/test/types/store/direct-methods.ts index ad383250..c880ee05 100644 --- a/test/types/store/direct-methods.ts +++ b/test/types/store/direct-methods.ts @@ -2,10 +2,12 @@ import { store } from "/types/index"; import SingletonStore, { ISingleton } from "./singleton-definition.store"; import EnumerableStore, { IEnumerable } from "./enumerable-definition.store"; -const SingletonModelPromise: Promise = store.resolve(SingletonStore); +const SingletonModelPromise: Promise = + store.resolve(SingletonStore); const SingletonModel = await SingletonModelPromise; -const EnumerableModelPromise: Promise = store.resolve(EnumerableStore); +const EnumerableModelPromise: Promise = + store.resolve(EnumerableStore); const EnumerableModel = await EnumerableModelPromise; store.get(SingletonStore); @@ -14,7 +16,6 @@ store.get([SingletonStore]); store.get(EnumerableStore); store.get([EnumerableStore]); - // ############################################### Create Singleton ############################################### store.set(SingletonStore, { @@ -36,7 +37,6 @@ store.set(SingletonStore, { relatedEnumerables: {}, }); - // ############################################### Update Singleton ############################################### store.set(SingletonModel, { @@ -58,14 +58,12 @@ store.set(SingletonModel, { relatedEnumerables: {}, }); - // ############################################### Delete Singleton ############################################### // an error is expected, but when determining overload, the display of errors for incorrect values ​​in Model Update breaks store.set(SingletonModel, null); store.set(EnumerableModel, null); - // ############################################### Create Enumerable ############################################### store.set(EnumerableStore, { @@ -87,7 +85,6 @@ store.set(EnumerableStore, { relatedEnumerables: {}, }); - // ############################################### Update Enumerable ############################################### store.set(EnumerableModel, { @@ -109,7 +106,6 @@ store.set(EnumerableModel, { relatedEnumerables: {}, }); - // ############################################### Delete Enumerable ############################################### // an error is expected, but when determining overload, the display of errors for incorrect values ​​in Model Update breaks store.set(EnumerableStore, null); diff --git a/types/index.d.ts b/types/index.d.ts index a9af0c6e..75efc2a5 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -9,9 +9,9 @@ export interface Descriptor { get?: (host: E & HTMLElement, lastValue: any) => V; set?: (host: E & HTMLElement, value: any, lastValue: V) => any; connect?( - host: E & HTMLElement & { __property_key__: V; }, + host: E & HTMLElement & { __property_key__: V }, key: "__property_key__", - invalidate: (options?: { force?: boolean; }) => void, + invalidate: (options?: { force?: boolean }) => void, ): Function | void; observe?(host: E & HTMLElement, value: V, lastValue: V): void; } @@ -34,17 +34,17 @@ export type Component = ComponentBase & { keyof Omit, string >]: property extends "render" | "content" - ? E[property] extends () => HTMLElement - ? RenderFunction - : Property - : Property; + ? E[property] extends () => HTMLElement + ? RenderFunction + : Property + : Property; } & { render?: RenderFunction; content?: RenderFunction; }; export interface HybridElement { - new(): E & HTMLElement; + new (): E & HTMLElement; prototype: E & HTMLElement; } @@ -56,13 +56,16 @@ export namespace define { function compile(component: Component): HybridElement; function from( - components: { [path: string]: Component; }, - options?: { prefix?: string; root?: string | string[]; }, + components: { [path: string]: Component }, + options?: { prefix?: string; root?: string | string[] }, ): void; } /* Mount */ -export function mount(target: HTMLElement, component: Component): () => void; +export function mount( + target: HTMLElement, + component: Component, +): () => void; /* Factories */ @@ -72,76 +75,77 @@ export function parent( export function children( componentOrFn: Component | ((component: Component) => boolean), - options?: { deep?: boolean; nested?: boolean; }, + options?: { deep?: boolean; nested?: boolean }, ): Descriptor; /* Store */ -export type ModelInstance = { id?: string; } & object & NonArrayObject & NonModelDefinition; -export type EnumerableInstance = { id: string; } & ModelInstance; -export type SingletonInstance = { id?: never; } & ModelInstance; +export type ModelInstance = { id?: string } & object & + NonArrayObject & + NonModelDefinition; +export type EnumerableInstance = { id: string } & ModelInstance; +export type SingletonInstance = { id?: never } & ModelInstance; export type Unarray = T extends Array ? U : T; -export type NonConstructor = { readonly prototype?: never; }; -export type NonArrayObject = { [Symbol.iterator]?: never; } & object; -export type NonModelDefinition = { __store__connect__?: never; } & object; +export type NonConstructor = { readonly prototype?: never }; +export type NonArrayObject = { [Symbol.iterator]?: never } & object; +export type NonModelDefinition = { __store__connect__?: never } & object; export type Model = NonArrayObject & { - [property in keyof Omit]-?: - NonNullable extends Array - ? NestedArrayModel> - | NonConstructor & ((model: M) => - undefined extends M[property] - ? undefined | NestedArrayModel - : NestedArrayModel) - - : NonNullable extends string | String - ? string - | NonConstructor & ((model: M) => M[property]) - - : NonNullable extends number | Number - ? number - | NonConstructor & ((model: M) => M[property]) - - : NonNullable extends boolean | Boolean - ? boolean - | NonConstructor & ((model: M) => M[property]) - - : NonNullable extends ModelInstance - ? Model> - | NonConstructor & ((model: M) => - undefined extends M[property] - ? undefined | Model> - : Model>) - - : NonNullable extends NonArrayObject - ? NonNullable - | NonConstructor & ((model: M) => M[property]) - - : never; -} & (M extends EnumerableInstance ? { - id: true; -} : {}) & { - __store__connect__?: Storage | Storage["get"]; -}; + [property in keyof Omit]-?: NonNullable< + M[property] + > extends Array + ? + | NestedArrayModel> + | (NonConstructor & + (( + model: M, + ) => undefined extends M[property] + ? undefined | NestedArrayModel + : NestedArrayModel)) + : NonNullable extends string | String + ? string | (NonConstructor & ((model: M) => M[property])) + : NonNullable extends number | Number + ? number | (NonConstructor & ((model: M) => M[property])) + : NonNullable extends boolean | Boolean + ? boolean | (NonConstructor & ((model: M) => M[property])) + : NonNullable extends ModelInstance + ? + | Model> + | (NonConstructor & + (( + model: M, + ) => undefined extends M[property] + ? undefined | Model> + : Model>)) + : NonNullable extends NonArrayObject + ? + | NonNullable + | (NonConstructor & ((model: M) => M[property])) + : never; +} & (M extends EnumerableInstance + ? { + id: true; + } + : {}) & { + __store__connect__?: Storage | Storage["get"]; + }; -export type NestedArrayModel = - NonNullable> extends string | String +export type NestedArrayModel = NonNullable> extends + | string + | String ? T | string[] | [String | StringConstructor] - : NonNullable> extends number | Number - ? T | number[] | [Number | NumberConstructor] - - : NonNullable> extends boolean | Boolean - ? T | boolean[] | [Boolean | BooleanConstructor] - - : NonNullable> extends EnumerableInstance - ? [Model>>] | [Model>>, { loose?: boolean; }] - - : NonNullable> extends NonArrayObject - ? T - - : never; + ? T | number[] | [Number | NumberConstructor] + : NonNullable> extends boolean | Boolean + ? T | boolean[] | [Boolean | BooleanConstructor] + : NonNullable> extends EnumerableInstance + ? + | [Model>>] + | [Model>>, { loose?: boolean }] + : NonNullable> extends NonArrayObject + ? T + : never; export type ModelIdentifier = | string @@ -150,35 +154,36 @@ export type ModelIdentifier = export type ModelValues = { [property in keyof M]?: NonNullable extends Array - ? Array>>> - : NonNullable extends ModelInstance - ? ModelValues> - : M[property]; + ? Array>>> + : NonNullable extends ModelInstance + ? ModelValues> + : M[property]; }; export type StorageValues = { - [property in keyof M]?: - NonNullable extends EnumerableInstance - ? NonNullable | M['id'] - : NonNullable extends EnumerableInstance[] - ? (NonNullable> | M['id'])[] - : M[property]; + [property in keyof M]?: NonNullable extends EnumerableInstance + ? NonNullable | M["id"] + : NonNullable extends EnumerableInstance[] + ? (NonNullable> | M["id"])[] + : M[property]; }; export type StorageResult = StorageValues | null; export type Storage = { - get?: (id: ModelIdentifier) - => StorageResult | Promise>; + get?: (id: ModelIdentifier) => StorageResult | Promise>; - set?: (id: ModelIdentifier, values: M | null, keys: [keyof M]) - => StorageResult | Promise>; + set?: ( + id: ModelIdentifier, + values: M | null, + keys: [keyof M], + ) => StorageResult | Promise>; - list?: (id: ModelIdentifier) - => Array> | Promise>>; + list?: ( + id: ModelIdentifier, + ) => Array> | Promise>>; - observe?: (id: ModelIdentifier, model: M | null, lastModel: M | null) - => void; + observe?: (id: ModelIdentifier, model: M | null, lastModel: M | null) => void; cache?: boolean | number; offline?: boolean | number; @@ -188,55 +193,85 @@ export type Storage = { // Enumerable - This overload must be the first one, then its signature and documentation will be displayed in intelephence by default. export function store( model: Model, - options?: { draft?: false; id?: keyof E | ((host: E) => ModelIdentifier); } + options?: { draft?: false; id?: keyof E | ((host: E) => ModelIdentifier) }, ): Descriptor; // Enumerable Draft export function store( model: Model, - options: { draft: true; id?: keyof E | ((host: E) => ModelIdentifier); } + options: { draft: true; id?: keyof E | ((host: E) => ModelIdentifier) }, ): Descriptor; // Enumerable Listing export function store( model: [Model], - options?: { draft?: false; id?: keyof E | ((host: E) => ModelIdentifier); loose?: boolean; } + options?: { + draft?: false; + id?: keyof E | ((host: E) => ModelIdentifier); + loose?: boolean; + }, ): Descriptor; // Singleton export function store( model: M extends Array ? never : Model, - options?: { draft?: false; id?: keyof E | ((host: E) => ModelIdentifier); } + options?: { draft?: false; id?: keyof E | ((host: E) => ModelIdentifier) }, ): Descriptor; // Singleton Draft export function store( model: M extends Array ? never : Model, - options: { draft: true; id?: keyof E | ((host: E) => ModelIdentifier); } + options: { draft: true; id?: keyof E | ((host: E) => ModelIdentifier) }, ): Descriptor; export namespace store { const connect = "__store__connect__"; - function get(Model: Model, id?: ModelIdentifier): M; - function get(Model: [Model], id?: ModelIdentifier): M[]; - - function set(model: Model | M, values: ModelValues | null): Promise; - function sync(model: Model | M, values: ModelValues | null): M; - function clear(model: Model | [Model] | M, clearValue?: boolean): void; + function get( + Model: Model, + id?: ModelIdentifier, + ): M; + function get( + Model: [Model], + id?: ModelIdentifier, + ): M[]; + + function set( + model: Model | M, + values: ModelValues | null, + ): Promise; + function sync( + model: Model | M, + values: ModelValues | null, + ): M; + function clear( + model: Model | [Model] | M, + clearValue?: boolean, + ): void; function pending(model: M): false | Promise; - function pending(...models: Array): false | Promise; + function pending( + ...models: Array + ): false | Promise; - function error(model: M, propertyName?: keyof M | null): false | Error | any; + function error( + model: M, + propertyName?: keyof M | null, + ): false | Error | any; function ready(model: M): boolean; function ready(...models: Array): boolean; - function submit(draft: M, values?: ModelValues): Promise; + function submit( + draft: M, + values?: ModelValues, + ): Promise; function resolve(model: M): Promise; - function resolve(model: Model, id?: ModelIdentifier): Promise; + function resolve( + model: Model, + id?: ModelIdentifier, + ): Promise; function ref(fn: () => T): T; @@ -302,13 +337,13 @@ export namespace router { params?: UrlParams & UrlOptions, ): URL | ""; - function backUrl(options?: { nested?: boolean; } & UrlOptions): URL | ""; + function backUrl(options?: { nested?: boolean } & UrlOptions): URL | ""; function guardUrl(params?: UrlParams & UrlOptions): URL | ""; function currentUrl(params?: UrlParams & UrlOptions): URL | ""; function active( views: ComponentBase | ComponentBase[], - options?: { stack?: boolean; }, + options?: { stack?: boolean }, ): boolean; function resolve

(event: Event, promise: Promise

): Promise

; @@ -318,15 +353,15 @@ export namespace router { export type Messages = { [key: string]: { message: - | string - | { - zero?: string; - one?: string; - two?: string; - few?: string; - many?: string; - other?: string; - }; + | string + | { + zero?: string; + one?: string; + two?: string; + few?: string; + many?: string; + other?: string; + }; description?: string; }; }; @@ -388,10 +423,7 @@ export function html( export namespace html { function set(property: keyof E, valueOrPath?: any): EventHandler; - function set( - property: M, - valueOrPath: string | null, - ): EventHandler; + function set(property: M, valueOrPath: string | null): EventHandler; function resolve( promise: Promise,