UNPKG

@shockpkg/ria-packager

Version:

Package for creating Adobe AIR packages

123 lines (103 loc) 2.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultValue = defaultValue; exports.defaultNull = defaultNull; exports.defaultFalse = defaultFalse; exports.defaultTrue = defaultTrue; exports.trimDotSlash = trimDotSlash; exports.pathRelativeBase = pathRelativeBase; exports.pathRelativeBaseMatch = pathRelativeBaseMatch; exports.bufferToArrayBuffer = bufferToArrayBuffer; /** * Default value if value is undefined. * * @param value Value. * @param defaultValue Default value. * @returns Value or the default value if undefined. */ function defaultValue(value, defaultValue) { // eslint-disable-next-line no-undefined return value === undefined ? defaultValue : value; } /** * Default null if value is undefined. * * @param value Value. * @returns Value or null if undefined. */ function defaultNull(value) { return defaultValue(value, null); } /** * Default false if value is undefined. * * @param value Value. * @returns Value or false if undefined. */ function defaultFalse(value) { return defaultValue(value, false); } /** * Default true if value is undefined. * * @param value Value. * @returns Value or true if undefined. */ function defaultTrue(value) { return defaultValue(value, true); } /** * Trim dot flash from head of path. * * @param path Path string. * @returns Trimmed path. */ function trimDotSlash(path) { return path.replace(/^(\.\/)+/, ''); } /** * Find path relative from base, if base matches. * * @param path Path to match against. * @param start Search start. * @param nocase Match case-insensitive. * @returns Returns path, or null. */ function pathRelativeBase(path, start, nocase = false) { const p = trimDotSlash(nocase ? path.toLowerCase() : path); const s = trimDotSlash(nocase ? start.toLowerCase() : start); if (p === s) { return ''; } if (p.startsWith(`${s}/`)) { return path.substr(s.length + 1); } return null; } /** * Same as pathRelativeBase, but retuns true on a match, else false. * * @param path Path to match against. * @param start Search start. * @param nocase Match case-insensitive. * @returns Returns true on match, else false. */ function pathRelativeBaseMatch(path, start, nocase = false) { return pathRelativeBase(path, start, nocase) !== null; } /** * Get ArrayBuffer from Buffer. * * @param buffer Buffer instance. * @returns ArrayBuffer copy. */ function bufferToArrayBuffer(buffer) { const { byteOffset, byteLength } = buffer; return buffer.buffer.slice(byteOffset, byteOffset + byteLength); } //# sourceMappingURL=util.js.map