@trademe/ensure
Version:
34 lines (33 loc) • 3.14 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
var EnsureError = /** @class */ (function (_super) {
tslib_1.__extends(EnsureError, _super);
function EnsureError(message) {
var _newTarget = this.constructor;
var _this = _super.call(this, dedent(message)) || this;
Object.setPrototypeOf(_this, _newTarget.prototype);
return _this;
}
return EnsureError;
}(Error));
export { EnsureError };
/**
* @param {?} str
* @return {?}
*/
export function dedent(str) {
var /** @type {?} */ lines = str.split(/\n/);
var /** @type {?} */ minWhipeSpace = lines.reduce(function (p, n) {
var /** @type {?} */ whitespaceCount = n.search(/\S/);
if (whitespaceCount <= 0) {
return p;
}
return whitespaceCount < p ? whitespaceCount : p;
}, Infinity);
var /** @type {?} */ newLines = lines.map(function (l) { return l.substr(minWhipeSpace); });
return newLines.join('\n');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLWVycm9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRyYWRlbWUvZW5zdXJlLyIsInNvdXJjZXMiOlsiZW5zdXJlLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBQTtJQUFpQyx1Q0FBSztJQUNsQyxxQkFDSSxPQUFnQjs7UUFEcEIsWUFHSSxrQkFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FFekI7UUFERyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUksRUFBRSxXQUFXLFNBQVMsQ0FBQyxDQUFDOztLQUNyRDtzQkFOTDtFQUFpQyxLQUFLLEVBT3JDLENBQUE7QUFQRCx1QkFPQzs7Ozs7QUFFRCxNQUFNLGlCQUFrQixHQUFXO0lBQy9CLHFCQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLHFCQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEMscUJBQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsRUFBRSxDQUFDLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNaO1FBQ0QsTUFBTSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3BELEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFYixxQkFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQXZCLENBQXVCLENBQUMsQ0FBQztJQUN6RCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbnN1cmVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbWVzc2FnZT86IHN0cmluZ1xuICAgICkge1xuICAgICAgICBzdXBlcihkZWRlbnQobWVzc2FnZSkpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgbmV3LnRhcmdldC5wcm90b3R5cGUpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZGVudCAoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxpbmVzID0gc3RyLnNwbGl0KC9cXG4vKTtcbiAgICBjb25zdCBtaW5XaGlwZVNwYWNlID0gbGluZXMucmVkdWNlKChwLCBuKSA9PiB7XG4gICAgICAgIGNvbnN0IHdoaXRlc3BhY2VDb3VudCA9IG4uc2VhcmNoKC9cXFMvKTtcbiAgICAgICAgaWYgKHdoaXRlc3BhY2VDb3VudCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd2hpdGVzcGFjZUNvdW50IDwgcCA/IHdoaXRlc3BhY2VDb3VudCA6IHA7XG4gICAgfSwgSW5maW5pdHkpO1xuXG4gICAgY29uc3QgbmV3TGluZXMgPSBsaW5lcy5tYXAobCA9PiBsLnN1YnN0cihtaW5XaGlwZVNwYWNlKSk7XG4gICAgcmV0dXJuIG5ld0xpbmVzLmpvaW4oJ1xcbicpO1xufVxuIl19