NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/single-spa/typings/single-spa.d.ts
2023-09-14 14:47:11 +08:00

237 lines
7.0 KiB
TypeScript

declare module "single-spa" {
interface CustomProps {
[str: string]: any;
[num: number]: any;
}
type CustomPropsFn<ExtraProps extends CustomProps = CustomProps> = (
name: string,
location: Location
) => ExtraProps;
export type AppProps = {
name: string;
singleSpa: any;
mountParcel(
parcelConfig: ParcelConfig,
customProps: ParcelProps & CustomProps
): Parcel;
};
export type ParcelConfig<ExtraProps = CustomProps> =
| ParcelConfigObject<ExtraProps>
| (() => Promise<ParcelConfigObject<ExtraProps>>);
type ParcelProps = { domElement: HTMLElement };
type ParcelConfigObject<ExtraProps = CustomProps> = {
name?: string;
} & LifeCycles<ExtraProps>;
type Parcel<ExtraProps = CustomProps> = {
mount(): Promise<null>;
unmount(): Promise<null>;
update?(customProps: ExtraProps): Promise<any>;
getStatus():
| "NOT_LOADED"
| "LOADING_SOURCE_CODE"
| "NOT_BOOTSTRAPPED"
| "BOOTSTRAPPING"
| "NOT_MOUNTED"
| "MOUNTING"
| "MOUNTED"
| "UPDATING"
| "UNMOUNTING"
| "UNLOADING"
| "SKIP_BECAUSE_BROKEN"
| "LOAD_ERROR";
loadPromise: Promise<null>;
bootstrapPromise: Promise<null>;
mountPromise: Promise<null>;
unmountPromise: Promise<null>;
};
type LifeCycleFn<ExtraProps> = (
config: ExtraProps & AppProps
) => Promise<any>;
export type LifeCycles<ExtraProps = {}> = {
bootstrap: LifeCycleFn<ExtraProps> | Array<LifeCycleFn<ExtraProps>>;
mount: LifeCycleFn<ExtraProps> | Array<LifeCycleFn<ExtraProps>>;
unmount: LifeCycleFn<ExtraProps> | Array<LifeCycleFn<ExtraProps>>;
update?: LifeCycleFn<ExtraProps> | Array<LifeCycleFn<ExtraProps>>;
};
export type StartOpts = {
urlRerouteOnly?: boolean;
};
// ./start.js
export function start(opts?: StartOpts): void;
// ./jquery-support.js
export function ensureJQuerySupport(jQuery?: any): void;
// ./applications/timeouts.js
/**
* Sets the timeout for the given lifecycle.
* @param {number} time - The timeout in milliseconds.
* @param {boolean=} dieOnTimeout - Whether to throw an error if the timeout is reached. Default false.
* @param {number=} warningMillis - The number of milliseconds before the timeout warning is triggered. Default 1000.
* @returns {void}
**/
export function setBootstrapMaxTime(
time: number,
dieOnTimeout?: boolean,
warningMillis?: number
): void;
/**
* Sets the timeout for the given lifecycle.
* @param {number} time - The timeout in milliseconds.
* @param {boolean=} dieOnTimeout - Whether to throw an error if the timeout is reached. Default false.
* @param {number=} warningMillis - The number of milliseconds before the timeout warning is triggered. Default 1000.
* @returns {void}
**/
export function setMountMaxTime(
time: number,
dieOnTimeout?: boolean,
warningMillis?: number
): void;
/**
* Sets the timeout for the given lifecycle.
* @param {number} time - The timeout in milliseconds.
* @param {boolean=} dieOnTimeout - Whether to throw an error if the timeout is reached. Default false.
* @param {number=} warningMillis - The number of milliseconds before the timeout warning is triggered. Default 1000.
* @returns {void}
**/
export function setUnmountMaxTime(
time: number,
dieOnTimeout?: boolean,
warningMillis?: number
): void;
/**
* Sets the timeout for the given lifecycle.
* @param {number} time - The timeout in milliseconds.
* @param {boolean=} dieOnTimeout - Whether to throw an error if the timeout is reached. Default false.
* @param {number=} warningMillis - The number of milliseconds before the timeout warning is triggered. Default 1000.
* @returns {void}
**/
export function setUnloadMaxTime(
time: number,
dieOnTimeout?: boolean,
warningMillis?: number
): void;
type Application<ExtraProps = {}> =
| LifeCycles<ExtraProps>
| ((config: ExtraProps & AppProps) => Promise<LifeCycles<ExtraProps>>);
type ActivityFn = (location: Location) => boolean;
type Activity = ActivityFn | string | (ActivityFn | string)[];
export type RegisterApplicationConfig<ExtraProps extends CustomProps = {}> = {
name: string;
app: Application<ExtraProps>;
activeWhen: Activity;
customProps?: ExtraProps | CustomPropsFn<ExtraProps>;
};
interface SingleSpaNewAppStatus {
[key: string]:
| "MOUNTED"
| "NOT_MOUNTED"
| "NOT_LOADED"
| "SKIP_BECAUSE_BROKEN";
}
interface SingleSpaAppsByNewStatus {
[MOUNTED]: [];
[NOT_MOUNTED]: [];
[NOT_LOADED]: [];
[SKIP_BECAUSE_BROKEN]: [];
}
export type SingleSpaCustomEventDetail = {
newAppStatuses: SingleSpaNewAppStatus;
appsByNewStatus: SingleSpaAppsByNewStatus;
totalAppChanges: number;
originalEvent?: Event;
oldUrl: string;
newUrl: string;
navigationIsCanceled: boolean;
cancelNavigation?: () => void;
};
// ./applications/apps.js
export function registerApplication<ExtraProps extends CustomProps = {}>(
appName: string,
applicationOrLoadingFn: Application<ExtraProps>,
activityFn: ActivityFn,
customProps?: ExtraProps | CustomPropsFn<ExtraProps>
): void;
export function registerApplication<ExtraProps extends CustomProps = {}>(
config: RegisterApplicationConfig<ExtraProps>
): void;
export function unregisterApplication(appName: string): Promise<any>;
export function getMountedApps(): string[];
export const {
NOT_LOADED = "NOT_LOADED",
LOADING_SOURCE_CODE = "LOADING_SOURCE_CODE",
NOT_BOOTSTRAPPED = "NOT_BOOTSTRAPPED",
BOOTSTRAPPING = "BOOTSTRAPPING",
NOT_MOUNTED = "NOT_MOUNTED",
MOUNTING = "MOUNTING",
MOUNTED = "MOUNTED",
UPDATING = "UPDATING",
UNMOUNTING = "UNMOUNTING",
UNLOADING = "UNLOADING",
SKIP_BECAUSE_BROKEN = "SKIP_BECAUSE_BROKEN",
LOAD_ERROR = "LOAD_ERROR",
};
export function getAppStatus(appName: string): string | null;
export function unloadApplication(
appName: string,
opts?: { waitForUnmount: boolean }
): Promise<any>;
export function checkActivityFunctions(location: Location): string[];
export function getAppNames(): string[];
// ./navigation/navigation-events.js'
export function navigateToUrl(
obj:
| string
| {
currentTarget: {
href: string;
};
preventDefault: any;
},
opts?: Object
): void;
// './navigation/reroute.js'
export function triggerAppChange(): Promise<any>;
// './applications/app-errors.js'
type AppError = Error & {
appOrParcelName: string;
};
export function addErrorHandler(handler: (error: AppError) => void): void;
export function removeErrorHandler(handler: (error: AppError) => void): void;
// './parcels/mount-parcel.js'
export function mountRootParcel<ExtraProps = CustomProps>(
parcelConfig: ParcelConfig<ExtraProps>,
parcelProps: ParcelProps & ExtraProps
): Parcel<ExtraProps>;
export function pathToActiveWhen(
path: string,
exactMatch?: boolean
): ActivityFn;
}