@vxrn/vite-plugin-metro 1.1.501-1751155612296
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/dist/cjs/index.cjs +28 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +28 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +56 -0
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.js +49 -0
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.js.map +6 -0
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +48 -0
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +6 -0
- package/dist/cjs/plugins/metroPlugin.cjs +214 -0
- package/dist/cjs/plugins/metroPlugin.js +186 -0
- package/dist/cjs/plugins/metroPlugin.js.map +6 -0
- package/dist/cjs/plugins/metroPlugin.native.js +179 -0
- package/dist/cjs/plugins/metroPlugin.native.js.map +6 -0
- package/dist/cjs/transformer/babel-core.cjs +27 -0
- package/dist/cjs/transformer/babel-core.js +22 -0
- package/dist/cjs/transformer/babel-core.js.map +6 -0
- package/dist/cjs/transformer/babel-core.native.js +28 -0
- package/dist/cjs/transformer/babel-core.native.js.map +6 -0
- package/dist/cjs/transformer/babel-transformer.cjs +148 -0
- package/dist/cjs/transformer/babel-transformer.js +129 -0
- package/dist/cjs/transformer/babel-transformer.js.map +6 -0
- package/dist/cjs/transformer/babel-transformer.native.js +135 -0
- package/dist/cjs/transformer/babel-transformer.native.js.map +6 -0
- package/dist/cjs/transformer/loadBabelConfig.cjs +53 -0
- package/dist/cjs/transformer/loadBabelConfig.js +46 -0
- package/dist/cjs/transformer/loadBabelConfig.js.map +6 -0
- package/dist/cjs/transformer/loadBabelConfig.native.js +55 -0
- package/dist/cjs/transformer/loadBabelConfig.native.js.map +6 -0
- package/dist/cjs/transformer/transformSync.cjs +64 -0
- package/dist/cjs/transformer/transformSync.js +53 -0
- package/dist/cjs/transformer/transformSync.js.map +6 -0
- package/dist/cjs/transformer/transformSync.native.js +58 -0
- package/dist/cjs/transformer/transformSync.native.js.map +6 -0
- package/dist/cjs/utils/getTerminalReporter.cjs +59 -0
- package/dist/cjs/utils/getTerminalReporter.js +48 -0
- package/dist/cjs/utils/getTerminalReporter.js.map +6 -0
- package/dist/cjs/utils/getTerminalReporter.native.js +53 -0
- package/dist/cjs/utils/getTerminalReporter.native.js.map +6 -0
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +35 -0
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.js +30 -0
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.js.map +6 -0
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +37 -0
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +6 -0
- package/dist/cjs/utils/projectImport.cjs +56 -0
- package/dist/cjs/utils/projectImport.js +43 -0
- package/dist/cjs/utils/projectImport.js.map +6 -0
- package/dist/cjs/utils/projectImport.native.js +54 -0
- package/dist/cjs/utils/projectImport.native.js.map +6 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +4 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +4 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.js +35 -0
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.js.map +6 -0
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +33 -0
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +1 -0
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +34 -0
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -0
- package/dist/esm/plugins/metroPlugin.js +168 -0
- package/dist/esm/plugins/metroPlugin.js.map +6 -0
- package/dist/esm/plugins/metroPlugin.mjs +180 -0
- package/dist/esm/plugins/metroPlugin.mjs.map +1 -0
- package/dist/esm/plugins/metroPlugin.native.js +189 -0
- package/dist/esm/plugins/metroPlugin.native.js.map +1 -0
- package/dist/esm/transformer/babel-core.js +9 -0
- package/dist/esm/transformer/babel-core.js.map +6 -0
- package/dist/esm/transformer/babel-core.mjs +3 -0
- package/dist/esm/transformer/babel-core.mjs.map +1 -0
- package/dist/esm/transformer/babel-core.native.js +3 -0
- package/dist/esm/transformer/babel-core.native.js.map +1 -0
- package/dist/esm/transformer/babel-transformer.js +110 -0
- package/dist/esm/transformer/babel-transformer.js.map +6 -0
- package/dist/esm/transformer/babel-transformer.mjs +122 -0
- package/dist/esm/transformer/babel-transformer.mjs.map +1 -0
- package/dist/esm/transformer/babel-transformer.native.js +136 -0
- package/dist/esm/transformer/babel-transformer.native.js.map +1 -0
- package/dist/esm/transformer/loadBabelConfig.js +23 -0
- package/dist/esm/transformer/loadBabelConfig.js.map +6 -0
- package/dist/esm/transformer/loadBabelConfig.mjs +19 -0
- package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -0
- package/dist/esm/transformer/loadBabelConfig.native.js +23 -0
- package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -0
- package/dist/esm/transformer/transformSync.js +29 -0
- package/dist/esm/transformer/transformSync.js.map +6 -0
- package/dist/esm/transformer/transformSync.mjs +30 -0
- package/dist/esm/transformer/transformSync.mjs.map +1 -0
- package/dist/esm/transformer/transformSync.native.js +31 -0
- package/dist/esm/transformer/transformSync.native.js.map +1 -0
- package/dist/esm/utils/getTerminalReporter.js +25 -0
- package/dist/esm/utils/getTerminalReporter.js.map +6 -0
- package/dist/esm/utils/getTerminalReporter.mjs +25 -0
- package/dist/esm/utils/getTerminalReporter.mjs.map +1 -0
- package/dist/esm/utils/getTerminalReporter.native.js +26 -0
- package/dist/esm/utils/getTerminalReporter.native.js.map +1 -0
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.js +14 -0
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.js.map +6 -0
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +12 -0
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +1 -0
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +14 -0
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +1 -0
- package/dist/esm/utils/projectImport.js +20 -0
- package/dist/esm/utils/projectImport.js.map +6 -0
- package/dist/esm/utils/projectImport.mjs +20 -0
- package/dist/esm/utils/projectImport.mjs.map +1 -0
- package/dist/esm/utils/projectImport.native.js +22 -0
- package/dist/esm/utils/projectImport.native.js.map +1 -0
- package/empty.js +0 -0
- package/package.json +68 -0
- package/src/index.ts +4 -0
- package/src/plugins/expoManifestRequestHandlerPlugin.ts +75 -0
- package/src/plugins/metroPlugin.ts +314 -0
- package/src/transformer/babel-core.ts +7 -0
- package/src/transformer/babel-transformer.ts +211 -0
- package/src/transformer/loadBabelConfig.ts +53 -0
- package/src/transformer/transformSync.ts +54 -0
- package/src/utils/getTerminalReporter.ts +42 -0
- package/src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts +27 -0
- package/src/utils/projectImport.ts +32 -0
- package/types/index.d.ts +5 -0
- package/types/index.d.ts.map +1 -0
- package/types/plugins/expoManifestRequestHandlerPlugin.d.ts +14 -0
- package/types/plugins/expoManifestRequestHandlerPlugin.d.ts.map +1 -0
- package/types/plugins/metroPlugin.d.ts +22 -0
- package/types/plugins/metroPlugin.d.ts.map +1 -0
- package/types/transformer/babel-core.d.ts +2 -0
- package/types/transformer/babel-core.d.ts.map +1 -0
- package/types/transformer/babel-transformer.d.ts +18 -0
- package/types/transformer/babel-transformer.d.ts.map +1 -0
- package/types/transformer/loadBabelConfig.d.ts +10 -0
- package/types/transformer/loadBabelConfig.d.ts.map +1 -0
- package/types/transformer/transformSync.d.ts +11 -0
- package/types/transformer/transformSync.d.ts.map +1 -0
- package/types/utils/getTerminalReporter.d.ts +3 -0
- package/types/utils/getTerminalReporter.d.ts.map +1 -0
- package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts +5 -0
- package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts.map +1 -0
- package/types/utils/projectImport.d.ts +12 -0
- package/types/utils/projectImport.d.ts.map +1 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as babel from "./babel-core.native.js";
|
|
2
|
+
function isTypeScriptSource(fileName) {
|
|
3
|
+
return fileName?.endsWith(".ts");
|
|
4
|
+
}
|
|
5
|
+
function isTSXSource(fileName) {
|
|
6
|
+
return fileName?.endsWith(".tsx");
|
|
7
|
+
}
|
|
8
|
+
function transformSync(src, babelConfig, param) {
|
|
9
|
+
var {
|
|
10
|
+
hermesParser
|
|
11
|
+
} = param,
|
|
12
|
+
isTypeScript = isTypeScriptSource(babelConfig.filename) || isTSXSource(babelConfig.filename);
|
|
13
|
+
return isTypeScript ? parseWithBabel(src, babelConfig) : !isTypeScript && (
|
|
14
|
+
// The Hermes parser doesn't support comments or babel proposals such as export default from, meaning it has lower compatibility with larger parts
|
|
15
|
+
// of the ecosystem.
|
|
16
|
+
// However, React Native ships with flow syntax that isn't supported in Babel so we need to use Hermes for those files.
|
|
17
|
+
// We can try to quickly detect if the file uses flow syntax by checking for the @flow pragma which is present in every React Native file.
|
|
18
|
+
hermesParser || src.includes(" @flow")) ? parseWithHermes(src, babelConfig) : parseWithBabel(src, babelConfig);
|
|
19
|
+
}
|
|
20
|
+
function parseWithHermes(src, babelConfig) {
|
|
21
|
+
var sourceAst = require("hermes-parser").parse(src, {
|
|
22
|
+
babel: !0,
|
|
23
|
+
sourceType: babelConfig.sourceType
|
|
24
|
+
});
|
|
25
|
+
return babel.transformFromAstSync(sourceAst, src, babelConfig);
|
|
26
|
+
}
|
|
27
|
+
function parseWithBabel(src, babelConfig) {
|
|
28
|
+
return babel.transformSync(src, babelConfig);
|
|
29
|
+
}
|
|
30
|
+
export { transformSync };
|
|
31
|
+
//# sourceMappingURL=transformSync.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["babel","isTypeScriptSource","fileName","endsWith","isTSXSource","transformSync","src","babelConfig","param","hermesParser","isTypeScript","filename","parseWithBabel","includes","parseWithHermes","sourceAst","require","parse","sourceType","transformFromAstSync"],"sources":["../../../src/transformer/transformSync.ts"],"sourcesContent":[null],"mappings":"AAMA,YAAYA,KAAA,MAAW;AAGvB,SAASC,mBAAmBC,QAAA,EAA2B;EACrD,OAAOA,QAAA,EAAUC,QAAA,CAAS,KAAK;AACjC;AAEA,SAASC,YAAYF,QAAA,EAA2B;EAC9C,OAAOA,QAAA,EAAUC,QAAA,CAAS,MAAM;AAClC;AAEO,SAASE,cACdC,GAAA,EACAC,WAAA,EACAC,KAAE;EAEF;MAAMC;IAAA,IACJD,KAAA;IAAAE,YAAmB,GAAAT,kBAAqB,CAAAM,WAAK,CAAAI,QAAY,KAAYP,WAAS,CAAAG,WAAA,CAAAI,QAAA;EAEhF,OAAID,YAAA,GACKE,cAAA,CAAeN,GAAA,EAAKC,WAAW,IAItC,CAACG,YAAA;EAAA;EAAA;EAAA;EAAA;EAKAD,YAAA,IAAgBH,GAAA,CAAIO,QAAA,CAAS,QAAQ,KAE/BC,eAAA,CAAgBR,GAAA,EAAKC,WAAW,IAGlCK,cAAA,CAAeN,GAAA,EAAKC,WAAW;AACxC;AAEA,SAASO,gBAAgBR,GAAA,EAAaC,WAAA,EAAqC;EACzE,IAAAQ,SAAM,GAAAC,OAAY,gBAAQ,EAAeC,KAAE,CAAAX,GAAM;IAC/CN,KAAA,EAAO;IACPkB,UAAA,EAAYX,WAAA,CAAYW;EAC1B,CAAC;EACD,OAAOlB,KAAA,CAAMmB,oBAAA,CAAqBJ,SAAA,EAAWT,GAAA,EAAKC,WAAW;AAC/D;AAEA,SAASK,eAAeN,GAAA,EAAaC,WAAA,EAAqC;EACxE,OAAOP,KAAA,CAAMK,aAAA,CAAcC,GAAA,EAAKC,WAAW;AAC7C","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import colors from "picocolors";
|
|
2
|
+
import { projectImport } from "./projectImport";
|
|
3
|
+
async function getTerminalReporter(projectRoot) {
|
|
4
|
+
const { Terminal, TerminalReporter } = await projectImport(projectRoot, "metro");
|
|
5
|
+
let metroWelcomeMessagePrinted = !1;
|
|
6
|
+
const terminal = new Terminal(process.stdout);
|
|
7
|
+
terminal._log = terminal.log, terminal.log = (message, ...rest) => {
|
|
8
|
+
if (!metroWelcomeMessagePrinted) {
|
|
9
|
+
const match = message.match(/Welcome to Metro.+v(\d+\.\d+\.\d+)/);
|
|
10
|
+
if (match) {
|
|
11
|
+
const version = match[1];
|
|
12
|
+
return metroWelcomeMessagePrinted = !0, terminal._log(colors.dim(`
|
|
13
|
+
Using Metro Bundler v${version}`), ...rest);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return terminal._log(message, ...rest);
|
|
17
|
+
};
|
|
18
|
+
const terminalReporter = new TerminalReporter(terminal);
|
|
19
|
+
return terminalReporter._logInitializing = () => {
|
|
20
|
+
}, terminalReporter;
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
getTerminalReporter
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=getTerminalReporter.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/getTerminalReporter.ts"],
|
|
4
|
+
"mappings": "AAIA,OAAO,YAAY;AAEnB,SAAS,qBAAqB;AAE9B,eAAsB,oBAAoB,aAAqB;AAC7D,QAAM,EAAE,UAAU,iBAAiB,IAAI,MAAM,cAG1C,aAAa,OAAO;AAEvB,MAAI,6BAA6B;AAEjC,QAAM,WAAW,IAAI,SAAS,QAAQ,MAAM;AAC3C,EAAC,SAAiB,OAAO,SAAS,KACnC,SAAS,MAAM,CAAC,YAAY,SAAS;AAGnC,QAAI,CAAC,4BAA4B;AAC/B,YAAM,QAAQ,QAAQ,MAAM,oCAAoC;AAChE,UAAI,OAAO;AACT,cAAM,UAAU,MAAM,CAAC;AACvB,4CAA6B,IACrB,SAAiB,KAAK,OAAO,IAAI;AAAA,yBAA4B,OAAO,EAAE,GAAG,GAAG,IAAI;AAAA,MAC1F;AAAA,IACF;AAEA,WAAQ,SAAiB,KAAK,SAAS,GAAG,IAAI;AAAA,EAChD;AAGA,QAAM,mBAAmB,IAAI,iBAAiB,QAAQ;AAIrD,SAAC,iBAAyB,mBAAmB,MAAM;AAAA,EAAC,GAE9C;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import colors from "picocolors";
|
|
2
|
+
import { projectImport } from "./projectImport.mjs";
|
|
3
|
+
async function getTerminalReporter(projectRoot) {
|
|
4
|
+
const {
|
|
5
|
+
Terminal,
|
|
6
|
+
TerminalReporter
|
|
7
|
+
} = await projectImport(projectRoot, "metro");
|
|
8
|
+
let metroWelcomeMessagePrinted = !1;
|
|
9
|
+
const terminal = new Terminal(process.stdout);
|
|
10
|
+
terminal._log = terminal.log, terminal.log = (message, ...rest) => {
|
|
11
|
+
if (!metroWelcomeMessagePrinted) {
|
|
12
|
+
const match = message.match(/Welcome to Metro.+v(\d+\.\d+\.\d+)/);
|
|
13
|
+
if (match) {
|
|
14
|
+
const version = match[1];
|
|
15
|
+
return metroWelcomeMessagePrinted = !0, terminal._log(colors.dim(`
|
|
16
|
+
Using Metro Bundler v${version}`), ...rest);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return terminal._log(message, ...rest);
|
|
20
|
+
};
|
|
21
|
+
const terminalReporter = new TerminalReporter(terminal);
|
|
22
|
+
return terminalReporter._logInitializing = () => {}, terminalReporter;
|
|
23
|
+
}
|
|
24
|
+
export { getTerminalReporter };
|
|
25
|
+
//# sourceMappingURL=getTerminalReporter.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["colors","projectImport","getTerminalReporter","projectRoot","Terminal","TerminalReporter","metroWelcomeMessagePrinted","terminal","process","stdout","_log","log","message","rest","match","version","dim","terminalReporter","_logInitializing"],"sources":["../../../src/utils/getTerminalReporter.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAOA,MAAA,MAAY;AAEnB,SAASC,aAAA,QAAqB;AAE9B,eAAsBC,oBAAoBC,WAAA,EAAqB;EAC7D,MAAM;IAAEC,QAAA;IAAUC;EAAiB,IAAI,MAAMJ,aAAA,CAG1CE,WAAA,EAAa,OAAO;EAEvB,IAAIG,0BAAA,GAA6B;EAEjC,MAAMC,QAAA,GAAW,IAAIH,QAAA,CAASI,OAAA,CAAQC,MAAM;EAC1CF,QAAA,CAAiBG,IAAA,GAAOH,QAAA,CAASI,GAAA,EACnCJ,QAAA,CAASI,GAAA,GAAM,CAACC,OAAA,KAAYC,IAAA,KAAS;IAGnC,IAAI,CAACP,0BAAA,EAA4B;MAC/B,MAAMQ,KAAA,GAAQF,OAAA,CAAQE,KAAA,CAAM,oCAAoC;MAChE,IAAIA,KAAA,EAAO;QACT,MAAMC,OAAA,GAAUD,KAAA,CAAM,CAAC;QACvB,OAAAR,0BAAA,GAA6B,IACrBC,QAAA,CAAiBG,IAAA,CAAKV,MAAA,CAAOgB,GAAA,CAAI;AAAA,yBAA4BD,OAAO,EAAE,GAAG,GAAGF,IAAI;MAC1F;IACF;IAEA,OAAQN,QAAA,CAAiBG,IAAA,CAAKE,OAAA,EAAS,GAAGC,IAAI;EAChD;EAGA,MAAMI,gBAAA,GAAmB,IAAIZ,gBAAA,CAAiBE,QAAQ;EAIrD,OAACU,gBAAA,CAAyBC,gBAAA,GAAmB,MAAM,CAAC,GAE9CD,gBAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import colors from "picocolors";
|
|
2
|
+
import { projectImport } from "./projectImport.native.js";
|
|
3
|
+
async function getTerminalReporter(projectRoot) {
|
|
4
|
+
var {
|
|
5
|
+
Terminal,
|
|
6
|
+
TerminalReporter
|
|
7
|
+
} = await projectImport(projectRoot, "metro"),
|
|
8
|
+
metroWelcomeMessagePrinted = !1,
|
|
9
|
+
terminal = new Terminal(process.stdout);
|
|
10
|
+
terminal._log = terminal.log, terminal.log = function (message) {
|
|
11
|
+
for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) rest[_key - 1] = arguments[_key];
|
|
12
|
+
if (!metroWelcomeMessagePrinted) {
|
|
13
|
+
var match = message.match(/Welcome to Metro.+v(\d+\.\d+\.\d+)/);
|
|
14
|
+
if (match) {
|
|
15
|
+
var version = match[1];
|
|
16
|
+
return metroWelcomeMessagePrinted = !0, terminal._log(colors.dim(`
|
|
17
|
+
Using Metro Bundler v${version}`), ...rest);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return terminal._log(message, ...rest);
|
|
21
|
+
};
|
|
22
|
+
var terminalReporter = new TerminalReporter(terminal);
|
|
23
|
+
return terminalReporter._logInitializing = function () {}, terminalReporter;
|
|
24
|
+
}
|
|
25
|
+
export { getTerminalReporter };
|
|
26
|
+
//# sourceMappingURL=getTerminalReporter.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["colors","projectImport","getTerminalReporter","projectRoot","Terminal","TerminalReporter","metroWelcomeMessagePrinted","terminal","process","stdout","_log","log","message","_len","arguments","length","rest","Array","_key","match","version","dim","terminalReporter","_logInitializing"],"sources":["../../../src/utils/getTerminalReporter.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAOA,MAAA,MAAY;AAEnB,SAASC,aAAA,QAAqB;AAE9B,eAAsBC,oBAAoBC,WAAA,EAAqB;EAC7D;MAAMC,QAAE;MAAAC;IAAU,IAAiB,MAAIJ,aAAM,CAAAE,WAG1C,SAAa;IAAOG,0BAAA;IAAAC,QAAA,OAAAH,QAAA,CAAAI,OAAA,CAAAC,MAAA;EAEvBF,QAAI,CAAAG,IAAA,GAAAH,QAAA,CAAAI,GAAA,EAAAJ,QAA6B,CAAAI,GAAA,aAAAC,OAAA;IAEjC,KAAM,IAAAC,IAAA,GAAWC,SAAI,CAAAC,MAAS,EAAAC,IAAQ,OAAMC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,IAC1CF,IAAA,CAAiBE,IAAA,GAAO,KAAAJ,SAC1B,CAAAI,IAAA;IAGE,IAAI,CAACZ,0BAAA,EAA4B;MAC/B,IAAAa,KAAM,GAAAP,OAAQ,CAAAO,KAAQ,qCAAM;MAC5B,IAAIA,KAAA,EAAO;QACT,IAAAC,OAAM,GAAAD,KAAU,GAAM;QACtB,OAAAb,0BAAA,GAA6B,IACrBC,QAAA,CAAiBG,IAAA,CAAKV,MAAA,CAAOqB,GAAA,CAAI;AAAA,yBAA4BD,OAAO,EAAE,GAAG,GAAGJ,IAAI;MAC1F;IACF;IAEA,OAAQT,QAAA,CAAiBG,IAAA,CAAKE,OAAA,EAAS,GAAGI,IAAI;EAChD;EAGA,IAAAM,gBAAM,OAAmBjB,gBAAI,CAAAE,QAAiB;EAI7C,OAACe,gBAAA,CAAyBC,gBAAA,GAAmB,YAAM,CAAC,GAE9CD,gBAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
function patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(manifestHandlerMiddleware, mainModuleName) {
|
|
2
|
+
const origResolveMainModuleName = manifestHandlerMiddleware.resolveMainModuleName.bind(manifestHandlerMiddleware);
|
|
3
|
+
manifestHandlerMiddleware.resolveMainModuleName = (props) => origResolveMainModuleName({
|
|
4
|
+
...props,
|
|
5
|
+
pkg: {
|
|
6
|
+
...props.pkg,
|
|
7
|
+
main: mainModuleName
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts"],
|
|
4
|
+
"mappings": "AAGO,SAAS,6DACd,2BACA,gBACA;AASA,QAAM,4BACJ,0BAA0B,sBAAsB,KAAK,yBAAyB;AAChF,4BAA0B,wBAAwB,CAAC,UAC1C,0BAA0B;AAAA,IAC/B,GAAG;AAAA,IACH,KAAK;AAAA,MACH,GAAG,MAAM;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF,CAAC;AAEL;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(manifestHandlerMiddleware, mainModuleName) {
|
|
2
|
+
const origResolveMainModuleName = manifestHandlerMiddleware.resolveMainModuleName.bind(manifestHandlerMiddleware);
|
|
3
|
+
manifestHandlerMiddleware.resolveMainModuleName = props => origResolveMainModuleName({
|
|
4
|
+
...props,
|
|
5
|
+
pkg: {
|
|
6
|
+
...props.pkg,
|
|
7
|
+
main: mainModuleName
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export { patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName };
|
|
12
|
+
//# sourceMappingURL=patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName","manifestHandlerMiddleware","mainModuleName","origResolveMainModuleName","resolveMainModuleName","bind","props","pkg","main"],"sources":["../../../src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts"],"sourcesContent":[null],"mappings":"AAGO,SAASA,6DACdC,yBAAA,EACAC,cAAA,EACA;EASA,MAAMC,yBAAA,GACJF,yBAAA,CAA0BG,qBAAA,CAAsBC,IAAA,CAAKJ,yBAAyB;EAChFA,yBAAA,CAA0BG,qBAAA,GAAyBE,KAAA,IAC1CH,yBAAA,CAA0B;IAC/B,GAAGG,KAAA;IACHC,GAAA,EAAK;MACH,GAAGD,KAAA,CAAMC,GAAA;MACTC,IAAA,EAAMN;IACR;EACF,CAAC;AAEL","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
function patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(manifestHandlerMiddleware, mainModuleName) {
|
|
2
|
+
var origResolveMainModuleName = manifestHandlerMiddleware.resolveMainModuleName.bind(manifestHandlerMiddleware);
|
|
3
|
+
manifestHandlerMiddleware.resolveMainModuleName = function (props) {
|
|
4
|
+
return origResolveMainModuleName({
|
|
5
|
+
...props,
|
|
6
|
+
pkg: {
|
|
7
|
+
...props.pkg,
|
|
8
|
+
main: mainModuleName
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export { patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName };
|
|
14
|
+
//# sourceMappingURL=patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map
|
package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName","manifestHandlerMiddleware","mainModuleName","origResolveMainModuleName","resolveMainModuleName","bind","props","pkg","main"],"sources":["../../../src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts"],"sourcesContent":[null],"mappings":"AAGO,SAASA,6DACdC,yBAAA,EACAC,cAAA,EACA;EASA,IAAAC,yBAAM,GAAAF,yBACJ,CAAAG,qBAA0B,CAAAC,IAAsB,CAAAJ,yBAAK;EACvDA,yBAAA,CAA0BG,qBAAA,GAAwB,UAACE,KAC1C;IACL,OAAGH,yBAAA;MACH,GAAKG,KAAA;MACHC,GAAG;QACH,GAAAD,KAAM,CAAAC,GAAA;QACRC,IAAA,EAAAN;MACD;IAEL","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import module from "node:module";
|
|
2
|
+
import { createDebugger } from "@vxrn/debug";
|
|
3
|
+
const { debug } = createDebugger("vite-metro:projectImport");
|
|
4
|
+
async function projectImport(projectRoot, path) {
|
|
5
|
+
try {
|
|
6
|
+
const importPath = projectResolve(projectRoot, path);
|
|
7
|
+
return debug?.(`Importing "${path}" from project root: "${projectRoot}" at "${importPath}"`), await import(importPath);
|
|
8
|
+
} catch (e) {
|
|
9
|
+
throw e instanceof Error && (e.message = `[vite-plugin-metro] Failed to import ${path} from your project (${projectRoot}): ${e.message}`), e;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function projectResolve(projectRoot, path) {
|
|
13
|
+
return module.createRequire(projectRoot).resolve(path, { paths: [projectRoot] });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
debug,
|
|
17
|
+
projectImport,
|
|
18
|
+
projectResolve
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=projectImport.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/projectImport.ts"],
|
|
4
|
+
"mappings": "AAAA,OAAO,YAAY;AACnB,SAAS,sBAAsB;AAExB,MAAM,EAAE,MAAM,IAAI,eAAe,0BAA0B;AAQlE,eAAsB,cAAuB,aAAqB,MAA0B;AAC1F,MAAI;AACF,UAAM,aAAa,eAAe,aAAa,IAAI;AAEnD,mBAAQ,cAAc,IAAI,yBAAyB,WAAW,SAAS,UAAU,GAAG,GAE7E,MAAM,OAAO;AAAA,EACtB,SAAS,GAAG;AACV,UAAI,aAAa,UACf,EAAE,UAAU,wCAAwC,IAAI,uBAAuB,WAAW,MAAM,EAAE,OAAO,KAGrG;AAAA,EACR;AACF;AAEO,SAAS,eAAe,aAAqB,MAAsB;AAGxE,SAFgB,OAAO,cAAc,WAAW,EACrB,QAAQ,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;AAEnE;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import module from "node:module";
|
|
2
|
+
import { createDebugger } from "@vxrn/debug";
|
|
3
|
+
const {
|
|
4
|
+
debug
|
|
5
|
+
} = createDebugger("vite-metro:projectImport");
|
|
6
|
+
async function projectImport(projectRoot, path) {
|
|
7
|
+
try {
|
|
8
|
+
const importPath = projectResolve(projectRoot, path);
|
|
9
|
+
return debug?.(`Importing "${path}" from project root: "${projectRoot}" at "${importPath}"`), await import(importPath);
|
|
10
|
+
} catch (e) {
|
|
11
|
+
throw e instanceof Error && (e.message = `[vite-plugin-metro] Failed to import ${path} from your project (${projectRoot}): ${e.message}`), e;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function projectResolve(projectRoot, path) {
|
|
15
|
+
return module.createRequire(projectRoot).resolve(path, {
|
|
16
|
+
paths: [projectRoot]
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export { debug, projectImport, projectResolve };
|
|
20
|
+
//# sourceMappingURL=projectImport.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["module","createDebugger","debug","projectImport","projectRoot","path","importPath","projectResolve","e","Error","message","createRequire","resolve","paths"],"sources":["../../../src/utils/projectImport.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,SAASC,cAAA,QAAsB;AAExB,MAAM;EAAEC;AAAM,IAAID,cAAA,CAAe,0BAA0B;AAQlE,eAAsBE,cAAuBC,WAAA,EAAqBC,IAAA,EAA0B;EAC1F,IAAI;IACF,MAAMC,UAAA,GAAaC,cAAA,CAAeH,WAAA,EAAaC,IAAI;IAEnD,OAAAH,KAAA,GAAQ,cAAcG,IAAI,yBAAyBD,WAAW,SAASE,UAAU,GAAG,GAE7E,MAAM,OAAOA,UAAA;EACtB,SAASE,CAAA,EAAG;IACV,MAAIA,CAAA,YAAaC,KAAA,KACfD,CAAA,CAAEE,OAAA,GAAU,wCAAwCL,IAAI,uBAAuBD,WAAW,MAAMI,CAAA,CAAEE,OAAO,KAGrGF,CAAA;EACR;AACF;AAEO,SAASD,eAAeH,WAAA,EAAqBC,IAAA,EAAsB;EAGxE,OAFgBL,MAAA,CAAOW,aAAA,CAAcP,WAAW,EACrBQ,OAAA,CAAQP,IAAA,EAAM;IAAEQ,KAAA,EAAO,CAACT,WAAW;EAAE,CAAC;AAEnE","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import module from "node:module";
|
|
2
|
+
import { createDebugger } from "@vxrn/debug";
|
|
3
|
+
var {
|
|
4
|
+
debug
|
|
5
|
+
} = createDebugger("vite-metro:projectImport");
|
|
6
|
+
async function projectImport(projectRoot, path) {
|
|
7
|
+
try {
|
|
8
|
+
var importPath = projectResolve(projectRoot, path);
|
|
9
|
+
return debug?.(`Importing "${path}" from project root: "${projectRoot}" at "${importPath}"`), await import(importPath);
|
|
10
|
+
} catch (e) {
|
|
11
|
+
throw e instanceof Error && (e.message = `[vite-plugin-metro] Failed to import ${path} from your project (${projectRoot}): ${e.message}`), e;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function projectResolve(projectRoot, path) {
|
|
15
|
+
var require2 = module.createRequire(projectRoot),
|
|
16
|
+
importPath = require2.resolve(path, {
|
|
17
|
+
paths: [projectRoot]
|
|
18
|
+
});
|
|
19
|
+
return importPath;
|
|
20
|
+
}
|
|
21
|
+
export { debug, projectImport, projectResolve };
|
|
22
|
+
//# sourceMappingURL=projectImport.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["module","createDebugger","debug","projectImport","projectRoot","path","importPath","projectResolve","e","Error","message","require2","createRequire","resolve","paths"],"sources":["../../../src/utils/projectImport.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,SAASC,cAAA,QAAsB;AAExB;EAAMC;AAAE,IAAMD,cAAI,2BAAe;AAQxC,eAAsBE,cAAuBC,WAAA,EAAqBC,IAAA,EAA0B;EAC1F,IAAI;IACF,IAAAC,UAAM,GAAAC,cAAa,CAAAH,WAAe,EAAAC,IAAa;IAE/C,OAAAH,KAAA,GAAQ,cAAcG,IAAI,yBAAyBD,WAAW,SAASE,UAAU,GAAG,GAE7E,MAAM,OAAOA,UAAA;EACtB,SAASE,CAAA,EAAG;IACV,MAAIA,CAAA,YAAaC,KAAA,KACfD,CAAA,CAAEE,OAAA,GAAU,wCAAwCL,IAAI,uBAAuBD,WAAW,MAAMI,CAAA,CAAEE,OAAO,KAGrGF,CAAA;EACR;AACF;AAEO,SAASD,eAAeH,WAAA,EAAqBC,IAAA,EAAsB;EAGxE,IAAAM,QAFgB,GAAOX,MAAA,CAAAY,aAAc,CAAAR,WACV;IAAQE,UAAQ,GAAAK,QAAQ,CAAAE,OAAc,CAAAR,IAAA;MAEnES,KAAA,G","ignoreList":[]}
|
package/empty.js
ADDED
|
File without changes
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vxrn/vite-plugin-metro",
|
|
3
|
+
"version": "1.1.501-1751155612296",
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/cjs",
|
|
7
|
+
"module": "dist/esm",
|
|
8
|
+
"source": "src/index.ts",
|
|
9
|
+
"types": "./types/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
"./package.json": "./package.json",
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./types/index.d.ts",
|
|
14
|
+
"require": "./dist/cjs/index.js",
|
|
15
|
+
"import": "./dist/esm/index.mjs"
|
|
16
|
+
},
|
|
17
|
+
"./babel-transformer": {
|
|
18
|
+
"types": "./types/transformer/babel-transformer.d.ts",
|
|
19
|
+
"import": "./dist/esm/transformer/babel-transformer.mjs",
|
|
20
|
+
"require": "./dist/cjs/transformer/babel-transformer.cjs"
|
|
21
|
+
},
|
|
22
|
+
"./empty": {
|
|
23
|
+
"import": "./empty.js",
|
|
24
|
+
"require": "./empty.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"src",
|
|
29
|
+
"types",
|
|
30
|
+
"empty.js",
|
|
31
|
+
"dist"
|
|
32
|
+
],
|
|
33
|
+
"scripts": {
|
|
34
|
+
"build": "tamagui-build",
|
|
35
|
+
"watch": "yarn build --watch",
|
|
36
|
+
"check": "yarn depcheck",
|
|
37
|
+
"clean": "tamagui-build clean",
|
|
38
|
+
"clean:build": "tamagui-build clean:build"
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"@expo/metro-config": "^0.19.8",
|
|
42
|
+
"expo": "^53.0.4",
|
|
43
|
+
"metro": "^0.82",
|
|
44
|
+
"react-native": "~0.79.2",
|
|
45
|
+
"vite": "^6.1.0"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@babel/core": "^7.26.8",
|
|
49
|
+
"@vxrn/debug": "1.1.501-1751155612296",
|
|
50
|
+
"babel-preset-expo": "*",
|
|
51
|
+
"launch-editor": "^2.10.0",
|
|
52
|
+
"picocolors": "^1.0.0"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@biomejs/biome": "1.9.4",
|
|
56
|
+
"@expo/metro-config": "^0.19.8",
|
|
57
|
+
"@react-native/dev-middleware": "~0.79.2",
|
|
58
|
+
"@tamagui/build": "^1.129.3",
|
|
59
|
+
"@types/node": "^22.1.0",
|
|
60
|
+
"depcheck": "^1.4.7",
|
|
61
|
+
"expo": "^53.0.4",
|
|
62
|
+
"metro": "^0.82",
|
|
63
|
+
"vite": "^6.1.0"
|
|
64
|
+
},
|
|
65
|
+
"publishConfig": {
|
|
66
|
+
"access": "public"
|
|
67
|
+
}
|
|
68
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { metroPlugin } from './plugins/metroPlugin'
|
|
2
|
+
export type { MetroPluginOptions } from './plugins/metroPlugin'
|
|
3
|
+
export { expoManifestRequestHandlerPlugin } from './plugins/expoManifestRequestHandlerPlugin'
|
|
4
|
+
export type { ExpoManifestRequestHandlerPluginPluginOptions } from './plugins/expoManifestRequestHandlerPlugin'
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { TLSSocket } from 'node:tls'
|
|
2
|
+
import type { PluginOption } from 'vite'
|
|
3
|
+
|
|
4
|
+
import { projectImport } from '../utils/projectImport'
|
|
5
|
+
import { patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName } from '../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName'
|
|
6
|
+
|
|
7
|
+
export type ExpoManifestRequestHandlerPluginPluginOptions = {
|
|
8
|
+
/**
|
|
9
|
+
* Overrides the main module name which is normally defined as the `main` field in `package.json`.
|
|
10
|
+
*
|
|
11
|
+
* This will affect the `launchAsset.url` field in the Expo manifest response.
|
|
12
|
+
*
|
|
13
|
+
* It can be used to change the entry point of the React Native app without the need of using
|
|
14
|
+
* the `main` field in `package.json`.
|
|
15
|
+
*/
|
|
16
|
+
mainModuleName?: string
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function expoManifestRequestHandlerPlugin(
|
|
20
|
+
options: ExpoManifestRequestHandlerPluginPluginOptions
|
|
21
|
+
): PluginOption {
|
|
22
|
+
// let projectRoot = ''
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
name: 'expo-manifest-request-handler',
|
|
26
|
+
// configResolved(config) {
|
|
27
|
+
// projectRoot = config.root
|
|
28
|
+
// },
|
|
29
|
+
async configureServer(server) {
|
|
30
|
+
const { root: projectRoot } = server.config
|
|
31
|
+
|
|
32
|
+
const ExpoGoManifestHandlerMiddleware = (
|
|
33
|
+
await projectImport(
|
|
34
|
+
projectRoot,
|
|
35
|
+
'@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js'
|
|
36
|
+
)
|
|
37
|
+
).default.ExpoGoManifestHandlerMiddleware
|
|
38
|
+
|
|
39
|
+
server.middlewares.use(async (req, res, next) => {
|
|
40
|
+
if (!req.headers['expo-platform']) {
|
|
41
|
+
// Not an Expo manifest request, skip this middleware and proceed.
|
|
42
|
+
return next()
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const protocol = req.socket instanceof TLSSocket && req.socket.encrypted ? 'https' : 'http'
|
|
46
|
+
|
|
47
|
+
const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {
|
|
48
|
+
constructUrl: ({ scheme, hostname }) => {
|
|
49
|
+
// Make the dev server work well behind a reverse proxy by deriving the host from request headers.
|
|
50
|
+
const host = req.headers['x-forwarded-host'] || req.headers.host || hostname
|
|
51
|
+
|
|
52
|
+
if (!scheme) {
|
|
53
|
+
// Some manifest fields (e.g., extra.expoClient.hostUri) must omit the scheme
|
|
54
|
+
// (e.g., use `127.0.0.1:8081` instead of `http://127.0.0.1:8081`).
|
|
55
|
+
// Including a scheme here can cause issues like images not loading in dev mode.
|
|
56
|
+
return host
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return `${protocol || scheme}://${host}`
|
|
60
|
+
},
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
if (options.mainModuleName) {
|
|
64
|
+
patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(
|
|
65
|
+
manifestHandlerMiddleware,
|
|
66
|
+
options.mainModuleName
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Handle the Expo manifest request.
|
|
71
|
+
manifestHandlerMiddleware.handleRequestAsync(req, res, next)
|
|
72
|
+
})
|
|
73
|
+
},
|
|
74
|
+
}
|
|
75
|
+
}
|