nuxt-component-meta
Version:
[![npm version][npm-version-src]][npm-version-href] [![npm downloads][npm-downloads-src]][npm-downloads-href]
22 lines (21 loc) • 719 B
JavaScript
import { defineEventHandler, createError, appendHeader } from "h3";
import { pascalCase } from "scule";
import components from "#nuxt-component-meta/nitro";
export default defineEventHandler((event) => {
appendHeader(event, "Access-Control-Allow-Origin", "*");
const componentName = (event.context.params?.["component?"] || "").replace(/\.json$/, "");
if (componentName) {
const meta = components[pascalCase(componentName)];
if (!meta) {
throw createError({
statusMessage: "Components not found!",
statusCode: 404,
data: {
description: "Please make sure you are looking for correct component"
}
});
}
return meta;
}
return components;
});