UNPKG

ran-boilerplate

Version:

React . Apollo (GraphQL) . Next.js Toolkit

84 lines (82 loc) 2.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ERROR_NAME = 'FirebaseError'; var captureStackTrace = Error .captureStackTrace; // Export for faking in tests function patchCapture(captureFake) { var result = captureStackTrace; captureStackTrace = captureFake; return result; } exports.patchCapture = patchCapture; var FirebaseError = /** @class */ (function () { function FirebaseError(code, message) { this.code = code; this.message = message; var stack; // We want the stack value, if implemented by Error if (captureStackTrace) { // Patches this.stack, omitted calls above ErrorFactory#create captureStackTrace(this, ErrorFactory.prototype.create); } else { var err_1 = Error.apply(this, arguments); this.name = ERROR_NAME; // Make non-enumerable getter for the property. Object.defineProperty(this, 'stack', { get: function () { return err_1.stack; } }); } } return FirebaseError; }()); exports.FirebaseError = FirebaseError; // Back-door inheritance FirebaseError.prototype = Object.create(Error.prototype); FirebaseError.prototype.constructor = FirebaseError; FirebaseError.prototype.name = ERROR_NAME; var ErrorFactory = /** @class */ (function () { function ErrorFactory(service, serviceName, errors) { this.service = service; this.serviceName = serviceName; this.errors = errors; // Matches {$name}, by default. this.pattern = /\{\$([^}]+)}/g; // empty } ErrorFactory.prototype.create = function (code, data) { if (data === undefined) { data = {}; } var template = this.errors[code]; var fullCode = this.service + '/' + code; var message; if (template === undefined) { message = 'Error'; } else { message = template.replace(this.pattern, function (match, key) { var value = data[key]; return value !== undefined ? value.toString() : '<' + key + '?>'; }); } // Service: Error message (service/code). message = this.serviceName + ': ' + message + ' (' + fullCode + ').'; var err = new FirebaseError(fullCode, message); // Populate the Error object with message parts for programmatic // accesses (e.g., e.file). for (var prop in data) { if (!data.hasOwnProperty(prop) || prop.slice(-1) === '_') { continue; } err[prop] = data[prop]; } return err; }; return ErrorFactory; }()); exports.ErrorFactory = ErrorFactory; //# sourceMappingURL=errors.js.map