@etsoo/appscript
Version:
Applications shared TypeScript framework
67 lines (66 loc) • 1.68 kB
TypeScript
/**
* External endpoint
*/
export type ExternalEndpoint = {
/**
* API endpoint
*/
readonly endpoint: string;
/**
* Web url
*/
readonly webUrl: string;
};
/**
* External settings items
*/
export interface IExternalSettings extends ExternalEndpoint {
/**
* Message hub endpoint
*/
readonly messageHub?: string;
/**
* App root url
*/
readonly homepage: string;
/**
* Default hostname for substitution
* 用于替换的默认主机名
*/
hostname?: string;
/**
* Endpoints to other services
*/
readonly endpoints?: Record<"platform" | "core" | "admin" | "finance" | "crm" | "oa" | "agile" | string, ExternalEndpoint>;
}
/**
* External settings namespace
*/
export declare namespace ExternalSettings {
/**
* Sub domain match regular expression
*/
let subDomainMatch: RegExp;
/**
* Create settings instance
* @param settings Settings
* @returns Result
*/
function create<T extends IExternalSettings = IExternalSettings>(settings?: unknown, hostname?: string): T;
/**
* Format the app
* @param hostname Hostname
* @param app App key
* @param endpoint Endpoint
* @returns Result
*/
function formatApp(hostname: string, app: string, endpoint: string): string;
/**
* Format the host
* @param setting Setting
* @param hostname Hostname
* @returns Result
*/
function formatHost(setting: string, hostname: string): string;
function formatHost(setting: Record<string, ExternalEndpoint>, hostname?: string | null): Record<string, ExternalEndpoint>;
}