You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					60 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					60 lines
				
				1.5 KiB
			| 
											3 years ago
										 | "use strict"; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, "__esModule", { | ||
|  |   value: true | ||
|  | }); | ||
|  | exports._assertUnremoved = _assertUnremoved; | ||
|  | exports._callRemovalHooks = _callRemovalHooks; | ||
|  | exports._markRemoved = _markRemoved; | ||
|  | exports._remove = _remove; | ||
|  | exports._removeFromScope = _removeFromScope; | ||
|  | exports.remove = remove; | ||
|  | var _removalHooks = require("./lib/removal-hooks"); | ||
|  | var _cache = require("../cache"); | ||
|  | var _index = require("./index"); | ||
|  | 
 | ||
|  | function remove() { | ||
|  |   var _this$opts; | ||
|  |   this._assertUnremoved(); | ||
|  |   this.resync(); | ||
|  |   if (!((_this$opts = this.opts) != null && _this$opts.noScope)) { | ||
|  |     this._removeFromScope(); | ||
|  |   } | ||
|  |   if (this._callRemovalHooks()) { | ||
|  |     this._markRemoved(); | ||
|  |     return; | ||
|  |   } | ||
|  |   this.shareCommentsWithSiblings(); | ||
|  |   this._remove(); | ||
|  |   this._markRemoved(); | ||
|  | } | ||
|  | function _removeFromScope() { | ||
|  |   const bindings = this.getBindingIdentifiers(); | ||
|  |   Object.keys(bindings).forEach(name => this.scope.removeBinding(name)); | ||
|  | } | ||
|  | function _callRemovalHooks() { | ||
|  |   for (const fn of _removalHooks.hooks) { | ||
|  |     if (fn(this, this.parentPath)) return true; | ||
|  |   } | ||
|  | } | ||
|  | function _remove() { | ||
|  |   if (Array.isArray(this.container)) { | ||
|  |     this.container.splice(this.key, 1); | ||
|  |     this.updateSiblingKeys(this.key, -1); | ||
|  |   } else { | ||
|  |     this._replaceWith(null); | ||
|  |   } | ||
|  | } | ||
|  | function _markRemoved() { | ||
|  |   this._traverseFlags |= _index.SHOULD_SKIP | _index.REMOVED; | ||
|  |   if (this.parent) _cache.path.get(this.parent).delete(this.node); | ||
|  |   this.node = null; | ||
|  | } | ||
|  | function _assertUnremoved() { | ||
|  |   if (this.removed) { | ||
|  |     throw this.buildCodeFrameError("NodePath has been removed so is read-only."); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | //# sourceMappingURL=removal.js.map
 |