UNPKG

@liangskyli/utils

Version:
132 lines (126 loc) 3.52 kB
export { ip } from 'address'; export { default as colors } from 'colors'; export { default as createDebug } from 'debug'; export { default as lodash } from 'lodash'; export { default as signale } from 'signale'; import { createRequire } from 'node:module'; import { register as register$2 } from 'esbuild-register/dist/node'; import fs from 'fs-extra'; import path from 'node:path'; import prettier from 'prettier'; let revertList = []; const register = (opts) => { const { key, ...otherOpts } = opts; if (revertList.filter((item) => item.key === key).length > 0) { throw Error('register key have exist!'); } const revert = register$2({ target: `node${process.version.slice(1)}`, ...otherOpts, }).unregister; revertList.push({ key, revert }); const unregister = () => { revert(); revertList = revertList.filter((item) => item.key !== key); }; return { unregister, }; }; const restore = () => { revertList.forEach(({ revert }) => { revert(); }); revertList = []; }; const unregister = (key) => { revertList = revertList .map((item) => { if (item.key === key) { item.revert(); return true; } else { return item; } }) .filter((item) => item !== true); }; var register$1 = /*#__PURE__*/Object.freeze({ __proto__: null, register: register, restore: restore, unregister: unregister }); const require = createRequire(import.meta.url); const getConfig = (configFile) => { let config = null; const { unregister } = register({ key: 'utils-getConfig' }); let errInfo = null; try { config = require(configFile).default; } catch (err) { errInfo = err; } finally { unregister(); } if (errInfo !== null) { throw errInfo; } return config; }; const getAbsolutePath = (pathName) => { return path.isAbsolute(pathName) ? pathName : path.join(process.cwd(), pathName); }; const getRelativePath = (absolutePath1, absolutePath2) => { return path.relative(absolutePath1, absolutePath2); }; const prettierData = async (fileContent, options) => { const configFile = await prettier.resolveConfigFile(); let configFileOptions = null; if (configFile !== null) { configFileOptions = await prettier.resolveConfig(configFile); } if (options === undefined) { options = { parser: 'typescript' }; } if (!options.parser) { options.parser = 'typescript'; } if (configFileOptions !== null) { options = Object.assign({}, configFileOptions, options); } return prettier.format(fileContent, options); }; const copyOptions = (options) => { if (options !== undefined) { options = Object.assign({}, options); } return options; }; const winPath = (pathStr) => { const isExtendedLengthPath = /^\\\\\?\\/.test(pathStr); if (isExtendedLengthPath) { return pathStr; } return pathStr.replace(/\\/g, '/'); }; const removeFilesSync = (dir) => { let items = []; try { items = fs.readdirSync(dir); } catch { fs.mkdirsSync(dir); } items.forEach((item) => { if (item !== 'custom-data') { fs.removeSync(path.join(dir, item)); } }); }; export { copyOptions, getAbsolutePath, getConfig, getRelativePath, prettierData, register$1 as register, removeFilesSync, winPath };