takin
Version:
Front end engineering base toolchain and scaffold
84 lines (83 loc) • 2.62 kB
TypeScript
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>;