UNPKG

mihawk

Version:

A tiny & simple mock server tool, support json,js,cjs,ts(typescript).

66 lines (65 loc) 2.53 kB
import type { IPackageJson } from 'package-json-type'; interface BaseLoadOption { noCache?: boolean; noLogPrint?: boolean; } /** * 加载 & 执行 json 文件,返回数据 * @param {string} jsonFilePath * @param {BaseLoadOption} options load 配置项 * @returns {object} */ export declare function loadJson(jsonFilePath: string, options?: BaseLoadOption): Promise<Record<string, any>>; /** * 加载 & 执行 js 文件,返回执行结果 * @param {string} jsFilePath * @param {BaseLoadOption} options load 配置项 * @returns {Promise<T|null>} */ export declare function loadJS<T = any>(jsFilePath: string, options?: BaseLoadOption): Promise<T>; /** * 加载&执行 ts 文件,返回执行结果 * - 注意,被加载的文件,最好有一个默认导出 * @param {string} tsFilePath * @param {BaseLoadOption} options load 配置项 * @returns {Promise<T|null>} */ export declare function loadTS<T = any>(tsFilePath: string, options?: BaseLoadOption): Promise<T>; /** * 刷新 json 文件缓存 * @param {string} jsonFilePath json文件路径 * @returns */ export declare function refreshJson(jsonFilePath: string): void; /** * 刷新 js|ts 文件缓存(以便于下次加载的时候,采用最新的文件) * @param {string} filePath */ export declare function refreshTsOrJs(filePath: string): void; /** * 启用 require ts 文件 * - 对 require.extensions['.ts'] 封装,以便于能够直接进行 require */ export declare function enableRequireTsFile(tsconfig?: TsConfig): void; /** * 读取本工程根目录下的文件 * @description * 为什么会有本函数? * - 因为源码情况下可以直接正常路径进行读取根目录下的文件,但是直接使用相对路径进行 require/import 都会导致在 tsc 之后,将对应被 import 的文件一并打包 * - 所以这里以绝对路径方式,进行 import/require 到唯一文件,而不会打包产生新的文件 * - tsc 之后,打包目录会是以 dist 开头,如 dist/cjs,dist/esm * - 所以,需要先计算出正确的”根目录绝对路径“,然后拼装目标文件路径 * * 详见 getRootAbsPath() 函数的逻辑实现 * * @param {string} relFilePath * @returns {Data} */ export declare function loadFileFromRoot<Data = any>(relFilePath: string): Data; /** * 读取本工程的 package.json 文件 * @returns {IPackageJson} package.json 文件内容 */ export declare function readPackageJson(): IPackageJson; type TsConfig = Record<string, any>; export {};