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
@@ -5,5 +5,5 @@
5
5
  "bridge": false
6
6
  },
7
7
  "configKey": "ogImage",
8
- "version": "2.0.0-beta.35"
8
+ "version": "2.0.0-beta.36"
9
9
  }
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 = process.env.NITRO_PRESET || nuxt.options.nitro.preset;
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:", nitroCompatibility);
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\`.`);
@@ -18,6 +18,7 @@ export function defineOgImageDynamic(options = {}) {
18
18
  defineOgImage({
19
19
  provider: runtimeSatori ? "satori" : "browser",
20
20
  static: false,
21
+ cacheTtl: 0,
21
22
  ...options
22
23
  });
23
24
  }
@@ -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 (runtimeCacheStorage && await cache.hasItem(key)) {
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 (png && runtimeCacheStorage && options.static) {
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
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-og-image",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.35",
4
+ "version": "2.0.0-beta.36",
5
5
  "packageManager": "pnpm@8.1.0",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/harlan-zw",