@foxpage/foxpage-component-shared
Version:
foxpage component shared
44 lines (43 loc) • 1.36 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.setProcessEnv = exports.wrapPromise = exports.promiseTimeout = exports.caseStyle = exports.getKey = void 0;
const getKey = (obj, key) => {
return key.split('.').reduce((prev, subKey) => {
return prev && prev[subKey];
}, obj);
};
exports.getKey = getKey;
function caseStyle(input) {
const firstLetter = input[0];
const formated = input.substr(1).replace(/[-_][a-zA-Z]/g, match => match[1].toUpperCase());
return firstLetter.toUpperCase().concat(formated);
}
exports.caseStyle = caseStyle;
function promiseTimeout(promise, timeout) {
if (!timeout) {
return promise;
}
return Promise.race([
promise,
new Promise((_resolve, reject) => setTimeout(() => reject('timeout.'), timeout)),
]);
}
exports.promiseTimeout = promiseTimeout;
function wrapPromise(val) {
return val instanceof Promise ? val : Promise.resolve(val);
}
exports.wrapPromise = wrapPromise;
/**
* can not set process.env value to `undefined`, it will stringify to "undefined"
* if val not a valid string, delete this env
* @param name
* @param val
*/
const setProcessEnv = (name, val) => {
if (typeof val === 'string') {
process.env[name] = val;
}
else {
delete process.env[name];
}
};
exports.setProcessEnv = setProcessEnv;