UNPKG

jotai

Version:

👻 Next gen state management that will spook you

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