UNPKG

noodl-loader

Version:

Loader for noodl applications

129 lines 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.url = exports.yaml = exports.stringInArray = exports.promise = exports.file = exports.video = exports.text = exports.script = exports.pdf = exports.json = exports.image = exports.typeOf = exports.fileSystemHost = exports.equalFileKey = void 0; const tslib_1 = require("tslib"); const noodl_core_1 = require("noodl-core"); const noodl_core_2 = require("noodl-core"); const regex_1 = tslib_1.__importDefault(require("../internal/regex")); const constants_1 = require("../constants"); /** * Returns true if two names are equivalent when comparing for existence in lists with/without the `.yml` extension * * @example * ```js * isEqualFileKey('www', 'www.yml') // true * isEqualFileKey('www', 'www') // true * isEqualFileKey('.yml', '') // true * isEqualFileKey('', '') // true * isEqualFileKey('www', 'wwww.yml') // false * isEqualFileKey('www', 'www.ymll') // false * isEqualFileKey('www', 'wwww') // false * isEqualFileKey('www', '') // false * isEqualFileKey('www.yml', '') // false * ``` */ function equalFileKey(v1, v2) { if (!noodl_core_2.is.str(v1) || !noodl_core_2.is.str(v2)) return false; if (v1 === v2) return true; if (!v1.endsWith('.yml')) v1 += '.yml'; if (!v2.endsWith('.yml')) v2 += '.yml'; return v1.replace(/_en/, '') === v2.replace(/_en/, ''); } exports.equalFileKey = equalFileKey; function fileSystemHost(value) { return (value !== null && typeof value === 'object' && (value === null || value === void 0 ? void 0 : value[constants_1.idKey]) === constants_1._id.fileSystemHost); } exports.fileSystemHost = fileSystemHost; function typeOf(value) { if (Array.isArray(value)) return 'array'; if (value === null) return 'null'; return typeof value; } exports.typeOf = typeOf; function image(value) { return noodl_core_1.is.str(value) && regex_1.default.image.test(value); } exports.image = image; function json(value) { return /\.json/i.test(value); } exports.json = json; function pdf(value) { return /\.pdf/i.test(value); } exports.pdf = pdf; function script(value) { return regex_1.default.script.test(value); } exports.script = script; function text(value) { return regex_1.default.text.test(value); } exports.text = text; function video(value) { return regex_1.default.video.test(value); } exports.video = video; function file(value) { if (!noodl_core_1.is.str(value)) return false; if (value.startsWith('file:')) return true; if (value.startsWith('http')) return false; try { new URL(value); return false; } catch (error) { } if (!value.includes('.') && !value.includes('/')) return false; if (value.startsWith('/') && value.length > 1) return true; if (value.startsWith('./')) return true; if (/\.(com|cn|co|de|dev|edu|gov|in|io|ly|me|net|org|uk|us)/i.test(value)) { return false; } return /^[a-zA-Z]/i.test(value) || regex_1.default.file.test(value); } exports.file = file; function promise(value) { return value !== null && typeof value === 'object' && 'then' in value; } exports.promise = promise; function stringInArray(arr, value) { if (Array.isArray(arr) && typeof value === 'string') { return arr.some((item) => item === value); } return false; } exports.stringInArray = stringInArray; function yaml(value) { if (!noodl_core_1.is.str(value)) return false; return value.endsWith('.yml'); } exports.yaml = yaml; function url(value) { if (typeof value !== 'string' && !(value instanceof URL)) return false; let url; try { url = new URL(value); } catch (_) { return false; } return url.protocol === 'http:' || url.protocol === 'https:'; } exports.url = url; //# sourceMappingURL=is.js.map