107 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", {
 | 
						|
  value: true
 | 
						|
});
 | 
						|
var _exportNames = {
 | 
						|
  ParseErrorEnum: true,
 | 
						|
  Errors: true
 | 
						|
};
 | 
						|
exports.Errors = void 0;
 | 
						|
exports.ParseErrorEnum = ParseErrorEnum;
 | 
						|
var _location = require("./util/location");
 | 
						|
var _credentials = require("./parse-error/credentials");
 | 
						|
Object.keys(_credentials).forEach(function (key) {
 | 
						|
  if (key === "default" || key === "__esModule") return;
 | 
						|
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
 | 
						|
  if (key in exports && exports[key] === _credentials[key]) return;
 | 
						|
  Object.defineProperty(exports, key, {
 | 
						|
    enumerable: true,
 | 
						|
    get: function () {
 | 
						|
      return _credentials[key];
 | 
						|
    }
 | 
						|
  });
 | 
						|
});
 | 
						|
var _moduleErrors = require("./parse-error/module-errors");
 | 
						|
var _standardErrors = require("./parse-error/standard-errors");
 | 
						|
var _strictModeErrors = require("./parse-error/strict-mode-errors");
 | 
						|
var _pipelineOperatorErrors = require("./parse-error/pipeline-operator-errors");
 | 
						|
const _excluded = ["toMessage"],
 | 
						|
  _excluded2 = ["message"];
 | 
						|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
 | 
						|
function toParseErrorConstructor(_ref) {
 | 
						|
  let {
 | 
						|
      toMessage
 | 
						|
    } = _ref,
 | 
						|
    properties = _objectWithoutPropertiesLoose(_ref, _excluded);
 | 
						|
  return function constructor({
 | 
						|
    loc,
 | 
						|
    details
 | 
						|
  }) {
 | 
						|
    return (0, _credentials.instantiate)(SyntaxError, Object.assign({}, properties, {
 | 
						|
      loc
 | 
						|
    }), {
 | 
						|
      clone(overrides = {}) {
 | 
						|
        const loc = overrides.loc || {};
 | 
						|
        return constructor({
 | 
						|
          loc: new _location.Position("line" in loc ? loc.line : this.loc.line, "column" in loc ? loc.column : this.loc.column, "index" in loc ? loc.index : this.loc.index),
 | 
						|
          details: Object.assign({}, this.details, overrides.details)
 | 
						|
        });
 | 
						|
      },
 | 
						|
      details: {
 | 
						|
        value: details,
 | 
						|
        enumerable: false
 | 
						|
      },
 | 
						|
      message: {
 | 
						|
        get() {
 | 
						|
          return `${toMessage(this.details)} (${this.loc.line}:${this.loc.column})`;
 | 
						|
        },
 | 
						|
        set(value) {
 | 
						|
          Object.defineProperty(this, "message", {
 | 
						|
            value
 | 
						|
          });
 | 
						|
        }
 | 
						|
      },
 | 
						|
      pos: {
 | 
						|
        reflect: "loc.index",
 | 
						|
        enumerable: true
 | 
						|
      },
 | 
						|
      missingPlugin: "missingPlugin" in details && {
 | 
						|
        reflect: "details.missingPlugin",
 | 
						|
        enumerable: true
 | 
						|
      }
 | 
						|
    });
 | 
						|
  };
 | 
						|
}
 | 
						|
function ParseErrorEnum(argument, syntaxPlugin) {
 | 
						|
  if (Array.isArray(argument)) {
 | 
						|
    return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]);
 | 
						|
  }
 | 
						|
  const ParseErrorConstructors = {};
 | 
						|
  for (const reasonCode of Object.keys(argument)) {
 | 
						|
    const template = argument[reasonCode];
 | 
						|
    const _ref2 = typeof template === "string" ? {
 | 
						|
        message: () => template
 | 
						|
      } : typeof template === "function" ? {
 | 
						|
        message: template
 | 
						|
      } : template,
 | 
						|
      {
 | 
						|
        message
 | 
						|
      } = _ref2,
 | 
						|
      rest = _objectWithoutPropertiesLoose(_ref2, _excluded2);
 | 
						|
    const toMessage = typeof message === "string" ? () => message : message;
 | 
						|
    ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({
 | 
						|
      code: _credentials.ParseErrorCode.SyntaxError,
 | 
						|
      reasonCode,
 | 
						|
      toMessage
 | 
						|
    }, syntaxPlugin ? {
 | 
						|
      syntaxPlugin
 | 
						|
    } : {}, rest));
 | 
						|
  }
 | 
						|
  return ParseErrorConstructors;
 | 
						|
}
 | 
						|
const Errors = Object.assign({}, ParseErrorEnum(_moduleErrors.default), ParseErrorEnum(_standardErrors.default), ParseErrorEnum(_strictModeErrors.default), ParseErrorEnum`pipelineOperator`(_pipelineOperatorErrors.default));
 | 
						|
exports.Errors = Errors;
 | 
						|
 | 
						|
//# sourceMappingURL=parse-error.js.map
 |