@foxpage/foxpage-node-sdk
Version:
foxpage node sdk
84 lines (83 loc) • 2.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.config = exports.defineConfig = void 0;
const path_1 = require("path");
const fs_extra_1 = require("fs-extra");
const lodash_1 = require("lodash");
const logger_1 = require("../logger");
const logger = (0, logger_1.createLogger)('Config');
/**
* Foxpage Node SDK default config
*/
const defaultConfig = {
// foxpage applications
apps: [
{
appId: '',
options: {},
},
],
// data service
dataService: {
host: '',
path: '', // api path
},
// pm2 config
pm2: {
enable: true,
name: '', // process name
},
plugins: ['@foxpage/foxpage-plugin-function-parse', '@foxpage/foxpage-plugin-urlquery-parse'],
commonPluginDir: '',
logger: {
level: logger_1.LOGGER_LEVEL.ERROR,
},
reporter: {
enable: true,
// report time
// intervalTime: 30 * 60 * 1000,
},
};
let configs = (0, lodash_1.clone)(defaultConfig);
const config = {
async init() {
try {
const filenames = ['.foxpagerc.js', 'foxpage.config.js'];
const tasks = filenames.map(async (filename) => {
const path = (0, path_1.join)(process.cwd(), filename);
const exist = await (0, fs_extra_1.pathExists)(path);
return { path, exist };
});
const result = await (await Promise.all(tasks)).find(item => item.exist);
if (result && result.exist) {
const defineC = require(result.path);
logger.info('app provider config');
logger.debug('app provider config:', JSON.stringify(defineC));
configs = (0, lodash_1.merge)(configs, defineC);
return;
}
const msg = 'Not provider foxpage config file';
const err = new Error(msg);
logger.error('config init failed.', err);
throw err;
}
catch (e) {
logger.error('Read define config failed:', e);
throw e;
}
},
get(key) {
return configs[key];
},
};
exports.config = config;
/**
* define config
* @param config custom configs
*/
const defineConfig = (config) => {
const defaultC = (0, lodash_1.clone)(defaultConfig);
return Object.assign({}, defaultC, config);
};
exports.defineConfig = defineConfig;
exports.default = config;