feat(metadata): 'manual' metadata provider

This commit is contained in:
DecDuck
2024-12-26 19:54:49 +11:00
parent 38fc6b81df
commit 2f52a16d52
11 changed files with 344 additions and 403 deletions

View File

@ -1,22 +1,25 @@
import { MetadataHandler, MetadataProvider } from "../internal/metadata";
import { GiantBombProvider } from "../internal/metadata/giantbomb";
import { ManualMetadataProvider } from "../internal/metadata/manual";
export const metadataHandler = new MetadataHandler();
const providerCreators: Array<() => MetadataProvider> = [() => new GiantBombProvider()];
const providerCreators: Array<() => MetadataProvider> = [
() => new GiantBombProvider(),
() => new ManualMetadataProvider(),
];
export default defineNitroPlugin(async (nitro) => {
for (const creator of providerCreators) {
try {
const instance = creator();
metadataHandler.addProvider(instance);
}
catch (e) {
console.warn(e);
}
for (const creator of providerCreators) {
try {
const instance = creator();
metadataHandler.addProvider(instance);
} catch (e) {
console.warn(e);
}
}
nitro.hooks.hook('request', (h3) => {
h3.context.metadataHandler = metadataHandler;
})
});
nitro.hooks.hook("request", (h3) => {
h3.context.metadataHandler = metadataHandler;
});
});