mihawk
Version:
A tiny & simple mock server tool, support json,js,cjs,ts(typescript).
66 lines (65 loc) • 2.53 kB
TypeScript
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 {};