@scayle/storefront-nuxt
Version:
Nuxt integration for the SCAYLE Commerce Engine and Storefront API
37 lines (36 loc) • 981 B
JavaScript
import { defineNuxtPlugin, useRuntimeConfig } from "nuxt/app";
import { createConsola } from "consola/browser";
import createLog from "../createLog.js";
export default defineNuxtPlugin((nuxtApp) => {
const config = useRuntimeConfig().public;
const log = createLog(
createConsola,
config.storefront.log.name,
config.storefront.log.level
);
const coreLog = log.space("sfc");
coreLog.debug("Attached client-side logger");
addClientSideErrorHandling(log, nuxtApp.vueApp);
return {
provide: {
log,
coreLog
}
};
});
function addClientSideErrorHandling(log, app) {
app.config.warnHandler = (msg, vm, trace) => {
log.space("warnHandler").warn(msg, {
vmOptions: vm?.$options,
trace,
component: vm?.$options.__name
});
};
app.config.errorHandler = (error, vm, info) => {
log.space("errorHandler").error(error, {
vmOptions: vm?.$options,
info,
component: vm?.$options.__name
});
};
}