@atlaspack/babel-plugin-transform-contextual-imports 2.12.1-canary.3458 → 2.12.1-dev.3478
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +1 -1
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;AAaA,MAAMO,iCAAWA,CAACF;IAChB,OAAO,YAAYA,QAAQA,KAAKF,MAAM;AACxC;IAEA,2CAAeF,CAAAA,GAAAA,qCAAAA,EAAQ,CAACO;IACtB,MAAM,EAACC,OAAOC,CAAPD,EAAS,GAAGD;IAEnB,MAAMG,oBAAoBA,CACxBC,MACAE,QACAC,UAEAL,EAAEM,qBAAqB,CACrBN,EAAEO,iBAAiB,CACjB,MACAP,EAAEQ,gBAAgB,CAACR,EAAES,UAAU,CAAC,eAAeT,EAAES,UAAU,CAAC,aAC5DT,EAAEU,cAAc,CACdV,EAAEQ,gBAAgB,CAChBR,EAAES,UAAU,CAAC,eACbT,EAAES,UAAU,CAAC,aAEf;YAACP;SACH,IAEFF,EAAEQ,gBAAgB,CAChBR,EAAEU,cAAc,CAACV,EAAES,UAAU,CAAC,YAAY;YAACL;SAAO,GAClDJ,EAAES,UAAU,CAAC,aAEfT,EAAEQ,gBAAgB,CAChBR,EAAEU,cAAc,CAACV,EAAES,UAAU,CAAC,YAAY;YAACJ;SAAQ,GACnDL,EAAES,UAAU,CAAC;IAInB,MAAME,oBAAoBA,CACxBC,UACAV,MACAE,QACAC,UACG;YACH,mCAAA;YACAL,EAAEa,mBAAmB,CAAC,SAAS;gBAC7Bb,EAAEc,kBAAkB,CAClBd,EAAES,UAAU,CAACG,WACbZ,EAAEe,gBAAgB,CAAC;oBACjBf,EAAEgB,cAAc,CACdhB,EAAES,UAAU,CAAC,WACbT,EAAEQ,gBAAgB,CAChBR,EAAEU,cAAc,CAACV,EAAES,UAAU,CAAC,YAAY;wBAACL;qBAAO,GAClDJ,EAAES,UAAU,CAAC;oBAGjBT,EAAEgB,cAAc,CACdhB,EAAES,UAAU,CAAC,YACbT,EAAEQ,gBAAgB,CAChBR,EAAEU,cAAc,CAACV,EAAES,UAAU,CAAC,YAAY;wBAACJ;qBAAQ,GACnDL,EAAES,UAAU,CAAC;iBAGlB;aAEJ;YAED,yDAAA;YACAT,EAAEiB,mBAAmB,CACnBjB,EAAEU,cAAc,CACdV,EAAEQ,gBAAgB,CAChBR,EAAES,UAAU,CAAC,WACbT,EAAES,UAAU,CAAC,oBAEf;gBACET,EAAES,UAAU,CAACG;gBACbZ,EAAEkB,aAAa,CAAC;gBAChBlB,EAAEe,gBAAgB,CAAC;oBACjBf,EAAEgB,cAAc,CACdhB,EAAES,UAAU,CAAC,QACbT,EAAEmB,uBAAuB,CACvB,EAAE,EACFnB,EAAEM,qBAAqB,CACrBN,EAAEO,iBAAiB,CACjB,MACAP,EAAEQ,gBAAgB,CAChBR,EAAES,UAAU,CAAC,eACbT,EAAES,UAAU,CAAC,aAEfT,EAAEU,cAAc,CACdV,EAAEQ,gBAAgB,CAChBR,EAAES,UAAU,CAAC,eACbT,EAAES,UAAU,CAAC,aAEf;wBAACP;qBACH,IAEFF,EAAEQ,gBAAgB,CAChBR,EAAES,UAAU,CAACG,WACbZ,EAAES,UAAU,CAAC,YAEfT,EAAEQ,gBAAgB,CAChBR,EAAES,UAAU,CAACG,WACbZ,EAAES,UAAU,CAAC;iBAKtB;aAEL;SAEH;IAED,OAAO;QACLW,MAAM;QACNC,SAAS;YACPC,gBAAgB;gBACdC,OAAMC,IAAI,EAAEC,KAAK;oBACf,IACED,KAAKE,IAAI,CAACC,MAAM,CAACC,IAAI,KAAK,gBAC1BJ,KAAKE,IAAI,CAACC,MAAM,CAACP,IAAI,KAAK,cAC1B;wBACA,IACEI,KAAKE,IAAI,CAACG,SAAS,CAACC,MAAM,IAAI,KAC9BN,KAAKE,IAAI,CAACG,SAAS,CAACE,KAAK,
|
|
1
|
+
{"mappings":"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","sources":["packages/utils/babel-plugin-transform-contextual-imports/src/index.ts"],"sourcesContent":["import {PluginObj} from '@babel/core';\nimport {declare} from '@babel/helper-plugin-utils';\nimport type {StringLiteral} from '@babel/types';\n\ninterface Opts {\n server?: boolean;\n}\n\ninterface State {\n opts: Opts;\n importNodes?: any[]; // Statement types didn't work so using any\n}\n\nconst isServer = (opts: Opts) => {\n return 'server' in opts && opts.server;\n};\n\nexport default declare((api): PluginObj<State> => {\n const {types: t} = api;\n\n const buildCondFunction = (\n cond: StringLiteral,\n ifTrue: StringLiteral,\n ifFalse: StringLiteral,\n ) =>\n t.conditionalExpression(\n t.logicalExpression(\n '&&',\n t.memberExpression(t.identifier('globalThis'), t.identifier('__MCOND')),\n t.callExpression(\n t.memberExpression(\n t.identifier('globalThis'),\n t.identifier('__MCOND'),\n ),\n [cond],\n ),\n ),\n t.memberExpression(\n t.callExpression(t.identifier('require'), [ifTrue]),\n t.identifier('default'),\n ),\n t.memberExpression(\n t.callExpression(t.identifier('require'), [ifFalse]),\n t.identifier('default'),\n ),\n );\n\n const buildServerObject = (\n identUid: string,\n cond: StringLiteral,\n ifTrue: StringLiteral,\n ifFalse: StringLiteral,\n ) => [\n // Create object containing imports\n t.variableDeclaration('const', [\n t.variableDeclarator(\n t.identifier(identUid),\n t.objectExpression([\n t.objectProperty(\n t.identifier('ifTrue'),\n t.memberExpression(\n t.callExpression(t.identifier('require'), [ifTrue]),\n t.identifier('default'),\n ),\n ),\n t.objectProperty(\n t.identifier('ifFalse'),\n t.memberExpression(\n t.callExpression(t.identifier('require'), [ifFalse]),\n t.identifier('default'),\n ),\n ),\n ]),\n ),\n ]),\n\n // Create lazy getter via the load property on the object\n t.expressionStatement(\n t.callExpression(\n t.memberExpression(\n t.identifier('Object'),\n t.identifier('defineProperty'),\n ),\n [\n t.identifier(identUid),\n t.stringLiteral('load'),\n t.objectExpression([\n t.objectProperty(\n t.identifier('get'),\n t.arrowFunctionExpression(\n [],\n t.conditionalExpression(\n t.logicalExpression(\n '&&',\n t.memberExpression(\n t.identifier('globalThis'),\n t.identifier('__MCOND'),\n ),\n t.callExpression(\n t.memberExpression(\n t.identifier('globalThis'),\n t.identifier('__MCOND'),\n ),\n [cond],\n ),\n ),\n t.memberExpression(\n t.identifier(identUid),\n t.identifier('ifTrue'),\n ),\n t.memberExpression(\n t.identifier(identUid),\n t.identifier('ifFalse'),\n ),\n ),\n ),\n ),\n ]),\n ],\n ),\n ),\n ];\n\n return {\n name: '@atlaspack/babel-plugin-transform-contextual-imports',\n visitor: {\n CallExpression: {\n enter(path, state) {\n if (\n path.node.callee.type === 'Identifier' &&\n path.node.callee.name === 'importCond'\n ) {\n if (\n path.node.arguments.length == 3 &&\n path.node.arguments.every((arg) => arg.type === 'StringLiteral')\n ) {\n const [cond, ifTrue, ifFalse] = path.node.arguments;\n\n if (isServer(state.opts)) {\n // Make module pass lazy in ssr\n const identUid = path.scope.generateUid(\n `${cond.value}$${ifTrue.value}$${ifFalse.value}`,\n );\n\n state.importNodes ??= [];\n state.importNodes.push(\n ...buildServerObject(identUid, cond, ifTrue, ifFalse),\n );\n\n // Replace call expression with reference to lazy object getter\n path.replaceWith(\n t.memberExpression(\n t.identifier(identUid),\n t.identifier('load'),\n ),\n );\n } else {\n path.replaceWith(buildCondFunction(cond, ifTrue, ifFalse));\n }\n } else {\n // Simple error for incorrect syntax (since it's documented with the type)\n throw new Error(\n 'importCond must have three string literal arguments',\n );\n }\n }\n },\n },\n Program: {\n exit(path, state) {\n if (state.importNodes) {\n // If there's an import\n path.unshiftContainer('body', state.importNodes);\n }\n },\n },\n },\n };\n});\n"],"names":["PluginObj","declare","Opts","server","State","opts","importNodes","isServer","api","types","t","buildCondFunction","cond","StringLiteral","ifTrue","ifFalse","conditionalExpression","logicalExpression","memberExpression","identifier","callExpression","buildServerObject","identUid","variableDeclaration","variableDeclarator","objectExpression","objectProperty","expressionStatement","stringLiteral","arrowFunctionExpression","name","visitor","CallExpression","enter","path","state","node","callee","type","arguments","length","every","arg","scope","generateUid","value","push","replaceWith","Error","Program","exit","unshiftContainer"],"version":3,"file":"index.js.map","sourceRoot":"../../../../"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaspack/babel-plugin-transform-contextual-imports",
|
|
3
|
-
"version": "2.12.1-
|
|
3
|
+
"version": "2.12.1-dev.3478+5fd2da535",
|
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"@types/babel__core": "^7.10.3",
|
|
23
23
|
"@types/babel__helper-plugin-utils": "^7.10.3"
|
|
24
24
|
},
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "5fd2da535ecbe096d57e03aec15e80bb1d7601f7"
|
|
26
26
|
}
|
package/src/index.ts
CHANGED
|
@@ -132,7 +132,7 @@ export default declare((api): PluginObj<State> => {
|
|
|
132
132
|
) {
|
|
133
133
|
if (
|
|
134
134
|
path.node.arguments.length == 3 &&
|
|
135
|
-
path.node.arguments.every(arg => arg.type === 'StringLiteral')
|
|
135
|
+
path.node.arguments.every((arg) => arg.type === 'StringLiteral')
|
|
136
136
|
) {
|
|
137
137
|
const [cond, ifTrue, ifFalse] = path.node.arguments;
|
|
138
138
|
|