@shockpkg/ria-packager
Version:
Package for creating Adobe AIR packages
123 lines (103 loc) • 2.63 kB
JavaScript
;
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