grunt-systemjs-builder
Version:
grunt task for building projects based on systemjs
213 lines (160 loc) • 5.4 kB
JavaScript
/* */
"format cjs";
"use strict";
exports.__esModule = true;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
// istanbul ignore next
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj["default"] = obj; return newObj; } }
// istanbul ignore next
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var _libVirtualTypes = require("./lib/virtual-types");
var virtualTypes = _interopRequireWildcard(_libVirtualTypes);
var _index = require("../index");
var _index2 = _interopRequireDefault(_index);
var _lodashObjectAssign = require("lodash/object/assign");
var _lodashObjectAssign2 = _interopRequireDefault(_lodashObjectAssign);
var _scope = require("../scope");
var _scope2 = _interopRequireDefault(_scope);
var _types = require("../../types");
var t = _interopRequireWildcard(_types);
/**
* [Please add a description.]
*/
var NodePath = (function () {
/**
* [Please add a description.]
*/
function NodePath(hub, parent) {
_classCallCheck(this, NodePath);
this.contexts = [];
this.parent = parent;
this.data = {};
this.hub = hub;
this.shouldSkip = false;
this.shouldStop = false;
this.removed = false;
this.state = null;
this.opts = null;
this.skipKeys = null;
this.parentPath = null;
this.context = null;
this.container = null;
this.listKey = null;
this.inList = false;
this.parentKey = null;
this.key = null;
this.node = null;
this.scope = null;
this.type = null;
this.typeAnnotation = null;
}
/**
* [Please add a description.]
*/
/**
* [Please add a description.]
*/
NodePath.get = function get(_ref) {
var hub = _ref.hub;
var parentPath = _ref.parentPath;
var parent = _ref.parent;
var container = _ref.container;
var listKey = _ref.listKey;
var key = _ref.key;
if (!hub && parentPath) {
hub = parentPath.hub;
}
var targetNode = container[key];
var paths = parent._paths = parent._paths || [];
var path;
for (var i = 0; i < paths.length; i++) {
var pathCheck = paths[i];
if (pathCheck.node === targetNode) {
path = pathCheck;
break;
}
}
if (!path) {
path = new NodePath(hub, parent);
paths.push(path);
}
path.setup(parentPath, container, listKey, key);
return path;
};
/**
* [Please add a description.]
*/
NodePath.prototype.getScope = function getScope(scope) {
var ourScope = scope;
// we're entering a new scope so let's construct it!
if (this.isScope()) {
ourScope = new _scope2["default"](this, scope);
}
return ourScope;
};
/**
* [Please add a description.]
*/
NodePath.prototype.setData = function setData(key, val) {
return this.data[key] = val;
};
/**
* [Please add a description.]
*/
NodePath.prototype.getData = function getData(key, def) {
var val = this.data[key];
if (!val && def) val = this.data[key] = def;
return val;
};
/**
* [Please add a description.]
*/
NodePath.prototype.errorWithNode = function errorWithNode(msg) {
var Error = arguments.length <= 1 || arguments[1] === undefined ? SyntaxError : arguments[1];
return this.hub.file.errorWithNode(this.node, msg, Error);
};
/**
* [Please add a description.]
*/
NodePath.prototype.traverse = function traverse(visitor, state) {
_index2["default"](this.node, visitor, this.scope, state, this);
};
return NodePath;
})();
exports["default"] = NodePath;
_lodashObjectAssign2["default"](NodePath.prototype, require("./ancestry"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./inference"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./replacement"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./evaluation"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./conversion"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./introspection"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./context"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./removal"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./modification"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./family"));
_lodashObjectAssign2["default"](NodePath.prototype, require("./comments"));
var _arr = t.TYPES;
var _loop = function () {
var type = _arr[_i];
var typeKey = "is" + type;
NodePath.prototype[typeKey] = function (opts) {
return t[typeKey](this.node, opts);
};
};
for (var _i = 0; _i < _arr.length; _i++) {
_loop();
}
var _loop2 = function (type) {
if (type[0] === "_") return "continue";
if (t.TYPES.indexOf(type) < 0) t.TYPES.push(type);
NodePath.prototype["is" + type] = function (opts) {
return virtualTypes[type].checkPath(this, opts);
};
};
for (var type in virtualTypes) {
var _ret2 = _loop2(type);
// istanbul ignore next
if (_ret2 === "continue") continue;
}
module.exports = exports["default"];