1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- declare var preval: Function
- /**
- * Parse errors.md and turn it into a simple hash of code: message
- * @private
- */
- const ERRORS = preval`
- const fs = require('fs');
- const md = fs.readFileSync(__dirname + '/errors.md', 'utf8');
- module.exports = md.split(/^
- const [, code, message] = str.split(/^.*?(\\d+)\\s*\\n/)
- errors[code] = message
- return errors;
- }, {});
- `
- function format(...args) {
- let a = args[0]
- const b = []
- let c
- for (c = 1; c < args.length; c += 1) {
- b.push(args[c])
- }
- b.forEach(d => {
- a = a.replace(/%[a-z]/, d)
- })
- return a
- }
- export default class PolishedError extends Error {
- constructor(code: string | number, ...args: Array<any>) {
- if (process.env.NODE_ENV === 'production') {
- super(
- `An error occurred. See https:
- )
- } else {
- super(format(ERRORS[code], ...args))
- }
- }
- }
|