UNPKG

@foxpage/foxpage-node-sdk

Version:

foxpage node sdk

84 lines (83 loc) 2.49 kB
"use strict"; 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;