UNPKG

lemon-devkit

Version:

Lemon Serverless Micro-Service Platform for local development

74 lines 2.4 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadJsonSync = exports.getRunParam = void 0; /** * `lib/tools.ts` * - additional helper. * * ex: * ```ts * const environ = require('lemon-core/dist/environ').default; * const $env = environ(process) * ``` * * @author Steve <steve@lemoncloud.io> * @date 2025-05-20 optimize for `lemon-core#v4` * * @copyright (C) lemoncloud.io 2025 - All Rights Reserved. */ const fs_1 = __importDefault(require("fs")); /** * get running parameter like -h api. */ const getRunParam = (o, defval, argv) => { // export function getRunParam<U extends boolean | number | string | object>(o: string, defval: U, argv?: string[]): U { // eslint-disable-next-line no-param-reassign argv = argv || process.argv || []; // use scope. const nm = `-${o}`; let i = argv.indexOf(nm); i = i > 0 ? i : argv.indexOf(o); i = i >= 0 ? i : argv.indexOf(`-${nm}`); // lookup -o => --o. if (i >= 0) { const val = argv[i + 1]; if (typeof defval === 'boolean') { // transform to boolean. return val === 'true' || val === 't' || val === 'y' || val === '1'; } else if (typeof defval === 'number') { // convert to integer. return Math.round(Number(val) / 1); } else if (typeof defval === 'object') { // array or object if ((val.startsWith('[') && val.endsWith(']')) || (val.startsWith('{') && val.endsWith('}'))) return JSON.parse(val); else if (Array.isArray(defval)) return `${val}`.split(', '); else return { value: val }; } return val; } return defval; }; exports.getRunParam = getRunParam; /** * load json in sync. */ const loadJsonSync = (name, def = {}) => { name = !name.startsWith('./') ? `./${name}` : name; try { const rawdata = fs_1.default.readFileSync(name); return JSON.parse(rawdata.toString()); } catch (e) { if (def && typeof def === 'object') def.error = `${e.message || e}`; return def; } }; exports.loadJsonSync = loadJsonSync; //# sourceMappingURL=shared.js.map