jotai
Version:
👻 Next gen state management that will spook you
2 lines (1 loc) • 1.85 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("path"),require("@babel/template")):"function"==typeof define&&define.amd?define(["exports","path","@babel/template"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["jotaiPlugin-debug-label"]={},e.path,e._templateBuilder)}(this,(function(e,t,i){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(t),o=a(i);function r(e,t){if(e.isIdentifier(t)&&l.includes(t.name))return!0;if(e.isMemberExpression(t)){var i=t.property;if(e.isIdentifier(i)&&l.includes(i.name))return!0}return!1}var l=["abortableAtom","atom","atomFamily","atomWithDefault","atomWithHash","atomWithImmer","atomWithInfiniteQuery","atomWithMachine","atomWithMutation","atomWithObservable","atomWithProxy","atomWithQuery","atomWithReducer","atomWithReset","atomWithSubscription","atomWithStorage","atomWithStore","freezeAtom","loadable","selectAtom","splitAtom"],d=o.default.default||o.default;e.default=function(e){var t=e.types;return{visitor:{ExportDefaultDeclaration:function(e,i){var a=e.node;if(t.isCallExpression(a.declaration)&&r(t,a.declaration.callee)){var o=i.filename||"unknown",l=n.default.basename(o,n.default.extname(o));"index"===l&&(l=n.default.basename(n.default.dirname(o)));var f=d("\n const %%atomIdentifier%% = %%atom%%;\n export default %%atomIdentifier%%\n ")({atomIdentifier:t.identifier(l),atom:a.declaration});e.replaceWithMultiple(f)}},VariableDeclarator:function(e){t.isIdentifier(e.node.id)&&t.isCallExpression(e.node.init)&&r(t,e.node.init.callee)&&e.parentPath.insertAfter(t.expressionStatement(t.assignmentExpression("=",t.memberExpression(t.identifier(e.node.id.name),t.identifier("debugLabel")),t.stringLiteral(e.node.id.name))))}}}},Object.defineProperty(e,"__esModule",{value:!0})}));