@liangskyli/utils
Version:
@liangskyli/utils
172 lines (163 loc) • 5.24 kB
JavaScript
;
var address = require('address');
var colors = require('colors');
var debug = require('debug');
var lodash = require('lodash');
var signale = require('signale');
var node_module = require('node:module');
var node = require('esbuild-register/dist/node');
var fs = require('fs-extra');
var path = require('node:path');
var prettier = require('prettier');
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var colors__default = /*#__PURE__*/_interopDefault(colors);
var debug__default = /*#__PURE__*/_interopDefault(debug);
var lodash__default = /*#__PURE__*/_interopDefault(lodash);
var signale__default = /*#__PURE__*/_interopDefault(signale);
var fs__default = /*#__PURE__*/_interopDefault(fs);
var path__default = /*#__PURE__*/_interopDefault(path);
var prettier__default = /*#__PURE__*/_interopDefault(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 = node.register({
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$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));
const getConfig = (configFile) => {
let config = null;
const { unregister } = register({ key: 'utils-getConfig' });
let errInfo = null;
try {
config = require$1(configFile).default;
}
catch (err) {
errInfo = err;
}
finally {
unregister();
}
if (errInfo !== null) {
throw errInfo;
}
return config;
};
const getAbsolutePath = (pathName) => {
return path__default.default.isAbsolute(pathName)
? pathName
: path__default.default.join(process.cwd(), pathName);
};
const getRelativePath = (absolutePath1, absolutePath2) => {
return path__default.default.relative(absolutePath1, absolutePath2);
};
const prettierData = async (fileContent, options) => {
const configFile = await prettier__default.default.resolveConfigFile();
let configFileOptions = null;
if (configFile !== null) {
configFileOptions = await prettier__default.default.resolveConfig(configFile);
}
if (options === undefined) {
options = { parser: 'typescript' };
}
if (!options.parser) {
options.parser = 'typescript';
}
if (configFileOptions !== null) {
options = Object.assign({}, configFileOptions, options);
}
return prettier__default.default.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__default.default.readdirSync(dir);
}
catch {
fs__default.default.mkdirsSync(dir);
}
items.forEach((item) => {
if (item !== 'custom-data') {
fs__default.default.removeSync(path__default.default.join(dir, item));
}
});
};
Object.defineProperty(exports, "ip", {
enumerable: true,
get: function () { return address.ip; }
});
Object.defineProperty(exports, "colors", {
enumerable: true,
get: function () { return colors__default.default; }
});
Object.defineProperty(exports, "createDebug", {
enumerable: true,
get: function () { return debug__default.default; }
});
Object.defineProperty(exports, "lodash", {
enumerable: true,
get: function () { return lodash__default.default; }
});
Object.defineProperty(exports, "signale", {
enumerable: true,
get: function () { return signale__default.default; }
});
exports.copyOptions = copyOptions;
exports.getAbsolutePath = getAbsolutePath;
exports.getConfig = getConfig;
exports.getRelativePath = getRelativePath;
exports.prettierData = prettierData;
exports.register = register$1;
exports.removeFilesSync = removeFilesSync;
exports.winPath = winPath;