nuxt-plugin-bcms
Version:
Nuxt plugin for BCMS
47 lines (46 loc) • 1.59 kB
JavaScript
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;
}