mirror of
https://gitee.com/bootx/dax-pay-ui.git
synced 2025-09-09 13:40:06 +00:00
initial commit
This commit is contained in:
87
build/utils.ts
Normal file
87
build/utils.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
import fs from 'fs';
|
||||
import { networkInterfaces } from 'os';
|
||||
import dotenv from 'dotenv';
|
||||
|
||||
export const isFunction = (arg: unknown): arg is (...args: any[]) => any =>
|
||||
typeof arg === 'function';
|
||||
export const isRegExp = (arg: unknown): arg is RegExp =>
|
||||
Object.prototype.toString.call(arg) === '[object RegExp]';
|
||||
|
||||
/*
|
||||
* Read all files in the specified folder, filter through regular rules, and return file path array
|
||||
* @param root Specify the folder path
|
||||
* [@param] reg Regular expression for filtering files, optional parameters
|
||||
* Note: It can also be deformed to check whether the file path conforms to regular rules. The path can be a folder or a file. The path that does not exist is also fault-tolerant.
|
||||
*/
|
||||
export function readAllFile(root: string, reg: RegExp) {
|
||||
let resultArr: string[] = [];
|
||||
try {
|
||||
if (fs.existsSync(root)) {
|
||||
const stat = fs.lstatSync(root);
|
||||
if (stat.isDirectory()) {
|
||||
// dir
|
||||
const files = fs.readdirSync(root);
|
||||
files.forEach(function (file) {
|
||||
const t = readAllFile(root + '/' + file, reg);
|
||||
resultArr = resultArr.concat(t);
|
||||
});
|
||||
} else {
|
||||
if (reg !== undefined) {
|
||||
if (isFunction(reg.test) && reg.test(root)) {
|
||||
resultArr.push(root);
|
||||
}
|
||||
} else {
|
||||
resultArr.push(root);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {}
|
||||
|
||||
return resultArr;
|
||||
}
|
||||
|
||||
export function getIPAddress() {
|
||||
let interfaces = networkInterfaces();
|
||||
for (let devName in interfaces) {
|
||||
let iFace = interfaces[devName];
|
||||
if (!iFace) return;
|
||||
for (let i = 0; i < iFace.length; i++) {
|
||||
let alias = iFace[i];
|
||||
if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) {
|
||||
return alias.address;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
export function isDevFn(): boolean {
|
||||
return process.env.NODE_ENV === 'development';
|
||||
}
|
||||
|
||||
export function isProdFn(): boolean {
|
||||
return process.env.NODE_ENV === 'production';
|
||||
}
|
||||
|
||||
export function isReportMode(): boolean {
|
||||
return process.env.REPORT === 'true';
|
||||
}
|
||||
|
||||
export function loadEnv() {
|
||||
const env = process.env.NODE_ENV;
|
||||
const ret: any = {};
|
||||
const envList = [`.env.${env}.local`, `.env.${env}`, '.env.local', '.env', ,];
|
||||
envList.forEach((e) => {
|
||||
dotenv.config({
|
||||
path: e,
|
||||
});
|
||||
});
|
||||
|
||||
for (const envName of Object.keys(process.env)) {
|
||||
const realName = (process.env as any)[envName].replace(/\\n/g, '\n');
|
||||
ret[envName] = realName;
|
||||
process.env[envName] = realName;
|
||||
}
|
||||
return ret;
|
||||
}
|
Reference in New Issue
Block a user