@orion-js/logger 4.0.4 → 4.0.6

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/index.cjs CHANGED
@@ -32,13 +32,16 @@ __export(index_exports, {
32
32
  addTransport: () => addTransport,
33
33
  configureLogger: () => configureLogger,
34
34
  getLogger: () => getLogger,
35
+ getOrionAsyncContext: () => getOrionAsyncContext,
35
36
  jsonConsoleFormat: () => jsonConsoleFormat,
36
37
  jsonConsoleTransport: () => jsonConsoleTransport,
37
38
  logger: () => logger,
39
+ runWithOrionAsyncContext: () => runWithOrionAsyncContext,
38
40
  sentryFormat: () => sentryFormat,
39
41
  setLogLevel: () => setLogLevel,
40
42
  textConsoleFormat: () => textConsoleFormat,
41
43
  textConsoleTransport: () => textConsoleTransport,
44
+ updateOrionAsyncContext: () => updateOrionAsyncContext,
42
45
  winston: () => import_winston3.default,
43
46
  winstonLogger: () => winstonLogger
44
47
  });
@@ -268,18 +271,46 @@ var createLogger = (logger2) => {
268
271
  };
269
272
  };
270
273
  var logger = createLogger(winstonLogger);
274
+
275
+ // src/asyncContext.ts
276
+ var import_node_async_hooks = require("async_hooks");
277
+ var import_node_crypto = require("crypto");
278
+ var storage = new import_node_async_hooks.AsyncLocalStorage();
279
+ async function runWithOrionAsyncContext(context, callback) {
280
+ const contextWithId = {
281
+ contextId: (0, import_node_crypto.randomUUID)(),
282
+ ...context
283
+ };
284
+ return await storage.run(contextWithId, async () => {
285
+ return await callback();
286
+ });
287
+ }
288
+ var getOrionAsyncContext = () => {
289
+ return storage.getStore();
290
+ };
291
+ var updateOrionAsyncContext = (context) => {
292
+ const currentContext = storage.getStore();
293
+ if (!currentContext) {
294
+ return void 0;
295
+ }
296
+ Object.assign(currentContext, context);
297
+ return currentContext;
298
+ };
271
299
  // Annotate the CommonJS export names for ESM import in node:
272
300
  0 && (module.exports = {
273
301
  addTransport,
274
302
  configureLogger,
275
303
  getLogger,
304
+ getOrionAsyncContext,
276
305
  jsonConsoleFormat,
277
306
  jsonConsoleTransport,
278
307
  logger,
308
+ runWithOrionAsyncContext,
279
309
  sentryFormat,
280
310
  setLogLevel,
281
311
  textConsoleFormat,
282
312
  textConsoleTransport,
313
+ updateOrionAsyncContext,
283
314
  winston,
284
315
  winstonLogger
285
316
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/formats.ts","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js","../src/logger.ts","../src/helpers/getFileName.ts"],"sourcesContent":["import winston from 'winston'\n\nexport * from './formats'\nexport * from './logger'\nexport * from './types'\n\nexport {winston}\n","import {format, transports} from 'winston'\nimport util from 'node:util'\nimport {isEmpty} from 'rambdax'\nimport opentelemetry, {Span} from '@opentelemetry/api'\n\nconst {metadata, timestamp, json, colorize, combine, printf} = format\n\nconst opentelemetryContext = format(info => {\n const activeSpan: Span & {name?: string} = opentelemetry.trace.getActiveSpan()\n if (activeSpan) {\n const spanContex = activeSpan.spanContext()\n if (activeSpan.name && !info.context) {\n info.context = activeSpan.name\n }\n const fields = {\n trace_id: spanContex.traceId,\n span_id: spanContex.spanId,\n trace_flags: `0${spanContex.traceFlags.toString(16)}`,\n }\n Object.assign(info, fields)\n }\n return info\n})\n\nconst metaError = format((info: any) => {\n if (info?.metadata?.value?.error instanceof Error) {\n info.stack = info?.metadata?.value?.error.stack\n info.errorMessage = info?.metadata?.value?.error.message\n delete info?.metadata?.value?.error\n }\n\n if (info?.metadata?.value instanceof Error) {\n info.stack = info?.metadata?.value.stack\n info.errorMessage = info?.metadata?.value.message\n delete info?.metadata?.value\n }\n\n return info\n})\n\nexport const sentryFormat: any = format(info => {\n const {path, label, ...extra} = info\n return {\n ...extra,\n tags: {\n path: path || '',\n request_id: label,\n },\n }\n})\n\nfunction getMetadataText(metadata: any) {\n const {value, ...rest} = metadata\n if (isEmpty(rest)) {\n if (typeof value === 'undefined') return ''\n return util.inspect(value)\n }\n return `${util.inspect(value)} ${util.inspect(rest)}`\n}\n\nexport const textConsoleFormat: any = combine(\n colorize(),\n metadata({fillExcept: ['fileName', 'level', 'message', 'stack']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n printf((info: any) => {\n // console.log(info)\n\n const date = new Date(info.timestamp)\n const timeLabel = `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date.getSeconds().toString().padStart(2, '0')}`\n const fileNameLabel = info.fileName ? `[${info.fileName}]` : ''\n const stack = info.stack ? `\\n${info.stack}` : ''\n const value = getMetadataText(info.metadata)\n const traceId = info.trace_id\n ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}`\n : ''\n const context = [info.context, traceId].filter(Boolean).join(' ').trim()\n const contextLabel = context ? `[${context}]` : ''\n return [\n `[${info.level}]`,\n `[${timeLabel}]`,\n contextLabel,\n fileNameLabel,\n info.message,\n value,\n stack,\n ]\n .filter(Boolean)\n .join(' ')\n }),\n)\n\nexport const textConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: textConsoleFormat,\n})\n\nexport const jsonConsoleFormat: any = combine(\n metadata({fillExcept: ['fileName', 'level', 'message']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n json(),\n)\n\nexport const jsonConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: jsonConsoleFormat,\n})\n","export function type(input){\n if (input === null){\n return 'Null'\n } else if (input === undefined){\n return 'Undefined'\n } else if (Number.isNaN(input)){\n return 'NaN'\n }\n const typeResult = Object.prototype.toString.call(input).slice(8, -1)\n\n return typeResult === 'AsyncFunction' ? 'Promise' : typeResult\n}\n","import { type } from './type.js'\n\nexport function isEmpty(input){\n const inputType = type(input)\n if ([ 'Undefined', 'NaN', 'Number', 'Null' ].includes(inputType))\n return false\n if (!input) return true\n\n if (inputType === 'Object'){\n return Object.keys(input).length === 0\n }\n\n if (inputType === 'Array'){\n return input.length === 0\n }\n\n return false\n}\n","import winston, {createLogger as winstonCreateLogger, config, format} from 'winston'\nimport {jsonConsoleTransport, textConsoleTransport} from './formats'\nimport {getFileName} from './helpers/getFileName'\nimport {OrionLogger} from './types'\n\nconst transports: winston.transport[] = [\n process.env.NODE_ENV !== 'production' || process.env.ORION_DEV || process.env.JEST_WORKER_ID\n ? textConsoleTransport\n : jsonConsoleTransport,\n]\n\nexport const winstonLogger = winstonCreateLogger({\n levels: config.npm.levels,\n handleExceptions: true,\n format: format.errors({stack: true}),\n transports: transports,\n})\n\nexport const configureLogger = (options: winston.LoggerOptions) => {\n return winstonLogger.configure(options)\n}\n\nexport const setLogLevel = (level: string) => {\n winstonLogger.level = level\n}\n\nexport const addTransport = (transport: winston.transport) => {\n return winstonLogger.add(transport)\n}\n\nexport const getLogger = (context: string) => {\n return winstonLogger.child({context})\n}\n\nconst createLogger = (logger: winston.Logger): OrionLogger => {\n return {\n debug: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.debug({message, fileName, value})\n },\n info: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.info({message, fileName, value})\n },\n warn: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.warn({message, fileName, value})\n },\n error: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.error({message, fileName, value})\n },\n addContext: (module: NodeJS.Module) => {\n if (module.id) {\n const split = String(module.id).split('.orion/build/')\n const fileName = split.length > 1 ? split[1] : split[0]\n return createLogger(logger.child({fileName}))\n }\n return createLogger(logger.child({}))\n },\n addMetadata: (metadata: any) => {\n return createLogger(logger.child(metadata))\n },\n }\n}\n\nexport const logger = createLogger(winstonLogger)\n","export const getFileName = () => {\n try {\n const stack = new Error().stack\n const lines = stack.split('\\n')\n const filePath = lines[3].split('(')[1].split(')')[0]\n return improveFileName(filePath)\n } catch {\n return\n }\n}\n\nexport const improveFileName = (path: string) => {\n path = path.replace(`${process.cwd()}/`, '')\n if (path.includes('orionjs/packages')) {\n return path.replace(/^.+\\/orionjs\\/packages\\//, '@orion-js/')\n }\n\n if (path.includes('node_modules/@orion-js/')) {\n const after = path.split('node_modules/@orion-js/')[1]\n const onlyPackageName = after.split('/')[0]\n return `@orion-js/${onlyPackageName}`\n }\n\n if (path.includes('.orion/build')) {\n return path.replace(/^.+\\.orion\\/build\\//, '')\n }\n if (path.includes('.pnpm/@orion-js+')) {\n return `@orion-js/${path.split('.pnpm/@orion-js+')[1].split('@')[0]}`\n }\n if (path.includes('/node_modules/@')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}/${parts[1]}`\n }\n if (path.includes('/node_modules/')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}`\n }\n return path\n}\n"],"mappings":"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","names":["winston","import_winston","opentelemetry","metadata","util","import_winston","transports","winstonCreateLogger","logger","module","metadata"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/formats.ts","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js","../src/logger.ts","../src/helpers/getFileName.ts","../src/asyncContext.ts"],"sourcesContent":["import winston from 'winston'\n\nexport * from './formats'\nexport * from './logger'\nexport * from './types'\nexport * from './asyncContext'\n\nexport {winston}\n","import {format, transports} from 'winston'\nimport util from 'node:util'\nimport {isEmpty} from 'rambdax'\nimport opentelemetry, {Span} from '@opentelemetry/api'\n\nconst {metadata, timestamp, json, colorize, combine, printf} = format\n\nconst opentelemetryContext = format(info => {\n const activeSpan: Span & {name?: string} = opentelemetry.trace.getActiveSpan()\n if (activeSpan) {\n const spanContex = activeSpan.spanContext()\n if (activeSpan.name && !info.context) {\n info.context = activeSpan.name\n }\n const fields = {\n trace_id: spanContex.traceId,\n span_id: spanContex.spanId,\n trace_flags: `0${spanContex.traceFlags.toString(16)}`,\n }\n Object.assign(info, fields)\n }\n return info\n})\n\nconst metaError = format((info: any) => {\n if (info?.metadata?.value?.error instanceof Error) {\n info.stack = info?.metadata?.value?.error.stack\n info.errorMessage = info?.metadata?.value?.error.message\n delete info?.metadata?.value?.error\n }\n\n if (info?.metadata?.value instanceof Error) {\n info.stack = info?.metadata?.value.stack\n info.errorMessage = info?.metadata?.value.message\n delete info?.metadata?.value\n }\n\n return info\n})\n\nexport const sentryFormat: any = format(info => {\n const {path, label, ...extra} = info\n return {\n ...extra,\n tags: {\n path: path || '',\n request_id: label,\n },\n }\n})\n\nfunction getMetadataText(metadata: any) {\n const {value, ...rest} = metadata\n if (isEmpty(rest)) {\n if (typeof value === 'undefined') return ''\n return util.inspect(value)\n }\n return `${util.inspect(value)} ${util.inspect(rest)}`\n}\n\nexport const textConsoleFormat: any = combine(\n colorize(),\n metadata({fillExcept: ['fileName', 'level', 'message', 'stack']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n printf((info: any) => {\n // console.log(info)\n\n const date = new Date(info.timestamp)\n const timeLabel = `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date.getSeconds().toString().padStart(2, '0')}`\n const fileNameLabel = info.fileName ? `[${info.fileName}]` : ''\n const stack = info.stack ? `\\n${info.stack}` : ''\n const value = getMetadataText(info.metadata)\n const traceId = info.trace_id\n ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}`\n : ''\n const context = [info.context, traceId].filter(Boolean).join(' ').trim()\n const contextLabel = context ? `[${context}]` : ''\n return [\n `[${info.level}]`,\n `[${timeLabel}]`,\n contextLabel,\n fileNameLabel,\n info.message,\n value,\n stack,\n ]\n .filter(Boolean)\n .join(' ')\n }),\n)\n\nexport const textConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: textConsoleFormat,\n})\n\nexport const jsonConsoleFormat: any = combine(\n metadata({fillExcept: ['fileName', 'level', 'message']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n json(),\n)\n\nexport const jsonConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: jsonConsoleFormat,\n})\n","export function type(input){\n if (input === null){\n return 'Null'\n } else if (input === undefined){\n return 'Undefined'\n } else if (Number.isNaN(input)){\n return 'NaN'\n }\n const typeResult = Object.prototype.toString.call(input).slice(8, -1)\n\n return typeResult === 'AsyncFunction' ? 'Promise' : typeResult\n}\n","import { type } from './type.js'\n\nexport function isEmpty(input){\n const inputType = type(input)\n if ([ 'Undefined', 'NaN', 'Number', 'Null' ].includes(inputType))\n return false\n if (!input) return true\n\n if (inputType === 'Object'){\n return Object.keys(input).length === 0\n }\n\n if (inputType === 'Array'){\n return input.length === 0\n }\n\n return false\n}\n","import winston, {createLogger as winstonCreateLogger, config, format} from 'winston'\nimport {jsonConsoleTransport, textConsoleTransport} from './formats'\nimport {getFileName} from './helpers/getFileName'\nimport {OrionLogger} from './types'\n\nconst transports: winston.transport[] = [\n process.env.NODE_ENV !== 'production' || process.env.ORION_DEV || process.env.JEST_WORKER_ID\n ? textConsoleTransport\n : jsonConsoleTransport,\n]\n\nexport const winstonLogger = winstonCreateLogger({\n levels: config.npm.levels,\n handleExceptions: true,\n format: format.errors({stack: true}),\n transports: transports,\n})\n\nexport const configureLogger = (options: winston.LoggerOptions) => {\n return winstonLogger.configure(options)\n}\n\nexport const setLogLevel = (level: string) => {\n winstonLogger.level = level\n}\n\nexport const addTransport = (transport: winston.transport) => {\n return winstonLogger.add(transport)\n}\n\nexport const getLogger = (context: string) => {\n return winstonLogger.child({context})\n}\n\nconst createLogger = (logger: winston.Logger): OrionLogger => {\n return {\n debug: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.debug({message, fileName, value})\n },\n info: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.info({message, fileName, value})\n },\n warn: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.warn({message, fileName, value})\n },\n error: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.error({message, fileName, value})\n },\n addContext: (module: NodeJS.Module) => {\n if (module.id) {\n const split = String(module.id).split('.orion/build/')\n const fileName = split.length > 1 ? split[1] : split[0]\n return createLogger(logger.child({fileName}))\n }\n return createLogger(logger.child({}))\n },\n addMetadata: (metadata: any) => {\n return createLogger(logger.child(metadata))\n },\n }\n}\n\nexport const logger = createLogger(winstonLogger)\n","export const getFileName = () => {\n try {\n const stack = new Error().stack\n const lines = stack.split('\\n')\n const filePath = lines[3].split('(')[1].split(')')[0]\n return improveFileName(filePath)\n } catch {\n return\n }\n}\n\nexport const improveFileName = (path: string) => {\n path = path.replace(`${process.cwd()}/`, '')\n if (path.includes('orionjs/packages')) {\n return path.replace(/^.+\\/orionjs\\/packages\\//, '@orion-js/')\n }\n\n if (path.includes('node_modules/@orion-js/')) {\n const after = path.split('node_modules/@orion-js/')[1]\n const onlyPackageName = after.split('/')[0]\n return `@orion-js/${onlyPackageName}`\n }\n\n if (path.includes('.orion/build')) {\n return path.replace(/^.+\\.orion\\/build\\//, '')\n }\n if (path.includes('.pnpm/@orion-js+')) {\n return `@orion-js/${path.split('.pnpm/@orion-js+')[1].split('@')[0]}`\n }\n if (path.includes('/node_modules/@')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}/${parts[1]}`\n }\n if (path.includes('/node_modules/')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}`\n }\n return path\n}\n","import {AsyncLocalStorage} from 'node:async_hooks'\nimport {randomUUID} from 'node:crypto'\n\ninterface BaseOrionAsyncContext {\n contextId: string\n viewer?: unknown\n params?: unknown\n}\n\nexport interface JobAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'job'\n jobName: string\n}\n\nexport interface RouteAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'route'\n routeName: string\n pathname: string\n}\n\nexport interface ResolverAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'resolver'\n resolverName?: string\n}\n\nexport interface ModelResolverAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'modelResolver'\n modelName?: string\n modelResolverName?: string\n parentData?: unknown\n}\n\nexport interface SubscriptionAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'subscription'\n subscriptionName: string\n}\n\nexport interface EchoAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'echo'\n echoName: string\n}\n\nexport type OrionAsyncContext =\n | JobAsyncContext\n | RouteAsyncContext\n | ResolverAsyncContext\n | ModelResolverAsyncContext\n | SubscriptionAsyncContext\n | EchoAsyncContext\n\nconst storage: AsyncLocalStorage<OrionAsyncContext> = new AsyncLocalStorage()\n\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<JobAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<RouteAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<ResolverAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<ModelResolverAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<SubscriptionAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<EchoAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<OrionAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn> {\n const contextWithId = {\n contextId: randomUUID(),\n ...context,\n } as OrionAsyncContext\n return await storage.run(contextWithId, async () => {\n return await callback()\n })\n}\n\nexport const getOrionAsyncContext = (): OrionAsyncContext | undefined => {\n return storage.getStore()\n}\n\nexport const updateOrionAsyncContext = (\n context: Partial<OrionAsyncContext>,\n): OrionAsyncContext | undefined => {\n const currentContext: OrionAsyncContext | undefined = storage.getStore()\n if (!currentContext) {\n return undefined\n }\n\n Object.assign(currentContext, context)\n return currentContext\n}\n"],"mappings":"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","names":["winston","import_winston","opentelemetry","metadata","util","import_winston","transports","winstonCreateLogger","logger","module","metadata"]}
package/dist/index.d.cts CHANGED
@@ -24,4 +24,46 @@ declare const addTransport: (transport: winston.transport) => winston.Logger;
24
24
  declare const getLogger: (context: string) => winston.Logger;
25
25
  declare const logger: OrionLogger;
26
26
 
27
- export { type LogFunction, type OrionLogger, addTransport, configureLogger, getLogger, jsonConsoleFormat, jsonConsoleTransport, logger, sentryFormat, setLogLevel, textConsoleFormat, textConsoleTransport, winstonLogger };
27
+ interface BaseOrionAsyncContext {
28
+ contextId: string;
29
+ viewer?: unknown;
30
+ params?: unknown;
31
+ }
32
+ interface JobAsyncContext extends BaseOrionAsyncContext {
33
+ controllerType: 'job';
34
+ jobName: string;
35
+ }
36
+ interface RouteAsyncContext extends BaseOrionAsyncContext {
37
+ controllerType: 'route';
38
+ routeName: string;
39
+ pathname: string;
40
+ }
41
+ interface ResolverAsyncContext extends BaseOrionAsyncContext {
42
+ controllerType: 'resolver';
43
+ resolverName?: string;
44
+ }
45
+ interface ModelResolverAsyncContext extends BaseOrionAsyncContext {
46
+ controllerType: 'modelResolver';
47
+ modelName?: string;
48
+ modelResolverName?: string;
49
+ parentData?: unknown;
50
+ }
51
+ interface SubscriptionAsyncContext extends BaseOrionAsyncContext {
52
+ controllerType: 'subscription';
53
+ subscriptionName: string;
54
+ }
55
+ interface EchoAsyncContext extends BaseOrionAsyncContext {
56
+ controllerType: 'echo';
57
+ echoName: string;
58
+ }
59
+ type OrionAsyncContext = JobAsyncContext | RouteAsyncContext | ResolverAsyncContext | ModelResolverAsyncContext | SubscriptionAsyncContext | EchoAsyncContext;
60
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<JobAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
61
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<RouteAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
62
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<ResolverAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
63
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<ModelResolverAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
64
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<SubscriptionAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
65
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<EchoAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
66
+ declare const getOrionAsyncContext: () => OrionAsyncContext | undefined;
67
+ declare const updateOrionAsyncContext: (context: Partial<OrionAsyncContext>) => OrionAsyncContext | undefined;
68
+
69
+ export { type EchoAsyncContext, type JobAsyncContext, type LogFunction, type ModelResolverAsyncContext, type OrionAsyncContext, type OrionLogger, type ResolverAsyncContext, type RouteAsyncContext, type SubscriptionAsyncContext, addTransport, configureLogger, getLogger, getOrionAsyncContext, jsonConsoleFormat, jsonConsoleTransport, logger, runWithOrionAsyncContext, sentryFormat, setLogLevel, textConsoleFormat, textConsoleTransport, updateOrionAsyncContext, winstonLogger };
package/dist/index.d.ts CHANGED
@@ -24,4 +24,46 @@ declare const addTransport: (transport: winston.transport) => winston.Logger;
24
24
  declare const getLogger: (context: string) => winston.Logger;
25
25
  declare const logger: OrionLogger;
26
26
 
27
- export { type LogFunction, type OrionLogger, addTransport, configureLogger, getLogger, jsonConsoleFormat, jsonConsoleTransport, logger, sentryFormat, setLogLevel, textConsoleFormat, textConsoleTransport, winstonLogger };
27
+ interface BaseOrionAsyncContext {
28
+ contextId: string;
29
+ viewer?: unknown;
30
+ params?: unknown;
31
+ }
32
+ interface JobAsyncContext extends BaseOrionAsyncContext {
33
+ controllerType: 'job';
34
+ jobName: string;
35
+ }
36
+ interface RouteAsyncContext extends BaseOrionAsyncContext {
37
+ controllerType: 'route';
38
+ routeName: string;
39
+ pathname: string;
40
+ }
41
+ interface ResolverAsyncContext extends BaseOrionAsyncContext {
42
+ controllerType: 'resolver';
43
+ resolverName?: string;
44
+ }
45
+ interface ModelResolverAsyncContext extends BaseOrionAsyncContext {
46
+ controllerType: 'modelResolver';
47
+ modelName?: string;
48
+ modelResolverName?: string;
49
+ parentData?: unknown;
50
+ }
51
+ interface SubscriptionAsyncContext extends BaseOrionAsyncContext {
52
+ controllerType: 'subscription';
53
+ subscriptionName: string;
54
+ }
55
+ interface EchoAsyncContext extends BaseOrionAsyncContext {
56
+ controllerType: 'echo';
57
+ echoName: string;
58
+ }
59
+ type OrionAsyncContext = JobAsyncContext | RouteAsyncContext | ResolverAsyncContext | ModelResolverAsyncContext | SubscriptionAsyncContext | EchoAsyncContext;
60
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<JobAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
61
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<RouteAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
62
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<ResolverAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
63
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<ModelResolverAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
64
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<SubscriptionAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
65
+ declare function runWithOrionAsyncContext<TReturn>(context: Omit<EchoAsyncContext, 'contextId'>, callback: () => Promise<TReturn> | TReturn): Promise<TReturn>;
66
+ declare const getOrionAsyncContext: () => OrionAsyncContext | undefined;
67
+ declare const updateOrionAsyncContext: (context: Partial<OrionAsyncContext>) => OrionAsyncContext | undefined;
68
+
69
+ export { type EchoAsyncContext, type JobAsyncContext, type LogFunction, type ModelResolverAsyncContext, type OrionAsyncContext, type OrionLogger, type ResolverAsyncContext, type RouteAsyncContext, type SubscriptionAsyncContext, addTransport, configureLogger, getLogger, getOrionAsyncContext, jsonConsoleFormat, jsonConsoleTransport, logger, runWithOrionAsyncContext, sentryFormat, setLogLevel, textConsoleFormat, textConsoleTransport, updateOrionAsyncContext, winstonLogger };
package/dist/index.js CHANGED
@@ -224,17 +224,45 @@ var createLogger = (logger2) => {
224
224
  };
225
225
  };
226
226
  var logger = createLogger(winstonLogger);
227
+
228
+ // src/asyncContext.ts
229
+ import { AsyncLocalStorage } from "async_hooks";
230
+ import { randomUUID } from "crypto";
231
+ var storage = new AsyncLocalStorage();
232
+ async function runWithOrionAsyncContext(context, callback) {
233
+ const contextWithId = {
234
+ contextId: randomUUID(),
235
+ ...context
236
+ };
237
+ return await storage.run(contextWithId, async () => {
238
+ return await callback();
239
+ });
240
+ }
241
+ var getOrionAsyncContext = () => {
242
+ return storage.getStore();
243
+ };
244
+ var updateOrionAsyncContext = (context) => {
245
+ const currentContext = storage.getStore();
246
+ if (!currentContext) {
247
+ return void 0;
248
+ }
249
+ Object.assign(currentContext, context);
250
+ return currentContext;
251
+ };
227
252
  export {
228
253
  addTransport,
229
254
  configureLogger,
230
255
  getLogger,
256
+ getOrionAsyncContext,
231
257
  jsonConsoleFormat,
232
258
  jsonConsoleTransport,
233
259
  logger,
260
+ runWithOrionAsyncContext,
234
261
  sentryFormat,
235
262
  setLogLevel,
236
263
  textConsoleFormat,
237
264
  textConsoleTransport,
265
+ updateOrionAsyncContext,
238
266
  winston2 as winston,
239
267
  winstonLogger
240
268
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/formats.ts","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js","../src/logger.ts","../src/helpers/getFileName.ts"],"sourcesContent":["import winston from 'winston'\n\nexport * from './formats'\nexport * from './logger'\nexport * from './types'\n\nexport {winston}\n","import {format, transports} from 'winston'\nimport util from 'node:util'\nimport {isEmpty} from 'rambdax'\nimport opentelemetry, {Span} from '@opentelemetry/api'\n\nconst {metadata, timestamp, json, colorize, combine, printf} = format\n\nconst opentelemetryContext = format(info => {\n const activeSpan: Span & {name?: string} = opentelemetry.trace.getActiveSpan()\n if (activeSpan) {\n const spanContex = activeSpan.spanContext()\n if (activeSpan.name && !info.context) {\n info.context = activeSpan.name\n }\n const fields = {\n trace_id: spanContex.traceId,\n span_id: spanContex.spanId,\n trace_flags: `0${spanContex.traceFlags.toString(16)}`,\n }\n Object.assign(info, fields)\n }\n return info\n})\n\nconst metaError = format((info: any) => {\n if (info?.metadata?.value?.error instanceof Error) {\n info.stack = info?.metadata?.value?.error.stack\n info.errorMessage = info?.metadata?.value?.error.message\n delete info?.metadata?.value?.error\n }\n\n if (info?.metadata?.value instanceof Error) {\n info.stack = info?.metadata?.value.stack\n info.errorMessage = info?.metadata?.value.message\n delete info?.metadata?.value\n }\n\n return info\n})\n\nexport const sentryFormat: any = format(info => {\n const {path, label, ...extra} = info\n return {\n ...extra,\n tags: {\n path: path || '',\n request_id: label,\n },\n }\n})\n\nfunction getMetadataText(metadata: any) {\n const {value, ...rest} = metadata\n if (isEmpty(rest)) {\n if (typeof value === 'undefined') return ''\n return util.inspect(value)\n }\n return `${util.inspect(value)} ${util.inspect(rest)}`\n}\n\nexport const textConsoleFormat: any = combine(\n colorize(),\n metadata({fillExcept: ['fileName', 'level', 'message', 'stack']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n printf((info: any) => {\n // console.log(info)\n\n const date = new Date(info.timestamp)\n const timeLabel = `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date.getSeconds().toString().padStart(2, '0')}`\n const fileNameLabel = info.fileName ? `[${info.fileName}]` : ''\n const stack = info.stack ? `\\n${info.stack}` : ''\n const value = getMetadataText(info.metadata)\n const traceId = info.trace_id\n ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}`\n : ''\n const context = [info.context, traceId].filter(Boolean).join(' ').trim()\n const contextLabel = context ? `[${context}]` : ''\n return [\n `[${info.level}]`,\n `[${timeLabel}]`,\n contextLabel,\n fileNameLabel,\n info.message,\n value,\n stack,\n ]\n .filter(Boolean)\n .join(' ')\n }),\n)\n\nexport const textConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: textConsoleFormat,\n})\n\nexport const jsonConsoleFormat: any = combine(\n metadata({fillExcept: ['fileName', 'level', 'message']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n json(),\n)\n\nexport const jsonConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: jsonConsoleFormat,\n})\n","export function type(input){\n if (input === null){\n return 'Null'\n } else if (input === undefined){\n return 'Undefined'\n } else if (Number.isNaN(input)){\n return 'NaN'\n }\n const typeResult = Object.prototype.toString.call(input).slice(8, -1)\n\n return typeResult === 'AsyncFunction' ? 'Promise' : typeResult\n}\n","import { type } from './type.js'\n\nexport function isEmpty(input){\n const inputType = type(input)\n if ([ 'Undefined', 'NaN', 'Number', 'Null' ].includes(inputType))\n return false\n if (!input) return true\n\n if (inputType === 'Object'){\n return Object.keys(input).length === 0\n }\n\n if (inputType === 'Array'){\n return input.length === 0\n }\n\n return false\n}\n","import winston, {createLogger as winstonCreateLogger, config, format} from 'winston'\nimport {jsonConsoleTransport, textConsoleTransport} from './formats'\nimport {getFileName} from './helpers/getFileName'\nimport {OrionLogger} from './types'\n\nconst transports: winston.transport[] = [\n process.env.NODE_ENV !== 'production' || process.env.ORION_DEV || process.env.JEST_WORKER_ID\n ? textConsoleTransport\n : jsonConsoleTransport,\n]\n\nexport const winstonLogger = winstonCreateLogger({\n levels: config.npm.levels,\n handleExceptions: true,\n format: format.errors({stack: true}),\n transports: transports,\n})\n\nexport const configureLogger = (options: winston.LoggerOptions) => {\n return winstonLogger.configure(options)\n}\n\nexport const setLogLevel = (level: string) => {\n winstonLogger.level = level\n}\n\nexport const addTransport = (transport: winston.transport) => {\n return winstonLogger.add(transport)\n}\n\nexport const getLogger = (context: string) => {\n return winstonLogger.child({context})\n}\n\nconst createLogger = (logger: winston.Logger): OrionLogger => {\n return {\n debug: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.debug({message, fileName, value})\n },\n info: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.info({message, fileName, value})\n },\n warn: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.warn({message, fileName, value})\n },\n error: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.error({message, fileName, value})\n },\n addContext: (module: NodeJS.Module) => {\n if (module.id) {\n const split = String(module.id).split('.orion/build/')\n const fileName = split.length > 1 ? split[1] : split[0]\n return createLogger(logger.child({fileName}))\n }\n return createLogger(logger.child({}))\n },\n addMetadata: (metadata: any) => {\n return createLogger(logger.child(metadata))\n },\n }\n}\n\nexport const logger = createLogger(winstonLogger)\n","export const getFileName = () => {\n try {\n const stack = new Error().stack\n const lines = stack.split('\\n')\n const filePath = lines[3].split('(')[1].split(')')[0]\n return improveFileName(filePath)\n } catch {\n return\n }\n}\n\nexport const improveFileName = (path: string) => {\n path = path.replace(`${process.cwd()}/`, '')\n if (path.includes('orionjs/packages')) {\n return path.replace(/^.+\\/orionjs\\/packages\\//, '@orion-js/')\n }\n\n if (path.includes('node_modules/@orion-js/')) {\n const after = path.split('node_modules/@orion-js/')[1]\n const onlyPackageName = after.split('/')[0]\n return `@orion-js/${onlyPackageName}`\n }\n\n if (path.includes('.orion/build')) {\n return path.replace(/^.+\\.orion\\/build\\//, '')\n }\n if (path.includes('.pnpm/@orion-js+')) {\n return `@orion-js/${path.split('.pnpm/@orion-js+')[1].split('@')[0]}`\n }\n if (path.includes('/node_modules/@')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}/${parts[1]}`\n }\n if (path.includes('/node_modules/')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}`\n }\n return path\n}\n"],"mappings":"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","names":["winston","metadata","format","transports","format","logger","metadata"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/formats.ts","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js","../src/logger.ts","../src/helpers/getFileName.ts","../src/asyncContext.ts"],"sourcesContent":["import winston from 'winston'\n\nexport * from './formats'\nexport * from './logger'\nexport * from './types'\nexport * from './asyncContext'\n\nexport {winston}\n","import {format, transports} from 'winston'\nimport util from 'node:util'\nimport {isEmpty} from 'rambdax'\nimport opentelemetry, {Span} from '@opentelemetry/api'\n\nconst {metadata, timestamp, json, colorize, combine, printf} = format\n\nconst opentelemetryContext = format(info => {\n const activeSpan: Span & {name?: string} = opentelemetry.trace.getActiveSpan()\n if (activeSpan) {\n const spanContex = activeSpan.spanContext()\n if (activeSpan.name && !info.context) {\n info.context = activeSpan.name\n }\n const fields = {\n trace_id: spanContex.traceId,\n span_id: spanContex.spanId,\n trace_flags: `0${spanContex.traceFlags.toString(16)}`,\n }\n Object.assign(info, fields)\n }\n return info\n})\n\nconst metaError = format((info: any) => {\n if (info?.metadata?.value?.error instanceof Error) {\n info.stack = info?.metadata?.value?.error.stack\n info.errorMessage = info?.metadata?.value?.error.message\n delete info?.metadata?.value?.error\n }\n\n if (info?.metadata?.value instanceof Error) {\n info.stack = info?.metadata?.value.stack\n info.errorMessage = info?.metadata?.value.message\n delete info?.metadata?.value\n }\n\n return info\n})\n\nexport const sentryFormat: any = format(info => {\n const {path, label, ...extra} = info\n return {\n ...extra,\n tags: {\n path: path || '',\n request_id: label,\n },\n }\n})\n\nfunction getMetadataText(metadata: any) {\n const {value, ...rest} = metadata\n if (isEmpty(rest)) {\n if (typeof value === 'undefined') return ''\n return util.inspect(value)\n }\n return `${util.inspect(value)} ${util.inspect(rest)}`\n}\n\nexport const textConsoleFormat: any = combine(\n colorize(),\n metadata({fillExcept: ['fileName', 'level', 'message', 'stack']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n printf((info: any) => {\n // console.log(info)\n\n const date = new Date(info.timestamp)\n const timeLabel = `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date.getSeconds().toString().padStart(2, '0')}`\n const fileNameLabel = info.fileName ? `[${info.fileName}]` : ''\n const stack = info.stack ? `\\n${info.stack}` : ''\n const value = getMetadataText(info.metadata)\n const traceId = info.trace_id\n ? `${String(info.trace_id).substring(0, 8)}@${String(info.span_id).substring(0, 8)}`\n : ''\n const context = [info.context, traceId].filter(Boolean).join(' ').trim()\n const contextLabel = context ? `[${context}]` : ''\n return [\n `[${info.level}]`,\n `[${timeLabel}]`,\n contextLabel,\n fileNameLabel,\n info.message,\n value,\n stack,\n ]\n .filter(Boolean)\n .join(' ')\n }),\n)\n\nexport const textConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: textConsoleFormat,\n})\n\nexport const jsonConsoleFormat: any = combine(\n metadata({fillExcept: ['fileName', 'level', 'message']}),\n opentelemetryContext(),\n metaError(),\n timestamp(),\n json(),\n)\n\nexport const jsonConsoleTransport = new transports.Console({\n handleExceptions: true,\n format: jsonConsoleFormat,\n})\n","export function type(input){\n if (input === null){\n return 'Null'\n } else if (input === undefined){\n return 'Undefined'\n } else if (Number.isNaN(input)){\n return 'NaN'\n }\n const typeResult = Object.prototype.toString.call(input).slice(8, -1)\n\n return typeResult === 'AsyncFunction' ? 'Promise' : typeResult\n}\n","import { type } from './type.js'\n\nexport function isEmpty(input){\n const inputType = type(input)\n if ([ 'Undefined', 'NaN', 'Number', 'Null' ].includes(inputType))\n return false\n if (!input) return true\n\n if (inputType === 'Object'){\n return Object.keys(input).length === 0\n }\n\n if (inputType === 'Array'){\n return input.length === 0\n }\n\n return false\n}\n","import winston, {createLogger as winstonCreateLogger, config, format} from 'winston'\nimport {jsonConsoleTransport, textConsoleTransport} from './formats'\nimport {getFileName} from './helpers/getFileName'\nimport {OrionLogger} from './types'\n\nconst transports: winston.transport[] = [\n process.env.NODE_ENV !== 'production' || process.env.ORION_DEV || process.env.JEST_WORKER_ID\n ? textConsoleTransport\n : jsonConsoleTransport,\n]\n\nexport const winstonLogger = winstonCreateLogger({\n levels: config.npm.levels,\n handleExceptions: true,\n format: format.errors({stack: true}),\n transports: transports,\n})\n\nexport const configureLogger = (options: winston.LoggerOptions) => {\n return winstonLogger.configure(options)\n}\n\nexport const setLogLevel = (level: string) => {\n winstonLogger.level = level\n}\n\nexport const addTransport = (transport: winston.transport) => {\n return winstonLogger.add(transport)\n}\n\nexport const getLogger = (context: string) => {\n return winstonLogger.child({context})\n}\n\nconst createLogger = (logger: winston.Logger): OrionLogger => {\n return {\n debug: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.debug({message, fileName, value})\n },\n info: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.info({message, fileName, value})\n },\n warn: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.warn({message, fileName, value})\n },\n error: (message: string, value: any) => {\n const fileName = getFileName()\n return logger.error({message, fileName, value})\n },\n addContext: (module: NodeJS.Module) => {\n if (module.id) {\n const split = String(module.id).split('.orion/build/')\n const fileName = split.length > 1 ? split[1] : split[0]\n return createLogger(logger.child({fileName}))\n }\n return createLogger(logger.child({}))\n },\n addMetadata: (metadata: any) => {\n return createLogger(logger.child(metadata))\n },\n }\n}\n\nexport const logger = createLogger(winstonLogger)\n","export const getFileName = () => {\n try {\n const stack = new Error().stack\n const lines = stack.split('\\n')\n const filePath = lines[3].split('(')[1].split(')')[0]\n return improveFileName(filePath)\n } catch {\n return\n }\n}\n\nexport const improveFileName = (path: string) => {\n path = path.replace(`${process.cwd()}/`, '')\n if (path.includes('orionjs/packages')) {\n return path.replace(/^.+\\/orionjs\\/packages\\//, '@orion-js/')\n }\n\n if (path.includes('node_modules/@orion-js/')) {\n const after = path.split('node_modules/@orion-js/')[1]\n const onlyPackageName = after.split('/')[0]\n return `@orion-js/${onlyPackageName}`\n }\n\n if (path.includes('.orion/build')) {\n return path.replace(/^.+\\.orion\\/build\\//, '')\n }\n if (path.includes('.pnpm/@orion-js+')) {\n return `@orion-js/${path.split('.pnpm/@orion-js+')[1].split('@')[0]}`\n }\n if (path.includes('/node_modules/@')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}/${parts[1]}`\n }\n if (path.includes('/node_modules/')) {\n const after = path.split('/node_modules/')[1]\n const parts = after.split('/')\n return `${parts[0]}`\n }\n return path\n}\n","import {AsyncLocalStorage} from 'node:async_hooks'\nimport {randomUUID} from 'node:crypto'\n\ninterface BaseOrionAsyncContext {\n contextId: string\n viewer?: unknown\n params?: unknown\n}\n\nexport interface JobAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'job'\n jobName: string\n}\n\nexport interface RouteAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'route'\n routeName: string\n pathname: string\n}\n\nexport interface ResolverAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'resolver'\n resolverName?: string\n}\n\nexport interface ModelResolverAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'modelResolver'\n modelName?: string\n modelResolverName?: string\n parentData?: unknown\n}\n\nexport interface SubscriptionAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'subscription'\n subscriptionName: string\n}\n\nexport interface EchoAsyncContext extends BaseOrionAsyncContext {\n controllerType: 'echo'\n echoName: string\n}\n\nexport type OrionAsyncContext =\n | JobAsyncContext\n | RouteAsyncContext\n | ResolverAsyncContext\n | ModelResolverAsyncContext\n | SubscriptionAsyncContext\n | EchoAsyncContext\n\nconst storage: AsyncLocalStorage<OrionAsyncContext> = new AsyncLocalStorage()\n\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<JobAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<RouteAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<ResolverAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<ModelResolverAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<SubscriptionAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<EchoAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn>\nexport async function runWithOrionAsyncContext<TReturn>(\n context: Omit<OrionAsyncContext, 'contextId'>,\n callback: () => Promise<TReturn> | TReturn,\n): Promise<TReturn> {\n const contextWithId = {\n contextId: randomUUID(),\n ...context,\n } as OrionAsyncContext\n return await storage.run(contextWithId, async () => {\n return await callback()\n })\n}\n\nexport const getOrionAsyncContext = (): OrionAsyncContext | undefined => {\n return storage.getStore()\n}\n\nexport const updateOrionAsyncContext = (\n context: Partial<OrionAsyncContext>,\n): OrionAsyncContext | undefined => {\n const currentContext: OrionAsyncContext | undefined = storage.getStore()\n if (!currentContext) {\n return undefined\n }\n\n Object.assign(currentContext, context)\n return currentContext\n}\n"],"mappings":";AAAA,OAAOA,cAAa;;;ACApB,SAAQ,QAAQ,kBAAiB;AACjC,OAAO,UAAU;;;ACDV,SAAS,KAAK,OAAM;AACzB,MAAI,UAAU,MAAK;AACjB,WAAO;AAAA,EACT,WAAW,UAAU,QAAU;AAC7B,WAAO;AAAA,EACT,WAAW,OAAO,MAAM,KAAK,GAAE;AAC7B,WAAO;AAAA,EACT;AACA,QAAM,aAAa,OAAO,UAAU,SAAS,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE;AAEpE,SAAO,eAAe,kBAAkB,YAAY;AACtD;;;ACTO,SAAS,QAAQ,OAAM;AAC5B,QAAM,YAAY,KAAK,KAAK;AAC5B,MAAI,CAAE,aAAa,OAAO,UAAU,MAAO,EAAE,SAAS,SAAS;AAC7D,WAAO;AACT,MAAI,CAAC,MAAO,QAAO;AAEnB,MAAI,cAAc,UAAS;AACzB,WAAO,OAAO,KAAK,KAAK,EAAE,WAAW;AAAA,EACvC;AAEA,MAAI,cAAc,SAAQ;AACxB,WAAO,MAAM,WAAW;AAAA,EAC1B;AAEA,SAAO;AACT;;;AFdA,OAAO,mBAA2B;AAElC,IAAM,EAAC,UAAU,WAAW,MAAM,UAAU,SAAS,OAAM,IAAI;AAE/D,IAAM,uBAAuB,OAAO,UAAQ;AAC1C,QAAM,aAAqC,cAAc,MAAM,cAAc;AAC7E,MAAI,YAAY;AACd,UAAM,aAAa,WAAW,YAAY;AAC1C,QAAI,WAAW,QAAQ,CAAC,KAAK,SAAS;AACpC,WAAK,UAAU,WAAW;AAAA,IAC5B;AACA,UAAM,SAAS;AAAA,MACb,UAAU,WAAW;AAAA,MACrB,SAAS,WAAW;AAAA,MACpB,aAAa,IAAI,WAAW,WAAW,SAAS,EAAE,CAAC;AAAA,IACrD;AACA,WAAO,OAAO,MAAM,MAAM;AAAA,EAC5B;AACA,SAAO;AACT,CAAC;AAED,IAAM,YAAY,OAAO,CAAC,SAAc;AAxBxC;AAyBE,QAAI,wCAAM,aAAN,mBAAgB,UAAhB,mBAAuB,kBAAiB,OAAO;AACjD,SAAK,SAAQ,wCAAM,aAAN,mBAAgB,UAAhB,mBAAuB,MAAM;AAC1C,SAAK,gBAAe,wCAAM,aAAN,mBAAgB,UAAhB,mBAAuB,MAAM;AACjD,WAAO,kCAAM,aAAN,mBAAgB,UAAvB,wBAA8B;AAAA,EAChC;AAEA,QAAI,kCAAM,aAAN,mBAAgB,kBAAiB,OAAO;AAC1C,SAAK,SAAQ,kCAAM,aAAN,mBAAgB,MAAM;AACnC,SAAK,gBAAe,kCAAM,aAAN,mBAAgB,MAAM;AAC1C,UAAO,6BAAM,aAAb,wBAAuB;AAAA,EACzB;AAEA,SAAO;AACT,CAAC;AAEM,IAAM,eAAoB,OAAO,UAAQ;AAC9C,QAAM,EAAC,MAAM,OAAO,GAAG,MAAK,IAAI;AAChC,SAAO;AAAA,IACL,GAAG;AAAA,IACH,MAAM;AAAA,MACJ,MAAM,QAAQ;AAAA,MACd,YAAY;AAAA,IACd;AAAA,EACF;AACF,CAAC;AAED,SAAS,gBAAgBC,WAAe;AACtC,QAAM,EAAC,OAAO,GAAG,KAAI,IAAIA;AACzB,MAAI,QAAQ,IAAI,GAAG;AACjB,QAAI,OAAO,UAAU,YAAa,QAAO;AACzC,WAAO,KAAK,QAAQ,KAAK;AAAA,EAC3B;AACA,SAAO,GAAG,KAAK,QAAQ,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC;AACrD;AAEO,IAAM,oBAAyB;AAAA,EACpC,SAAS;AAAA,EACT,SAAS,EAAC,YAAY,CAAC,YAAY,SAAS,WAAW,OAAO,EAAC,CAAC;AAAA,EAChE,qBAAqB;AAAA,EACrB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO,CAAC,SAAc;AAGpB,UAAM,OAAO,IAAI,KAAK,KAAK,SAAS;AACpC,UAAM,YAAY,GAAG,KAAK,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAClK,UAAM,gBAAgB,KAAK,WAAW,IAAI,KAAK,QAAQ,MAAM;AAC7D,UAAM,QAAQ,KAAK,QAAQ;AAAA,EAAK,KAAK,KAAK,KAAK;AAC/C,UAAM,QAAQ,gBAAgB,KAAK,QAAQ;AAC3C,UAAM,UAAU,KAAK,WACjB,GAAG,OAAO,KAAK,QAAQ,EAAE,UAAU,GAAG,CAAC,CAAC,IAAI,OAAO,KAAK,OAAO,EAAE,UAAU,GAAG,CAAC,CAAC,KAChF;AACJ,UAAM,UAAU,CAAC,KAAK,SAAS,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK;AACvE,UAAM,eAAe,UAAU,IAAI,OAAO,MAAM;AAChD,WAAO;AAAA,MACL,IAAI,KAAK,KAAK;AAAA,MACd,IAAI,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,EACb,CAAC;AACH;AAEO,IAAM,uBAAuB,IAAI,WAAW,QAAQ;AAAA,EACzD,kBAAkB;AAAA,EAClB,QAAQ;AACV,CAAC;AAEM,IAAM,oBAAyB;AAAA,EACpC,SAAS,EAAC,YAAY,CAAC,YAAY,SAAS,SAAS,EAAC,CAAC;AAAA,EACvD,qBAAqB;AAAA,EACrB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,KAAK;AACP;AAEO,IAAM,uBAAuB,IAAI,WAAW,QAAQ;AAAA,EACzD,kBAAkB;AAAA,EAClB,QAAQ;AACV,CAAC;;;AG7GD,SAAiB,gBAAgB,qBAAqB,QAAQ,UAAAC,eAAa;;;ACApE,IAAM,cAAc,MAAM;AAC/B,MAAI;AACF,UAAM,QAAQ,IAAI,MAAM,EAAE;AAC1B,UAAM,QAAQ,MAAM,MAAM,IAAI;AAC9B,UAAM,WAAW,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AACpD,WAAO,gBAAgB,QAAQ;AAAA,EACjC,QAAQ;AACN;AAAA,EACF;AACF;AAEO,IAAM,kBAAkB,CAAC,SAAiB;AAC/C,SAAO,KAAK,QAAQ,GAAG,QAAQ,IAAI,CAAC,KAAK,EAAE;AAC3C,MAAI,KAAK,SAAS,kBAAkB,GAAG;AACrC,WAAO,KAAK,QAAQ,4BAA4B,YAAY;AAAA,EAC9D;AAEA,MAAI,KAAK,SAAS,yBAAyB,GAAG;AAC5C,UAAM,QAAQ,KAAK,MAAM,yBAAyB,EAAE,CAAC;AACrD,UAAM,kBAAkB,MAAM,MAAM,GAAG,EAAE,CAAC;AAC1C,WAAO,aAAa,eAAe;AAAA,EACrC;AAEA,MAAI,KAAK,SAAS,cAAc,GAAG;AACjC,WAAO,KAAK,QAAQ,uBAAuB,EAAE;AAAA,EAC/C;AACA,MAAI,KAAK,SAAS,kBAAkB,GAAG;AACrC,WAAO,aAAa,KAAK,MAAM,kBAAkB,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,EACrE;AACA,MAAI,KAAK,SAAS,iBAAiB,GAAG;AACpC,UAAM,QAAQ,KAAK,MAAM,gBAAgB,EAAE,CAAC;AAC5C,UAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,WAAO,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAAA,EAChC;AACA,MAAI,KAAK,SAAS,gBAAgB,GAAG;AACnC,UAAM,QAAQ,KAAK,MAAM,gBAAgB,EAAE,CAAC;AAC5C,UAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,WAAO,GAAG,MAAM,CAAC,CAAC;AAAA,EACpB;AACA,SAAO;AACT;;;ADnCA,IAAMC,cAAkC;AAAA,EACtC,QAAQ,IAAI,aAAa,gBAAgB,QAAQ,IAAI,aAAa,QAAQ,IAAI,iBAC1E,uBACA;AACN;AAEO,IAAM,gBAAgB,oBAAoB;AAAA,EAC/C,QAAQ,OAAO,IAAI;AAAA,EACnB,kBAAkB;AAAA,EAClB,QAAQC,QAAO,OAAO,EAAC,OAAO,KAAI,CAAC;AAAA,EACnC,YAAYD;AACd,CAAC;AAEM,IAAM,kBAAkB,CAAC,YAAmC;AACjE,SAAO,cAAc,UAAU,OAAO;AACxC;AAEO,IAAM,cAAc,CAAC,UAAkB;AAC5C,gBAAc,QAAQ;AACxB;AAEO,IAAM,eAAe,CAAC,cAAiC;AAC5D,SAAO,cAAc,IAAI,SAAS;AACpC;AAEO,IAAM,YAAY,CAAC,YAAoB;AAC5C,SAAO,cAAc,MAAM,EAAC,QAAO,CAAC;AACtC;AAEA,IAAM,eAAe,CAACE,YAAwC;AAC5D,SAAO;AAAA,IACL,OAAO,CAAC,SAAiB,UAAe;AACtC,YAAM,WAAW,YAAY;AAC7B,aAAOA,QAAO,MAAM,EAAC,SAAS,UAAU,MAAK,CAAC;AAAA,IAChD;AAAA,IACA,MAAM,CAAC,SAAiB,UAAe;AACrC,YAAM,WAAW,YAAY;AAC7B,aAAOA,QAAO,KAAK,EAAC,SAAS,UAAU,MAAK,CAAC;AAAA,IAC/C;AAAA,IACA,MAAM,CAAC,SAAiB,UAAe;AACrC,YAAM,WAAW,YAAY;AAC7B,aAAOA,QAAO,KAAK,EAAC,SAAS,UAAU,MAAK,CAAC;AAAA,IAC/C;AAAA,IACA,OAAO,CAAC,SAAiB,UAAe;AACtC,YAAM,WAAW,YAAY;AAC7B,aAAOA,QAAO,MAAM,EAAC,SAAS,UAAU,MAAK,CAAC;AAAA,IAChD;AAAA,IACA,YAAY,CAAC,WAA0B;AACrC,UAAI,OAAO,IAAI;AACb,cAAM,QAAQ,OAAO,OAAO,EAAE,EAAE,MAAM,eAAe;AACrD,cAAM,WAAW,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC;AACtD,eAAO,aAAaA,QAAO,MAAM,EAAC,SAAQ,CAAC,CAAC;AAAA,MAC9C;AACA,aAAO,aAAaA,QAAO,MAAM,CAAC,CAAC,CAAC;AAAA,IACtC;AAAA,IACA,aAAa,CAACC,cAAkB;AAC9B,aAAO,aAAaD,QAAO,MAAMC,SAAQ,CAAC;AAAA,IAC5C;AAAA,EACF;AACF;AAEO,IAAM,SAAS,aAAa,aAAa;;;AElEhD,SAAQ,yBAAwB;AAChC,SAAQ,kBAAiB;AAiDzB,IAAM,UAAgD,IAAI,kBAAkB;AA0B5E,eAAsB,yBACpB,SACA,UACkB;AAClB,QAAM,gBAAgB;AAAA,IACpB,WAAW,WAAW;AAAA,IACtB,GAAG;AAAA,EACL;AACA,SAAO,MAAM,QAAQ,IAAI,eAAe,YAAY;AAClD,WAAO,MAAM,SAAS;AAAA,EACxB,CAAC;AACH;AAEO,IAAM,uBAAuB,MAAqC;AACvE,SAAO,QAAQ,SAAS;AAC1B;AAEO,IAAM,0BAA0B,CACrC,YACkC;AAClC,QAAM,iBAAgD,QAAQ,SAAS;AACvE,MAAI,CAAC,gBAAgB;AACnB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,gBAAgB,OAAO;AACrC,SAAO;AACT;","names":["winston","metadata","format","transports","format","logger","metadata"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/logger",
3
- "version": "4.0.4",
3
+ "version": "4.0.6",
4
4
  "main": "./dist/index.cjs",
5
5
  "author": "nicolaslopezj",
6
6
  "license": "MIT",