UNPKG

nuxt-plugin-bcms

Version:
47 lines (46 loc) 1.59 kB
import axios from 'axios'; let bcmsNuxtPlugin; export function useBcmsNuxtPlugin() { return bcmsNuxtPlugin; } export function createBcmsNuxtPlugin(client, env) { if (!bcmsNuxtPlugin) { let schema = 'http'; let domain = 'localhost'; let port = '3001'; if (env.public.bcmsMostServerPort) { port = '' + env.public.bcmsMostServerPort; if (port === '443') { schema = 'https'; } } if (env.public.bcmsMostServerDomain) { domain = `${env.public.bcmsMostServerDomain}` .replace('https://', '') .replace('http://', '') .split(':')[0]; } bcmsNuxtPlugin = { ...client, async request(config) { let queryString = ''; if (config.query) { const queries = []; for (const key in config.query) { queries.push(`${key}=${config.query[key]}`); } queryString = '?' + queries.join('&'); } const basePath = `${schema}://${domain}:${port}`; const res = await axios({ url: `${typeof window === 'undefined' ? basePath : ''}/api/bcms${config.url}${queryString}`, method: config.method, headers: config.headers, data: config.data, }); return res.data; }, }; } return bcmsNuxtPlugin; }