@agnostack/next-zcli
Version:
Please contact agnoStack via info@agnostack.com for any questions
72 lines • 3.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isTrue = exports.stringEmpty = exports.stringNotEmpty = exports.stringEmptyOnly = exports.stringNotEmptyOnly = exports.removeTrailingSlash = exports.removeLeadingSlash = exports.cleanURL = exports.cleanObject = exports.objectNotEmpty = exports.objectEmpty = exports.ensureObject = exports.ensureArray = exports.ensureStringOnly = exports.ensureString = exports.isType = exports.getInteger = exports.getGUID = void 0;
/* eslint-disable no-use-before-define */
const uuid_1 = require("uuid");
const getGUID = () => ((0, uuid_1.v4)());
exports.getGUID = getGUID;
const getInteger = () => ((0, exports.getGUID)().replace(/\D/g, ''));
exports.getInteger = getInteger;
const isType = (value, type) => (
// eslint-disable-next-line eqeqeq, valid-typeof
value != undefined && typeof value === type);
exports.isType = isType;
// TODO: keep in sync w/ lib-core
const ensureString = (string) => (string ? `${string}` : '');
exports.ensureString = ensureString;
// HMMM: what if 'string' is an object?
const ensureStringOnly = (string) => (
// eslint-disable-next-line eqeqeq
(string != undefined) ? `${string}` : '');
exports.ensureStringOnly = ensureStringOnly;
const ensureArray = (array = []) => (
// eslint-disable-next-line no-nested-ternary
!array ? [] : Array.isArray(array) ? array : [array]);
exports.ensureArray = ensureArray;
const ensureObject = (object) => (object !== null && object !== void 0 ? object : {});
exports.ensureObject = ensureObject;
const objectEmpty = (object) => (!object || !Object.keys(object).length);
exports.objectEmpty = objectEmpty;
const objectNotEmpty = (object) => (!(0, exports.objectEmpty)(object));
exports.objectNotEmpty = objectNotEmpty;
const cleanObject = (object) => (Object.entries((0, exports.ensureObject)(object)).reduce((_cleanedObject, [key, _value]) => {
// eslint-disable-next-line eqeqeq
if (_value == undefined) {
return _cleanedObject; // skip key if null or undefined
}
const value = Array.isArray(_value)
? _value.reduce((_data, __value) => ([
..._data,
cleanObjectValue(__value)
]), [])
: cleanObjectValue(_value);
return Object.assign(Object.assign({}, _cleanedObject), { [key]: value });
}, {}));
exports.cleanObject = cleanObject;
const cleanObjectValue = (value) => ((0, exports.isType)(value, 'object') ? (0, exports.cleanObject)(value) : value);
const cleanURL = (string) => ((0, exports.ensureString)(string).replace(/(?<!:)\/+/gm, '/'));
exports.cleanURL = cleanURL;
const removeLeadingSlash = (string) => ((0, exports.ensureString)(string).replace(/^\//, ''));
exports.removeLeadingSlash = removeLeadingSlash;
const removeTrailingSlash = (string) => ((0, exports.ensureString)(string).replace(/\/+$/, ''));
exports.removeTrailingSlash = removeTrailingSlash;
const stringNotEmptyOnly = (stringable) => {
const string = (0, exports.ensureStringOnly)(stringable);
return ((string.length > 0) && !['null', 'undefined'].includes(string));
};
exports.stringNotEmptyOnly = stringNotEmptyOnly;
const stringEmptyOnly = (stringable) => (!(0, exports.stringNotEmptyOnly)(stringable));
exports.stringEmptyOnly = stringEmptyOnly;
const stringNotEmpty = (stringable) => {
const string = (0, exports.ensureString)(stringable);
return ((string.length > 0) && !['null', 'undefined'].includes(string));
};
exports.stringNotEmpty = stringNotEmpty;
const stringEmpty = (stringable) => (!(0, exports.stringNotEmpty)(stringable));
exports.stringEmpty = stringEmpty;
const isTrue = (value, falsy) => {
const string = (0, exports.ensureString)(value);
return ![...(0, exports.ensureArray)(falsy), '', 'false'].includes(string);
};
exports.isTrue = isTrue;
//# sourceMappingURL=display.js.map