@trademe/ensure
Version:
31 lines (30 loc) • 2.88 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
export class EnsureError extends Error {
/**
* @param {?=} message
*/
constructor(message) {
super(dedent(message));
Object.setPrototypeOf(this, new.target.prototype);
}
}
/**
* @param {?} str
* @return {?}
*/
export function dedent(str) {
const /** @type {?} */ lines = str.split(/\n/);
const /** @type {?} */ minWhipeSpace = lines.reduce((p, n) => {
const /** @type {?} */ whitespaceCount = n.search(/\S/);
if (whitespaceCount < 0) {
return p;
}
return whitespaceCount < p ? whitespaceCount : p;
}, Infinity);
const /** @type {?} */ newLines = lines.map(l => l.substr(minWhipeSpace));
return newLines.join('\n');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLWVycm9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRyYWRlbWUvZW5zdXJlLyIsInNvdXJjZXMiOlsiZW5zdXJlLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLGtCQUFtQixTQUFRLEtBQUs7Ozs7SUFDbEMsWUFDSSxPQUFnQjtRQUVoQixLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdkIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNyRDtDQUNKOzs7OztBQUVELE1BQU0saUJBQWtCLEdBQVc7SUFDL0IsdUJBQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsdUJBQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDeEMsdUJBQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsRUFBRSxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNaO1FBQ0QsTUFBTSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3BELEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFYix1QkFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUN6RCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbnN1cmVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbWVzc2FnZT86IHN0cmluZ1xuICAgICkge1xuICAgICAgICBzdXBlcihkZWRlbnQobWVzc2FnZSkpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgbmV3LnRhcmdldC5wcm90b3R5cGUpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZGVudCAoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxpbmVzID0gc3RyLnNwbGl0KC9cXG4vKTtcbiAgICBjb25zdCBtaW5XaGlwZVNwYWNlID0gbGluZXMucmVkdWNlKChwLCBuKSA9PiB7XG4gICAgICAgIGNvbnN0IHdoaXRlc3BhY2VDb3VudCA9IG4uc2VhcmNoKC9cXFMvKTtcbiAgICAgICAgaWYgKHdoaXRlc3BhY2VDb3VudCA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB3aGl0ZXNwYWNlQ291bnQgPCBwID8gd2hpdGVzcGFjZUNvdW50IDogcDtcbiAgICB9LCBJbmZpbml0eSk7XG5cbiAgICBjb25zdCBuZXdMaW5lcyA9IGxpbmVzLm1hcChsID0+IGwuc3Vic3RyKG1pbldoaXBlU3BhY2UpKTtcbiAgICByZXR1cm4gbmV3TGluZXMuam9pbignXFxuJyk7XG59XG4iXX0=