Files
directus/app/src/shims.d.ts
Nicola Krumschmidt 051df415df Fix extensions (#6377)
* Add support for npm extensions

* Allow extensions to import vue from the main app

* Bundle app extensions on server startup

* Fix return type of useLayoutState

* Add shared package

* Add extension-sdk package

* Add type declaration files to allow deep import of shared package

* Add extension loading to shared

* Refactor extension loading to use shared package

* Remove app bundle newline replacement

* Fix extension loading in development

* Rename extension entrypoints

* Update extension build instructions

* Remove vite auto-replacement workaround

* Update package-lock.json

* Remove newline from generated extension entrypoint

* Update package-lock.json

* Build shared package as cjs and esm

* Move useLayoutState composable to shared

* Reverse vite base env check

* Share useLayoutState composable through extension-sdk

* Update layout docs

* Update package versions

* Small cleanup

* Fix layout docs

* Fix imports

* Add nickrum to codeowners

* Fix typo

* Add 'em to vite config too

* Fix email

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-23 12:43:06 -04:00

91 lines
2.3 KiB
TypeScript

/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable @typescript-eslint/ban-types */
declare module '*.vue' {
import { ComponentOptions } from 'vue';
const Component: ComponentOptions;
export default Component;
}
declare module '*.md' {
const value: string;
export default value;
}
declare module '*.yaml' {
const value: Record<string, any>;
export default value;
}
declare module '*.json' {
const value: { [key: string]: any };
export default value;
}
declare module 'jsonlint-mod' {
const x: any;
export default x;
}
declare module '@directus-extensions-interface' {
import { InterfaceConfig } from '@/interfaces/types';
const interfaces: InterfaceConfig[];
export default interfaces;
}
declare module '@directus-extensions-display' {
import { DisplayConfig } from '@/displays/types';
const displays: DisplayConfig[];
export default displays;
}
declare module '@directus-extensions-layout' {
import { LayoutConfig } from '@/layouts/types';
const layouts: LayoutConfig[];
export default layouts;
}
declare module '@directus-extensions-module' {
import { ModuleConfig } from '@/modules/types';
const modules: ModuleConfig[];
export default modules;
}
type Primitive = string | number | boolean | bigint | symbol | undefined | null;
type Builtin = Primitive | Function | Date | Error | RegExp;
type IsTuple<T> = T extends [infer A]
? T
: T extends [infer A, infer B]
? T
: T extends [infer A, infer B, infer C]
? T
: T extends [infer A, infer B, infer C, infer D]
? T
: T extends [infer A, infer B, infer C, infer D, infer E]
? T
: never;
type DeepPartial<T> = T extends Primitive | Builtin
? T
: T extends Map<infer K, infer V>
? Map<DeepPartial<K>, DeepPartial<V>>
: T extends ReadonlyMap<infer K, infer V>
? ReadonlyMap<DeepPartial<K>, DeepPartial<V>>
: T extends WeakMap<infer K, infer V>
? WeakMap<DeepPartial<K>, DeepPartial<V>>
: T extends Set<infer U>
? Set<DeepPartial<U>>
: T extends ReadonlySet<infer U>
? ReadonlySet<DeepPartial<U>>
: T extends WeakSet<infer U>
? WeakSet<DeepPartial<U>>
: T extends Array<infer U>
? T extends IsTuple<T>
? { [K in keyof T]?: DeepPartial<T[K]> }
: Array<DeepPartial<U>>
: T extends Promise<infer U>
? Promise<DeepPartial<U>>
: T extends {}
? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>;