
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
{"version":3,"names":["remove","_assertUnremoved","resync","opts","noScope","_removeFromScope","_callRemovalHooks","_markRemoved","shareCommentsWithSiblings","_remove","bindings","getBindingIdentifiers","Object","keys","forEach","name","scope","removeBinding","fn","hooks","parentPath","Array","isArray","container","splice","key","updateSiblingKeys","_replaceWith","_traverseFlags","SHOULD_SKIP","REMOVED","parent","pathCache","get","delete","node","removed","buildCodeFrameError"],"sources":["../../src/path/removal.ts"],"sourcesContent":["// This file contains methods responsible for removing a node.\n\nimport { hooks } from \"./lib/removal-hooks\";\nimport { path as pathCache } from \"../cache\";\nimport type NodePath from \"./index\";\nimport { REMOVED, SHOULD_SKIP } from \"./index\";\n\nexport function remove(this: NodePath) {\n this._assertUnremoved();\n\n this.resync();\n if (!this.opts?.noScope) {\n this._removeFromScope();\n }\n\n if (this._callRemovalHooks()) {\n this._markRemoved();\n return;\n }\n\n this.shareCommentsWithSiblings();\n this._remove();\n this._markRemoved();\n}\n\nexport function _removeFromScope(this: NodePath) {\n const bindings = this.getBindingIdentifiers();\n Object.keys(bindings).forEach(name => this.scope.removeBinding(name));\n}\n\nexport function _callRemovalHooks(this: NodePath) {\n for (const fn of hooks) {\n if (fn(this, this.parentPath)) return true;\n }\n}\n\nexport function _remove(this: NodePath) {\n if (Array.isArray(this.container)) {\n this.container.splice(this.key as number, 1);\n this.updateSiblingKeys(this.key as number, -1);\n } else {\n this._replaceWith(null);\n }\n}\n\nexport function _markRemoved(this: NodePath) {\n // this.shouldSkip = true; this.removed = true;\n this._traverseFlags |= SHOULD_SKIP | REMOVED;\n if (this.parent) pathCache.get(this.parent).delete(this.node);\n this.node = null;\n}\n\nexport function _assertUnremoved(this: NodePath) {\n if (this.removed) {\n throw this.buildCodeFrameError(\n \"NodePath has been removed so is read-only.\",\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;AAEA;;AACA;;AAEA;;AAEO,SAASA,MAAT,GAAgC;EAAA;;EACrC,KAAKC,gBAAL;;EAEA,KAAKC,MAAL;;EACA,IAAI,gBAAC,KAAKC,IAAN,aAAC,WAAWC,OAAZ,CAAJ,EAAyB;IACvB,KAAKC,gBAAL;EACD;;EAED,IAAI,KAAKC,iBAAL,EAAJ,EAA8B;IAC5B,KAAKC,YAAL;;IACA;EACD;;EAED,KAAKC,yBAAL;;EACA,KAAKC,OAAL;;EACA,KAAKF,YAAL;AACD;;AAEM,SAASF,gBAAT,GAA0C;EAC/C,MAAMK,QAAQ,GAAG,KAAKC,qBAAL,EAAjB;EACAC,MAAM,CAACC,IAAP,CAAYH,QAAZ,EAAsBI,OAAtB,CAA8BC,IAAI,IAAI,KAAKC,KAAL,CAAWC,aAAX,CAAyBF,IAAzB,CAAtC;AACD;;AAEM,SAAST,iBAAT,GAA2C;EAChD,KAAK,MAAMY,EAAX,IAAiBC,mBAAjB,EAAwB;IACtB,IAAID,EAAE,CAAC,IAAD,EAAO,KAAKE,UAAZ,CAAN,EAA+B,OAAO,IAAP;EAChC;AACF;;AAEM,SAASX,OAAT,GAAiC;EACtC,IAAIY,KAAK,CAACC,OAAN,CAAc,KAAKC,SAAnB,CAAJ,EAAmC;IACjC,KAAKA,SAAL,CAAeC,MAAf,CAAsB,KAAKC,GAA3B,EAA0C,CAA1C;IACA,KAAKC,iBAAL,CAAuB,KAAKD,GAA5B,EAA2C,CAAC,CAA5C;EACD,CAHD,MAGO;IACL,KAAKE,YAAL,CAAkB,IAAlB;EACD;AACF;;AAEM,SAASpB,YAAT,GAAsC;EAE3C,KAAKqB,cAAL,IAAuBC,kBAAA,GAAcC,cAArC;EACA,IAAI,KAAKC,MAAT,EAAiBC,WAAA,CAAUC,GAAV,CAAc,KAAKF,MAAnB,EAA2BG,MAA3B,CAAkC,KAAKC,IAAvC;EACjB,KAAKA,IAAL,GAAY,IAAZ;AACD;;AAEM,SAASlC,gBAAT,GAA0C;EAC/C,IAAI,KAAKmC,OAAT,EAAkB;IAChB,MAAM,KAAKC,mBAAL,CACJ,4CADI,CAAN;EAGD;AACF"}