UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 4.72 kB
{"version":3,"file":"one-router-metro.js","names":[],"sources":["esm/babel-plugins/one-router-metro.js"],"sourcesContent":["import * as t from \"@babel/types\";\nfunction oneRouterMetroPlugin(_, options) {\n function isFirstInAssign(path) {\n return t.isAssignmentExpression(path.parent) && path.parent.left === path.node;\n }\n const {\n ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY,\n ONE_ROUTER_LINKING_CONFIG,\n ONE_ROUTER_ROOT_FOLDER_NAME,\n ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING,\n ONE_SETUP_FILE_NATIVE\n } = options;\n if (!ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY) {\n throw new Error(\n `[one/babel-plugin-one-router-metro] Must provide option: ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY`\n );\n }\n if (!ONE_ROUTER_ROOT_FOLDER_NAME) {\n throw new Error(\n `[one/babel-plugin-one-router-metro] Must provide option: ONE_ROUTER_ROOT_FOLDER_NAME`\n );\n }\n if (!ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING) {\n throw new Error(\n `[one/babel-plugin-one-router-metro] Must provide option: ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING`\n );\n }\n return {\n name: \"one-router-metro\",\n visitor: {\n Program(path, state) {\n if (ONE_SETUP_FILE_NATIVE && state.filename?.endsWith(\"metro-entry.js\")) {\n const importDeclaration = t.importDeclaration(\n [],\n t.stringLiteral(ONE_SETUP_FILE_NATIVE)\n );\n const body = path.get(\"body\");\n let lastImportIndex = -1;\n for (let i = 0; i < body.length; i++) {\n if (body[i].isImportDeclaration()) {\n lastImportIndex = i;\n }\n }\n if (lastImportIndex >= 0) {\n body[lastImportIndex].insertAfter(importDeclaration);\n } else {\n path.unshiftContainer(\"body\", importDeclaration);\n }\n }\n },\n MemberExpression(path, state) {\n if (path.get(\"object\").matchesPattern(\"process.env\")) {\n const key = path.toComputedKey();\n if (t.isStringLiteral(key) && !isFirstInAssign(path)) {\n if (key.value.startsWith(\"ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY\")) {\n path.replaceWith(t.stringLiteral(ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY));\n } else if (key.value.startsWith(\"ONE_ROUTER_ROOT_FOLDER_NAME\")) {\n path.replaceWith(t.stringLiteral(ONE_ROUTER_ROOT_FOLDER_NAME));\n } else if (key.value === \"ONE_ROUTER_LINKING_CONFIG\") {\n if (state.filename?.endsWith(\"metro-entry.js\")) {\n path.replaceWith(t.valueToNode(ONE_ROUTER_LINKING_CONFIG));\n }\n } else if (key.value.startsWith(\"ONE_ROUTER_REQUIRE_CONTEXT_REGEX\")) {\n path.replaceWith(t.regExpLiteral(ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING));\n } else if (key.value === \"ONE_SETUP_FILE_NATIVE\") {\n path.replaceWith(\n ONE_SETUP_FILE_NATIVE ? t.stringLiteral(ONE_SETUP_FILE_NATIVE) : t.identifier(\"undefined\")\n );\n }\n }\n }\n }\n }\n };\n}\nvar one_router_metro_default = oneRouterMetroPlugin;\nexport {\n one_router_metro_default as default\n};\n//# sourceMappingURL=one-router-metro.js.map\n"],"mappings":";;;AACA,SAAS,qBAAqB,GAAG,SAAS;CACxC,SAAS,gBAAgB,MAAM;EAC7B,OAAO,EAAE,uBAAuB,KAAK,MAAM,KAAK,KAAK,OAAO,SAAS,KAAK;CAC5E;CACA,MAAM,EACJ,uCACA,2BACA,6BACA,yCACA,0BACE;CACJ,IAAI,CAAC,uCAAuC;EAC1C,MAAM,IAAI,MACR,gGACF;CACF;CACA,IAAI,CAAC,6BAA6B;EAChC,MAAM,IAAI,MACR,sFACF;CACF;CACA,IAAI,CAAC,yCAAyC;EAC5C,MAAM,IAAI,MACR,kGACF;CACF;CACA,OAAO;EACL,MAAM;EACN,SAAS;GACP,QAAQ,MAAM,OAAO;IACnB,IAAI,yBAAyB,MAAM,UAAU,SAAS,gBAAgB,GAAG;KACvE,MAAM,oBAAoB,EAAE,kBAC1B,CAAC,GACD,EAAE,cAAc,qBAAqB,CACvC;KACA,MAAM,OAAO,KAAK,IAAI,MAAM;KAC5B,IAAI,kBAAkB,CAAC;KACvB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;MACpC,IAAI,KAAK,EAAE,CAAC,oBAAoB,GAAG;OACjC,kBAAkB;MACpB;KACF;KACA,IAAI,mBAAmB,GAAG;MACxB,KAAK,gBAAgB,CAAC,YAAY,iBAAiB;KACrD,OAAO;MACL,KAAK,iBAAiB,QAAQ,iBAAiB;KACjD;IACF;GACF;GACA,iBAAiB,MAAM,OAAO;IAC5B,IAAI,KAAK,IAAI,QAAQ,CAAC,CAAC,eAAe,aAAa,GAAG;KACpD,MAAM,MAAM,KAAK,cAAc;KAC/B,IAAI,EAAE,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,GAAG;MACpD,IAAI,IAAI,MAAM,WAAW,uCAAuC,GAAG;OACjE,KAAK,YAAY,EAAE,cAAc,qCAAqC,CAAC;MACzE,OAAO,IAAI,IAAI,MAAM,WAAW,6BAA6B,GAAG;OAC9D,KAAK,YAAY,EAAE,cAAc,2BAA2B,CAAC;MAC/D,OAAO,IAAI,IAAI,UAAU,6BAA6B;OACpD,IAAI,MAAM,UAAU,SAAS,gBAAgB,GAAG;QAC9C,KAAK,YAAY,EAAE,YAAY,yBAAyB,CAAC;OAC3D;MACF,OAAO,IAAI,IAAI,MAAM,WAAW,kCAAkC,GAAG;OACnE,KAAK,YAAY,EAAE,cAAc,uCAAuC,CAAC;MAC3E,OAAO,IAAI,IAAI,UAAU,yBAAyB;OAChD,KAAK,YACH,wBAAwB,EAAE,cAAc,qBAAqB,IAAI,EAAE,WAAW,WAAW,CAC3F;MACF;KACF;IACF;GACF;EACF;CACF;AACF;AACA,IAAI,2BAA2B"}