UNPKG

jotai

Version:

👻 Next gen state management that will spook you

5 lines (4 loc) • 1.47 kB
System.register(["path","@babel/template"],function(d){"use strict";var n,o;return{setters:[function(i){n=i.default},function(i){o=i.default}],execute:function(){d("default",u);function i(t,e){if(t.isIdentifier(e)&&l.includes(e.name))return!0;if(t.isMemberExpression(e)){const{property:a}=e;if(t.isIdentifier(a)&&l.includes(a.name))return!0}return!1}const l=["abortableAtom","atom","atomFamily","atomWithDefault","atomWithHash","atomWithImmer","atomWithInfiniteQuery","atomWithMachine","atomWithMutation","atomWithObservable","atomWithProxy","atomWithQuery","atomWithReducer","atomWithReset","atomWithSubscription","atomWithStorage","atomWithStore","freezeAtom","loadable","selectAtom","splitAtom"],f=o.default||o;function u({types:t}){return{visitor:{ExportDefaultDeclaration(e,a){const{node:r}=e;if(t.isCallExpression(r.declaration)&&i(t,r.declaration.callee)){const s=a.filename||"unknown";let m=n.basename(s,n.extname(s));m==="index"&&(m=n.basename(n.dirname(s)));const c=f(` const %%atomIdentifier%% = %%atom%%; export default %%atomIdentifier%% `)({atomIdentifier:t.identifier(m),atom:r.declaration});e.replaceWithMultiple(c)}},VariableDeclarator(e){t.isIdentifier(e.node.id)&&t.isCallExpression(e.node.init)&&i(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))))}}}}}}});