@ethercorps/sveltekit-og 4.3.0-next.2 → 4.3.0-next.3

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.
@@ -1,12 +1,8 @@
1
- /**
2
- * Set the debug flag for the current request context
3
- * Call this once at the beginning of your request handler
4
- */
5
- export declare function setDebug(enabled: boolean): void;
6
1
  /**
7
2
  * Get the current debug flag from the request context
8
3
  */
9
4
  export declare function isDebugEnabled(): boolean;
5
+ export declare function withDebug<T>(enabled: boolean, fn: () => T): T;
10
6
  export declare const logger: {
11
7
  debug: (message: string, ...args: unknown[]) => void;
12
8
  info: (message: string, ...args: unknown[]) => void;
@@ -2,19 +2,15 @@ import { AsyncLocalStorage } from 'node:async_hooks';
2
2
  const PREFIX = '[SvelteKit-OG]';
3
3
  // Store for request-scoped debug flag
4
4
  const debugStorage = new AsyncLocalStorage();
5
- /**
6
- * Set the debug flag for the current request context
7
- * Call this once at the beginning of your request handler
8
- */
9
- export function setDebug(enabled) {
10
- debugStorage.enterWith(enabled);
11
- }
12
5
  /**
13
6
  * Get the current debug flag from the request context
14
7
  */
15
8
  export function isDebugEnabled() {
16
9
  return debugStorage.getStore() ?? false;
17
10
  }
11
+ export function withDebug(enabled, fn) {
12
+ return debugStorage.run(enabled, fn);
13
+ }
18
14
  export const logger = {
19
15
  debug: (message, ...args) => {
20
16
  if (isDebugEnabled()) {
@@ -1,32 +1,34 @@
1
1
  import { DEFAULT_OPTIONS, DEFAULT_STATUS_CODE, DEFAULT_STATUS_TEXT } from "./helpers/defaults.js";
2
2
  import { createPng, createSvg } from "./helpers/create.js";
3
- import { isDebugEnabled, logger, setDebug } from "./helpers/logger.js";
3
+ import { isDebugEnabled, logger, withDebug } from "./helpers/logger.js";
4
4
  import { handleAsync, ImageResponseError, ErrorCodes } from "./helpers/error-handler.js";
5
5
  import { formatBytes } from "./helpers/utils.js";
6
6
  export class ImageResponse extends Response {
7
7
  constructor(element, options, props) {
8
8
  const extended_options = Object.assign({ ...DEFAULT_OPTIONS }, options);
9
- setDebug(extended_options.debug ?? false);
9
+ const isDebug = extended_options.debug ?? false;
10
10
  logger.debug("Debug mode", isDebugEnabled());
11
11
  const create_image_function = extended_options.format === "png" ? createPng : createSvg;
12
12
  const body = new ReadableStream({
13
13
  async start(controller) {
14
- try {
15
- const buffer = (await handleAsync(() => create_image_function(element, extended_options, {
16
- props,
17
- }), ErrorCodes.UNKNOWN_ERROR, `Failed to generate ${extended_options.format?.toUpperCase()}`));
18
- logger.debug(buffer.length.toLocaleString());
19
- logger.info(`Generated ${extended_options.format.toUpperCase()}: ${formatBytes(buffer.length)}`);
20
- controller.enqueue(buffer);
21
- controller.close();
22
- }
23
- catch (error) {
24
- const err = error instanceof ImageResponseError
25
- ? error
26
- : new ImageResponseError(error instanceof Error ? error.message : String(error), ErrorCodes.UNKNOWN_ERROR, error instanceof Error ? error : new Error(String(error)));
27
- logger.error("Failed to create image response:", err.message);
28
- controller.error(err);
29
- }
14
+ return withDebug(isDebug, async () => {
15
+ try {
16
+ const buffer = (await handleAsync(() => create_image_function(element, extended_options, {
17
+ props,
18
+ }), ErrorCodes.UNKNOWN_ERROR, `Failed to generate ${extended_options.format?.toUpperCase()}`));
19
+ logger.debug(buffer.length.toLocaleString());
20
+ logger.info(`Generated ${extended_options.format.toUpperCase()}: ${formatBytes(buffer.length)}`);
21
+ controller.enqueue(buffer);
22
+ controller.close();
23
+ }
24
+ catch (error) {
25
+ const err = error instanceof ImageResponseError
26
+ ? error
27
+ : new ImageResponseError(error instanceof Error ? error.message : String(error), ErrorCodes.UNKNOWN_ERROR, error instanceof Error ? error : new Error(String(error)));
28
+ logger.error("Failed to create image response:", err.message);
29
+ controller.error(err);
30
+ }
31
+ });
30
32
  },
31
33
  });
32
34
  super(body, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethercorps/sveltekit-og",
3
- "version": "4.3.0-next.2",
3
+ "version": "4.3.0-next.3",
4
4
  "license": "MIT",
5
5
  "homepage": "https://sveltekit-og.dev",
6
6
  "repository": "github:ethercorps/sveltekit-og",