nuxt-og-image 2.0.0-beta.35 → 2.0.0-beta.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -238,6 +238,10 @@ const DefaultRuntimeCompatibility = {
|
|
|
238
238
|
png: "resvg"
|
|
239
239
|
};
|
|
240
240
|
const RuntimeCompatibility = {
|
|
241
|
+
"nitro-dev": {
|
|
242
|
+
wasm: "fetch",
|
|
243
|
+
browser: "universal"
|
|
244
|
+
},
|
|
241
245
|
"stackblitz": {
|
|
242
246
|
browser: false,
|
|
243
247
|
satori: "yoga-wasm",
|
|
@@ -268,6 +272,24 @@ const RuntimeCompatibility = {
|
|
|
268
272
|
}
|
|
269
273
|
};
|
|
270
274
|
|
|
275
|
+
const autodetectableProviders = {
|
|
276
|
+
azure_static: "azure",
|
|
277
|
+
cloudflare_pages: "cloudflare-pages",
|
|
278
|
+
netlify: "netlify",
|
|
279
|
+
stormkit: "stormkit",
|
|
280
|
+
vercel: "vercel",
|
|
281
|
+
cleavr: "cleavr"
|
|
282
|
+
};
|
|
283
|
+
const autodetectableStaticProviders = {
|
|
284
|
+
netlify: "netlify-static",
|
|
285
|
+
vercel: "vercel-static"
|
|
286
|
+
};
|
|
287
|
+
function detectTarget(options = {}) {
|
|
288
|
+
return options?.static ? autodetectableStaticProviders[provider] : autodetectableProviders[provider];
|
|
289
|
+
}
|
|
290
|
+
function getNitroPreset(nuxt) {
|
|
291
|
+
return process.env.NITRO_PRESET || nuxt.options.nitro.preset || detectTarget() || "node-server";
|
|
292
|
+
}
|
|
271
293
|
function getNitroProviderCompatibility(nuxt) {
|
|
272
294
|
if (nuxt.options.dev || nuxt.options._prepare || nuxt.options._generate) {
|
|
273
295
|
return defu({
|
|
@@ -277,7 +299,7 @@ function getNitroProviderCompatibility(nuxt) {
|
|
|
277
299
|
}
|
|
278
300
|
if (provider === "stackblitz")
|
|
279
301
|
return defu(RuntimeCompatibility.stackblitz, DefaultRuntimeCompatibility);
|
|
280
|
-
const target =
|
|
302
|
+
const target = getNitroPreset(nuxt);
|
|
281
303
|
const compatibility = RuntimeCompatibility[target];
|
|
282
304
|
if (compatibility === false)
|
|
283
305
|
return false;
|
|
@@ -323,8 +345,9 @@ const module = defineNuxtModule({
|
|
|
323
345
|
const logger = useLogger("nuxt-og-image");
|
|
324
346
|
logger.level = config.debug ? 4 : 3;
|
|
325
347
|
const { resolve } = createResolver(import.meta.url);
|
|
348
|
+
logger.debug("Using Nitro preset", getNitroPreset(nuxt));
|
|
326
349
|
const nitroCompatibility = getNitroProviderCompatibility(nuxt);
|
|
327
|
-
logger.debug("Nitro compatibility
|
|
350
|
+
logger.debug("Nitro compatibility", nitroCompatibility);
|
|
328
351
|
if (!nitroCompatibility) {
|
|
329
352
|
const target = process.env.NITRO_PRESET || nuxt.options.nitro.preset;
|
|
330
353
|
logger.warn(`It looks like the nitro target ${target} doesn't support \`nuxt-og-image\`.`);
|
|
@@ -23,10 +23,11 @@ export default defineEventHandler(async (e) => {
|
|
|
23
23
|
statusMessage: `Provider ${options.provider} is missing.`
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
+
const useCache = runtimeCacheStorage && !process.dev && options.cacheTtl && options.cacheTtl > 0;
|
|
26
27
|
const cache = prefixStorage(useStorage(), "og-image-cache:images");
|
|
27
28
|
const key = options.cacheKey || e.node.req.url;
|
|
28
29
|
let png;
|
|
29
|
-
if (
|
|
30
|
+
if (useCache && await cache.hasItem(key)) {
|
|
30
31
|
const { value, expiresAt } = await cache.getItem(key);
|
|
31
32
|
if (expiresAt > Date.now()) {
|
|
32
33
|
setHeader(e, "Cache-Control", "public, max-age=31536000");
|
|
@@ -39,7 +40,7 @@ export default defineEventHandler(async (e) => {
|
|
|
39
40
|
if (!png) {
|
|
40
41
|
try {
|
|
41
42
|
png = await provider.createPng(withBase(basePath, useHostname(e)), options);
|
|
42
|
-
if (
|
|
43
|
+
if (useCache && png) {
|
|
43
44
|
const base64png = Buffer.from(png).toString("base64");
|
|
44
45
|
await cache.setItem(key, { value: base64png, expiresAt: Date.now() + (options.cacheTtl || 0) });
|
|
45
46
|
}
|