@livestore/utils 0.4.0-dev.15 → 0.4.0-dev.16

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.
@@ -0,0 +1,34 @@
1
+ import { Effect, Layer, LogLevel } from 'effect';
2
+ /**
3
+ * Configurable logger options to control formatting (logger layer) and minimum log level.
4
+ * - Provide `logger` to override the default pretty logger.
5
+ * - Provide `logLevel` to set the minimum level (use `LogLevel.None` to disable logs).
6
+ */
7
+ export type TLoggerConfig = {
8
+ logger?: Layer.Layer<never> | undefined;
9
+ logLevel?: LogLevel.LogLevel | undefined;
10
+ };
11
+ /**
12
+ * Defaults used when resolving a logger configuration.
13
+ * - `threadName` is used by the default pretty logger when no custom logger is provided.
14
+ * - `mode` selects pretty logger mode (e.g. 'browser' for web workers).
15
+ * - `defaultLogLevel` is used when `config.logLevel` is not provided.
16
+ */
17
+ export type TLoggerDefaults = {
18
+ threadName?: string;
19
+ mode?: 'tty' | 'browser';
20
+ defaultLogLevel?: LogLevel.LogLevel;
21
+ };
22
+ /**
23
+ * Resolve the logger layer to provide to the Effect runtime.
24
+ */
25
+ export declare const resolveLoggerLayer: (config?: TLoggerConfig, defaults?: TLoggerDefaults) => Layer.Layer<never>;
26
+ /**
27
+ * Resolve the minimum log level, falling back to `defaults.defaultLogLevel` then `LogLevel.Debug`.
28
+ */
29
+ export declare const resolveLogLevel: (config?: TLoggerConfig, defaults?: TLoggerDefaults) => LogLevel.LogLevel;
30
+ /**
31
+ * Wrap an effect by applying the resolved minimum log level and providing the resolved logger layer.
32
+ */
33
+ export declare const withLoggerConfig: <TEnv, TError, TOut>(config?: TLoggerConfig, defaults?: TLoggerDefaults) => ((effect: Effect.Effect<TOut, TError, TEnv>) => Effect.Effect<TOut, TError, TEnv>);
34
+ //# sourceMappingURL=LogConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogConfig.d.ts","sourceRoot":"","sources":["../../src/effect/LogConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAwB,MAAM,QAAQ,CAAA;AAGtE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAA;CACzC,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;IACxB,eAAe,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,aAAa,EACtB,WAAW,eAAe,KACzB,KAAK,CAAC,KAAK,CAAC,KAAK,CAKnB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,aAAa,EACtB,WAAW,eAAe,KACzB,QAAQ,CAAC,QAA2E,CAAA;AAEvF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,IAAI,EAAE,MAAM,EAAE,IAAI,EACjD,SAAS,aAAa,EACtB,WAAW,eAAe,KACzB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAInF,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { Effect, Layer, LogLevel, Logger as CoreLogger } from 'effect';
2
+ import * as LocalLogger from "./Logger.js";
3
+ /**
4
+ * Resolve the logger layer to provide to the Effect runtime.
5
+ */
6
+ export const resolveLoggerLayer = (config, defaults) => {
7
+ if (config?.logger)
8
+ return config.logger;
9
+ const threadName = defaults?.threadName ?? 'livestore';
10
+ const mode = defaults?.mode;
11
+ return LocalLogger.prettyWithThread(threadName, mode ? { mode } : {});
12
+ };
13
+ /**
14
+ * Resolve the minimum log level, falling back to `defaults.defaultLogLevel` then `LogLevel.Debug`.
15
+ */
16
+ export const resolveLogLevel = (config, defaults) => config?.logLevel ?? defaults?.defaultLogLevel ?? LogLevel.Debug;
17
+ /**
18
+ * Wrap an effect by applying the resolved minimum log level and providing the resolved logger layer.
19
+ */
20
+ export const withLoggerConfig = (config, defaults) => {
21
+ const level = resolveLogLevel(config, defaults);
22
+ const layer = resolveLoggerLayer(config, defaults);
23
+ return (effect) => effect.pipe(CoreLogger.withMinimumLogLevel(level), Effect.provide(layer));
24
+ };
25
+ //# sourceMappingURL=LogConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogConfig.js","sourceRoot":"","sources":["../../src/effect/LogConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAA;AACtE,OAAO,KAAK,WAAW,MAAM,aAAa,CAAA;AAwB1C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAsB,EACtB,QAA0B,EACN,EAAE;IACtB,IAAI,MAAM,EAAE,MAAM;QAAE,OAAO,MAAM,CAAC,MAAM,CAAA;IACxC,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,IAAI,WAAW,CAAA;IACtD,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAA;IAC3B,OAAO,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AACvE,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAAsB,EACtB,QAA0B,EACP,EAAE,CAAC,MAAM,EAAE,QAAQ,IAAI,QAAQ,EAAE,eAAe,IAAI,QAAQ,CAAC,KAAK,CAAA;AAEvF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAsB,EACtB,QAA0B,EAC0D,EAAE;IACtF,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAClD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AAC9F,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/utils",
3
- "version": "0.4.0-dev.15",
3
+ "version": "0.4.0-dev.16",
4
4
  "type": "module",
5
5
  "sideEffects": [
6
6
  "./src/global.ts",