@shockpkg/ria-packager
Version:
Package for creating Adobe AIR packages
102 lines (91 loc) • 2.27 kB
JavaScript
/**
* Default value if value is undefined.
*
* @param value Value.
* @param defaultValue Default value.
* @returns Value or the default value if undefined.
*/
export 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.
*/
export function defaultNull(value) {
return defaultValue(value, null);
}
/**
* Default false if value is undefined.
*
* @param value Value.
* @returns Value or false if undefined.
*/
export function defaultFalse(value) {
return defaultValue(value, false);
}
/**
* Default true if value is undefined.
*
* @param value Value.
* @returns Value or true if undefined.
*/
export function defaultTrue(value) {
return defaultValue(value, true);
}
/**
* Trim dot flash from head of path.
*
* @param path Path string.
* @returns Trimmed path.
*/
export 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.
*/
export 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.
*/
export function pathRelativeBaseMatch(path, start, nocase = false) {
return pathRelativeBase(path, start, nocase) !== null;
}
/**
* Get ArrayBuffer from Buffer.
*
* @param buffer Buffer instance.
* @returns ArrayBuffer copy.
*/
export function bufferToArrayBuffer(buffer) {
const {
byteOffset,
byteLength
} = buffer;
return buffer.buffer.slice(byteOffset, byteOffset + byteLength);
}
//# sourceMappingURL=util.mjs.map