UNPKG

@vtex/fsp-local

Version:

1 lines 2.98 kB
{"version":3,"sources":["../server.ts"],"sourcesContent":["import { loadConfig } from '@vtex/fsp-config'\nimport express from 'express'\nimport { createProxyMiddleware } from 'http-proxy-middleware'\n\nconst ROOT_PORT = 3000\n\nconst app = express()\n\nexport async function start(storeCandidate?: string) {\n const { stores } = await loadConfig()\n\n // Granted the user doesn't provide a store, we should prefer the first one available from the config file.\n const store = storeCandidate || Object.keys(stores)?.[0]\n const foundStore = stores[store]\n\n if (!foundStore) {\n throw new Error(\n `Could not find store \"${store}\". Make sure the store is configured on faststore.json`\n )\n }\n\n if (!Object.keys(foundStore).length) {\n throw new Error(\n `No available modules for \"${store}\". Make sure the modules are properly configured on faststore.json`\n )\n }\n\n const { discovery, checkout } = foundStore\n\n const salesApp = foundStore['sales-app']\n\n if (discovery) {\n const discoveryProxy = createProxyMiddleware({\n target: `http://localhost:${discovery.port}`,\n pathFilter: (path) => !path.startsWith('/checkout'),\n logger: process.env.FS_DEBUG ? console : undefined,\n })\n\n app.use('/', discoveryProxy)\n app.use('/discovery', discoveryProxy)\n }\n\n if (checkout) {\n const checkoutProxy = createProxyMiddleware({\n target: `http://localhost:${checkout.port}/checkout`,\n changeOrigin: true,\n logger: process.env.FS_DEBUG ? console : undefined,\n })\n\n app.use('/checkout', checkoutProxy)\n }\n\n if (salesApp) {\n app.use('/sales-app', (_, res) => {\n return res.redirect(`http://localhost:${salesApp.port}`)\n })\n }\n\n app.listen(ROOT_PORT, () => {\n console.log(`Running \"${store}\" and listening on port ${ROOT_PORT}`)\n })\n}\n"],"mappings":";AAAA,SAAS,kBAAkB;AAC3B,OAAO,aAAa;AACpB,SAAS,6BAA6B;AAEtC,IAAM,YAAY;AAElB,IAAM,MAAM,QAAQ;AAEpB,eAAsB,MAAM,gBAAyB;AARrD;AASE,QAAM,EAAE,OAAO,IAAI,MAAM,WAAW;AAGpC,QAAM,QAAQ,oBAAkB,YAAO,KAAK,MAAM,MAAlB,mBAAsB;AACtD,QAAM,aAAa,OAAO,KAAK;AAE/B,MAAI,CAAC,YAAY;AACf,UAAM,IAAI;AAAA,MACR,yBAAyB,KAAK;AAAA,IAChC;AAAA,EACF;AAEA,MAAI,CAAC,OAAO,KAAK,UAAU,EAAE,QAAQ;AACnC,UAAM,IAAI;AAAA,MACR,6BAA6B,KAAK;AAAA,IACpC;AAAA,EACF;AAEA,QAAM,EAAE,WAAW,SAAS,IAAI;AAEhC,QAAM,WAAW,WAAW,WAAW;AAEvC,MAAI,WAAW;AACb,UAAM,iBAAiB,sBAAsB;AAAA,MAC3C,QAAQ,oBAAoB,UAAU,IAAI;AAAA,MAC1C,YAAY,CAAC,SAAS,CAAC,KAAK,WAAW,WAAW;AAAA,MAClD,QAAQ,QAAQ,IAAI,WAAW,UAAU;AAAA,IAC3C,CAAC;AAED,QAAI,IAAI,KAAK,cAAc;AAC3B,QAAI,IAAI,cAAc,cAAc;AAAA,EACtC;AAEA,MAAI,UAAU;AACZ,UAAM,gBAAgB,sBAAsB;AAAA,MAC1C,QAAQ,oBAAoB,SAAS,IAAI;AAAA,MACzC,cAAc;AAAA,MACd,QAAQ,QAAQ,IAAI,WAAW,UAAU;AAAA,IAC3C,CAAC;AAED,QAAI,IAAI,aAAa,aAAa;AAAA,EACpC;AAEA,MAAI,UAAU;AACZ,QAAI,IAAI,cAAc,CAAC,GAAG,QAAQ;AAChC,aAAO,IAAI,SAAS,oBAAoB,SAAS,IAAI,EAAE;AAAA,IACzD,CAAC;AAAA,EACH;AAEA,MAAI,OAAO,WAAW,MAAM;AAC1B,YAAQ,IAAI,YAAY,KAAK,2BAA2B,SAAS,EAAE;AAAA,EACrE,CAAC;AACH;","names":[]}