UNPKG

takin

Version:

Front end engineering base toolchain and scaffold

84 lines (83 loc) 2.62 kB
import * as file from './file'; import * as git from './git'; import * as link from './link'; import * as npm from './npm'; import * as tar from './tar'; export declare type Downloader = { /** * 用于判断下载器可支持的 链接或协议 */ supportProtocol: (url: string) => boolean; /** * 下载模块 */ download: (...args: any[]) => Promise<void>; /** * 解析 url 或 下载选项 */ parseOptions: (urlOrOptions: any) => Record<string, any>; /** * 获取名称 */ getName: (options: any) => string; }; export { file, link, git, tar, npm }; /** * 注册新的下载器 * @param type - 下载器类型 * @param downloader - 下载器 */ export declare function registerDownloader(type: string, downloader: Downloader): void; /** * 获取下载模块名称 * @param type - 下载类型 * @param options - 下载配置 * @returns 模块名称 */ export declare function getModuleName(type: string, options: Record<string, any>): string; /** * 基于下载配置选择下载方式 * @param options - 下载配置 * @returns 下载类型 */ export declare function chooseDownloadType(options: Record<string, any>): string | void; /** * 获取所有下载类型 */ export declare function getAllDownloadTypes(): string[]; /** * 解析下载链接或选项 * @param type - 下载类型 * @param options - 下载链接或选项 * @returns 解析后的下载配置 */ export declare function parseOptions(type: string, options: string | Record<string, any>): Record<string, any>; /** * 尝试通过不同的方式下载模块 * @param type - 下载方式 * @param options - 下载配置 * @param dest - 下载地址 */ export declare function download(type: string, options: Record<string, any>, dest: string): Promise<void>; /** * 基于不同的下载方式解析下载链接或选项,并下载 * @param type - 下载方式 * @param urlOrOptions - 下载链接或选项 * @param dest - 下载地址 */ export declare function parseAndDownload(type: string, urlOrOptions: string | Record<string, any>, dest: string): Promise<void>; /** * 基于 url 自动判断支持的下载器类型及下载选项 * @param url - 下载链接或地址 * @returns 下载器类型及下载选项 */ export declare function autoDetectDownloaderTypeAndOptions(url: string): { type: string; options: Record<string, any>; }; /** * 自动基于不同的协议来下载模块 * @param url - 下载链接 * @param dest - 下载地址 */ export declare function tryDownloadByUrl(url: string, dest: string): Promise<void>;