UNPKG

ast-delete-object

Version:

Delete all plain objects in AST if they contain a certain key/value pair

11 lines (9 loc) 1.25 kB
/** * @name ast-delete-object * @fileoverview Delete all plain objects in AST if they contain a certain key/value pair * @version 4.0.29 * @author Roy Revelt, Codsen Ltd * @license MIT * {@link https://codsen.com/os/ast-delete-object/} */ import u from"rfdc";import{compare as p}from"ast-compare";import{traverse as m}from"ast-monkey-traverse";import{isPlainObject as r}from"codsen-utils";var l="4.0.29";var J=l,h=u(),y={matchKeysStrictly:!1,hungryForWhitespace:!1};function w(i,e,o){if(!i)throw new Error("ast-delete-object/deleteObj(): [THROW_ID_01] Missing resolvedInput!");if(!e)throw new Error("ast-delete-object/deleteObj(): [THROW_ID_02] Missing second argument, object to search for and delete!");if(o&&!r(o))throw new Error("ast-delete-object/deleteObj(): [THROW_ID_03] Third argument, options object, must be an object!");let n={...y,...o},s=h(i),t;return r(s)&&r(e)&&p(s,e,{hungryForWhitespace:n.hungryForWhitespace,matchStrictly:n.matchKeysStrictly})?{}:(s=m(s,(a,c)=>{if(t=c!==void 0?c:a,r(t)){if(r(e)&&r(t)&&!Object.keys(e).length&&!Object.keys(t).length)return NaN;if(p(t,e,{hungryForWhitespace:n.hungryForWhitespace,matchStrictly:n.matchKeysStrictly}))return NaN}return t}),s)}export{y as defaults,w as deleteObj,J as version};