@bemedev/app-react
Version:
Use app-ts inside react
31 lines • 994 B
TypeScript
import type { Mode, WorkingStatus } from '@bemedev/app-ts';
import type { StateValue } from '@bemedev/app-ts/lib/states';
import type { PrimitiveObject } from '@bemedev/app-ts/lib/types';
import { TrueObject, type NotSubType, type Ru } from '@bemedev/types';
export type State<Tc extends PrimitiveObject> = {
context?: Tc;
mode?: Mode;
scheduleds: number;
status: WorkingStatus;
value?: StateValue;
};
type ToPaths<T, D extends string = '.', P extends string = ''> = T extends Ru ? Required<{
[K in keyof T]: ToPaths<T[K], D, `${P}${K & string}${D}`>;
}>[keyof T] : {
path: P extends `${infer P}${D}` ? P : never;
type: T;
};
type FromPaths<T extends {
path: string;
type: unknown;
}> = {
[P in T['path']]: Extract<T, {
path: P;
}>['type'];
};
/**
* From "Acid Coder"
*/
export type Decompose<T extends TrueObject, D extends string = '.'> = NotSubType<FromPaths<ToPaths<T, D>>, undefined>;
export {};
//# sourceMappingURL=types.d.ts.map