@mahameru/diatrema 0.0.6 → 0.0.7

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/diatrema.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/diatrema.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport { EventEmitter } from \"./event-emitter\";\nimport { existsSync } from 'node:fs';\nimport { pathToFileURL } from 'node:url';\nimport type { InitiatorHandler, Instances } from './types';\nimport type { MahameruPlugin } from './mahameru-plugin';\nimport { createLogger, type Logger } from './logger';\n\nexport type DiatremaEvents = {\n ready: [data: { mode: \"development\" | \"production\"; port?: number; host?: string; }];\n};\n\nexport type DiatremaOptions = {\n dev: boolean;\n debug: boolean;\n rootPath: string;\n appPath: string;\n productionDir: string;\n developmentDir: string;\n initiatorFilePath?: string;\n moduleType: \"commonjs\" | \"esm\";\n}\n\nexport const diatremaDefaultConfig: DiatremaOptions = {\n dev: false,\n debug: false,\n rootPath: process.cwd(),\n get appPath(): string {\n return join(this.rootPath, this.dev ? this.developmentDir : this.productionDir);\n },\n productionDir: '.mahameru',\n developmentDir: '.mahameru',\n moduleType: 'esm'\n}\n\n/**\n * Main Diatrema class that orchestrates the application lifecycle.\n */\nexport default class Diatrema extends EventEmitter<DiatremaEvents> {\n protected _initialized = false;\n protected _isShuttingDown = false;\n protected _plugins = new Map<string, MahameruPlugin<any>>();\n protected logger: Logger;\n public instances: Instances = {};\n public readonly options: DiatremaOptions;\n\n constructor(options?: Partial<DiatremaOptions>) {\n super();\n\n this.options = { ...diatremaDefaultConfig, ...options };\n this.logger = createLogger('Diatrema', this.options.debug);\n }\n\n /**\n * Indicates whether the Mahameru server has been initialized or not.\n * @returns {boolean}\n */\n get initialized() {\n return this._initialized;\n }\n\n /**\n * Indicates whether the Mahameru server is shutting down or not.\n * @returns {boolean}\n */\n get isShuttingDown() {\n return this._isShuttingDown;\n }\n\n get plugins(): Record<string, MahameruPlugin<any>> {\n return Object.fromEntries(this._plugins);\n }\n\n public async initialize(): Promise<void> {\n try {\n if (this._initialized)\n return;\n\n await this.loadInitiator();\n\n for (const plugin of this._plugins.values()) {\n plugin.setDiatrema(this);\n\n await plugin.initialize();\n }\n } catch (error) {\n throw error;\n }\n\n this._initialized = true;\n\n this.emit('ready', { mode: this.options.dev ? 'development' : 'production' });\n }\n\n public setPlugin<T extends MahameruPlugin<any>>(pluginName: string, plugin: T) {\n this._plugins.set(pluginName, plugin);\n }\n\n public getPlugin<T extends MahameruPlugin<any>>(pluginName: string): T | undefined {\n return this._plugins.get(pluginName) as T | undefined;\n }\n\n public async devHRM(changedFile?: string) {\n if (!this._initialized)\n return\n\n if (changedFile) {\n for (const [_name, plugin] of this._plugins.entries()) {\n await plugin.onDevHRM(changedFile);\n }\n }\n }\n\n public async shutdown(): Promise<void> {\n if (this._isShuttingDown)\n return\n\n this._isShuttingDown = true;\n\n this.logger.debug('Shutting down...');\n\n for (const plugin of this._plugins.values()) {\n await plugin.destroy();\n }\n\n this._initialized = false;\n this.logger.debug('Shutting down... Done');\n }\n\n protected async loadInitiator() {\n if (!this.options.initiatorFilePath)\n return;\n\n const result = await this.require<Record<'default', InitiatorHandler>>(this.options.moduleType, this.options.initiatorFilePath);\n\n if (result) {\n const handler = this.getDefaultExport<InitiatorHandler>(result, this.options.initiatorFilePath);\n\n this.instances = await handler();\n this.logger.debug(`Initiator loaded successfully. Found ${Object.keys(this.instances).length} instances.`);\n }\n }\n\n protected async require<T extends Record<string, unknown> = Record<string, unknown>>(type: \"commonjs\" | \"esm\", resolvedFilePath: string): Promise<T | undefined> {\n const noCache = this.options.dev;\n\n if (!existsSync(resolvedFilePath))\n return;\n\n if (type === \"commonjs\") {\n if (noCache) {\n delete require.cache[resolvedFilePath];\n }\n\n return require(resolvedFilePath) as T;\n }\n\n let fileUrl = pathToFileURL(resolvedFilePath).href;\n\n if (noCache)\n fileUrl += `?update=${Date.now()}`;\n\n return (await import(fileUrl)) as T;\n }\n\n protected getDefaultExport<T>(module: Record<string, T>, filePath: string) {\n const defaultExportName = Object.keys(module).find((key) => key === 'default');\n\n if (!defaultExportName)\n throw new Error(`Module in file '${filePath}' does not have a default export.`);\n\n return module[defaultExportName];\n }\n}\n"],"mappings":"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","names":["module"]}
1
+ {"version":3,"sources":["../src/diatrema.ts"],"sourcesContent":["import { join } from 'node:path';\r\n\r\nimport { EventEmitter } from \"./event-emitter\";\r\nimport { existsSync } from 'node:fs';\r\nimport { pathToFileURL } from 'node:url';\r\nimport type { InitiatorHandler, Instances } from './types';\r\nimport type { MahameruPlugin } from './mahameru-plugin';\r\nimport { createLogger, type Logger } from './logger';\r\n\r\nexport type DiatremaEvents = {\r\n ready: [data: { mode: \"development\" | \"production\"; port?: number; host?: string; }];\r\n};\r\n\r\nexport type DiatremaOptions = {\r\n dev: boolean;\r\n debug: boolean;\r\n rootPath: string;\r\n appPath: string;\r\n productionDir: string;\r\n developmentDir: string;\r\n initiatorFilePath?: string;\r\n moduleType: \"commonjs\" | \"esm\";\r\n}\r\n\r\nexport const diatremaDefaultConfig: DiatremaOptions = {\r\n dev: false,\r\n debug: false,\r\n rootPath: process.cwd(),\r\n get appPath(): string {\r\n return join(this.rootPath, this.dev ? this.developmentDir : this.productionDir);\r\n },\r\n productionDir: '.mahameru',\r\n developmentDir: '.mahameru',\r\n moduleType: 'esm'\r\n}\r\n\r\n/**\r\n * Main Diatrema class that orchestrates the application lifecycle.\r\n */\r\nexport default class Diatrema extends EventEmitter<DiatremaEvents> {\r\n protected _initialized = false;\r\n protected _isShuttingDown = false;\r\n protected _plugins = new Map<string, MahameruPlugin<any>>();\r\n protected logger: Logger;\r\n public instances: Instances = {};\r\n public readonly options: DiatremaOptions;\r\n\r\n constructor(options?: Partial<DiatremaOptions>) {\r\n super();\r\n\r\n this.options = { ...diatremaDefaultConfig, ...options };\r\n this.logger = createLogger('Diatrema', this.options.debug);\r\n }\r\n\r\n /**\r\n * Indicates whether the Mahameru server has been initialized or not.\r\n * @returns {boolean}\r\n */\r\n get initialized() {\r\n return this._initialized;\r\n }\r\n\r\n /**\r\n * Indicates whether the Mahameru server is shutting down or not.\r\n * @returns {boolean}\r\n */\r\n get isShuttingDown() {\r\n return this._isShuttingDown;\r\n }\r\n\r\n get plugins(): Record<string, MahameruPlugin<any>> {\r\n return Object.fromEntries(this._plugins);\r\n }\r\n\r\n public async initialize(): Promise<void> {\r\n try {\r\n if (this._initialized)\r\n return;\r\n\r\n await this.loadInitiator();\r\n\r\n for (const plugin of this._plugins.values()) {\r\n plugin.setDiatrema(this);\r\n\r\n await plugin.initialize();\r\n }\r\n } catch (error) {\r\n throw error;\r\n }\r\n\r\n this._initialized = true;\r\n\r\n this.emit('ready', { mode: this.options.dev ? 'development' : 'production' });\r\n }\r\n\r\n public setPlugin<T extends MahameruPlugin<any>>(pluginName: string, plugin: T) {\r\n this._plugins.set(pluginName, plugin);\r\n }\r\n\r\n public getPlugin<T extends MahameruPlugin<any>>(pluginName: string): T | undefined {\r\n return this._plugins.get(pluginName) as T | undefined;\r\n }\r\n\r\n public async devHRM(changedFile?: string) {\r\n if (!this._initialized)\r\n return\r\n\r\n if (changedFile) {\r\n for (const [_name, plugin] of this._plugins.entries()) {\r\n await plugin.onDevHRM(changedFile);\r\n }\r\n }\r\n }\r\n\r\n public async shutdown(): Promise<void> {\r\n if (this._isShuttingDown)\r\n return\r\n\r\n this._isShuttingDown = true;\r\n\r\n this.logger.debug('Shutting down...');\r\n\r\n for (const plugin of this._plugins.values()) {\r\n await plugin.destroy();\r\n }\r\n\r\n this._initialized = false;\r\n this.logger.debug('Shutting down... Done');\r\n }\r\n\r\n protected async loadInitiator() {\r\n if (!this.options.initiatorFilePath)\r\n return;\r\n\r\n const result = await this.require<Record<'default', InitiatorHandler>>(this.options.moduleType, this.options.initiatorFilePath);\r\n\r\n if (result) {\r\n const handler = this.getDefaultExport<InitiatorHandler>(result, this.options.initiatorFilePath);\r\n\r\n this.instances = await handler();\r\n this.logger.debug(`Initiator loaded successfully. Found ${Object.keys(this.instances).length} instances.`);\r\n }\r\n }\r\n\r\n protected async require<T extends Record<string, unknown> = Record<string, unknown>>(type: \"commonjs\" | \"esm\", resolvedFilePath: string): Promise<T | undefined> {\r\n const noCache = this.options.dev;\r\n\r\n if (!existsSync(resolvedFilePath))\r\n return;\r\n\r\n if (type === \"commonjs\") {\r\n if (noCache) {\r\n delete require.cache[resolvedFilePath];\r\n }\r\n\r\n return require(resolvedFilePath) as T;\r\n }\r\n\r\n let fileUrl = pathToFileURL(resolvedFilePath).href;\r\n\r\n if (noCache)\r\n fileUrl += `?update=${Date.now()}`;\r\n\r\n return (await import(fileUrl)) as T;\r\n }\r\n\r\n protected getDefaultExport<T>(module: Record<string, T>, filePath: string) {\r\n const defaultExportName = Object.keys(module).find((key) => key === 'default');\r\n\r\n if (!defaultExportName)\r\n throw new Error(`Module in file '${filePath}' does not have a default export.`);\r\n\r\n return module[defaultExportName];\r\n }\r\n}\r\n"],"mappings":"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","names":["module"]}
package/diatrema.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/diatrema.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport { EventEmitter } from \"./event-emitter\";\nimport { existsSync } from 'node:fs';\nimport { pathToFileURL } from 'node:url';\nimport type { InitiatorHandler, Instances } from './types';\nimport type { MahameruPlugin } from './mahameru-plugin';\nimport { createLogger, type Logger } from './logger';\n\nexport type DiatremaEvents = {\n ready: [data: { mode: \"development\" | \"production\"; port?: number; host?: string; }];\n};\n\nexport type DiatremaOptions = {\n dev: boolean;\n debug: boolean;\n rootPath: string;\n appPath: string;\n productionDir: string;\n developmentDir: string;\n initiatorFilePath?: string;\n moduleType: \"commonjs\" | \"esm\";\n}\n\nexport const diatremaDefaultConfig: DiatremaOptions = {\n dev: false,\n debug: false,\n rootPath: process.cwd(),\n get appPath(): string {\n return join(this.rootPath, this.dev ? this.developmentDir : this.productionDir);\n },\n productionDir: '.mahameru',\n developmentDir: '.mahameru',\n moduleType: 'esm'\n}\n\n/**\n * Main Diatrema class that orchestrates the application lifecycle.\n */\nexport default class Diatrema extends EventEmitter<DiatremaEvents> {\n protected _initialized = false;\n protected _isShuttingDown = false;\n protected _plugins = new Map<string, MahameruPlugin<any>>();\n protected logger: Logger;\n public instances: Instances = {};\n public readonly options: DiatremaOptions;\n\n constructor(options?: Partial<DiatremaOptions>) {\n super();\n\n this.options = { ...diatremaDefaultConfig, ...options };\n this.logger = createLogger('Diatrema', this.options.debug);\n }\n\n /**\n * Indicates whether the Mahameru server has been initialized or not.\n * @returns {boolean}\n */\n get initialized() {\n return this._initialized;\n }\n\n /**\n * Indicates whether the Mahameru server is shutting down or not.\n * @returns {boolean}\n */\n get isShuttingDown() {\n return this._isShuttingDown;\n }\n\n get plugins(): Record<string, MahameruPlugin<any>> {\n return Object.fromEntries(this._plugins);\n }\n\n public async initialize(): Promise<void> {\n try {\n if (this._initialized)\n return;\n\n await this.loadInitiator();\n\n for (const plugin of this._plugins.values()) {\n plugin.setDiatrema(this);\n\n await plugin.initialize();\n }\n } catch (error) {\n throw error;\n }\n\n this._initialized = true;\n\n this.emit('ready', { mode: this.options.dev ? 'development' : 'production' });\n }\n\n public setPlugin<T extends MahameruPlugin<any>>(pluginName: string, plugin: T) {\n this._plugins.set(pluginName, plugin);\n }\n\n public getPlugin<T extends MahameruPlugin<any>>(pluginName: string): T | undefined {\n return this._plugins.get(pluginName) as T | undefined;\n }\n\n public async devHRM(changedFile?: string) {\n if (!this._initialized)\n return\n\n if (changedFile) {\n for (const [_name, plugin] of this._plugins.entries()) {\n await plugin.onDevHRM(changedFile);\n }\n }\n }\n\n public async shutdown(): Promise<void> {\n if (this._isShuttingDown)\n return\n\n this._isShuttingDown = true;\n\n this.logger.debug('Shutting down...');\n\n for (const plugin of this._plugins.values()) {\n await plugin.destroy();\n }\n\n this._initialized = false;\n this.logger.debug('Shutting down... Done');\n }\n\n protected async loadInitiator() {\n if (!this.options.initiatorFilePath)\n return;\n\n const result = await this.require<Record<'default', InitiatorHandler>>(this.options.moduleType, this.options.initiatorFilePath);\n\n if (result) {\n const handler = this.getDefaultExport<InitiatorHandler>(result, this.options.initiatorFilePath);\n\n this.instances = await handler();\n this.logger.debug(`Initiator loaded successfully. Found ${Object.keys(this.instances).length} instances.`);\n }\n }\n\n protected async require<T extends Record<string, unknown> = Record<string, unknown>>(type: \"commonjs\" | \"esm\", resolvedFilePath: string): Promise<T | undefined> {\n const noCache = this.options.dev;\n\n if (!existsSync(resolvedFilePath))\n return;\n\n if (type === \"commonjs\") {\n if (noCache) {\n delete require.cache[resolvedFilePath];\n }\n\n return require(resolvedFilePath) as T;\n }\n\n let fileUrl = pathToFileURL(resolvedFilePath).href;\n\n if (noCache)\n fileUrl += `?update=${Date.now()}`;\n\n return (await import(fileUrl)) as T;\n }\n\n protected getDefaultExport<T>(module: Record<string, T>, filePath: string) {\n const defaultExportName = Object.keys(module).find((key) => key === 'default');\n\n if (!defaultExportName)\n throw new Error(`Module in file '${filePath}' does not have a default export.`);\n\n return module[defaultExportName];\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/diatrema.ts"],"sourcesContent":["import { join } from 'node:path';\r\n\r\nimport { EventEmitter } from \"./event-emitter\";\r\nimport { existsSync } from 'node:fs';\r\nimport { pathToFileURL } from 'node:url';\r\nimport type { InitiatorHandler, Instances } from './types';\r\nimport type { MahameruPlugin } from './mahameru-plugin';\r\nimport { createLogger, type Logger } from './logger';\r\n\r\nexport type DiatremaEvents = {\r\n ready: [data: { mode: \"development\" | \"production\"; port?: number; host?: string; }];\r\n};\r\n\r\nexport type DiatremaOptions = {\r\n dev: boolean;\r\n debug: boolean;\r\n rootPath: string;\r\n appPath: string;\r\n productionDir: string;\r\n developmentDir: string;\r\n initiatorFilePath?: string;\r\n moduleType: \"commonjs\" | \"esm\";\r\n}\r\n\r\nexport const diatremaDefaultConfig: DiatremaOptions = {\r\n dev: false,\r\n debug: false,\r\n rootPath: process.cwd(),\r\n get appPath(): string {\r\n return join(this.rootPath, this.dev ? this.developmentDir : this.productionDir);\r\n },\r\n productionDir: '.mahameru',\r\n developmentDir: '.mahameru',\r\n moduleType: 'esm'\r\n}\r\n\r\n/**\r\n * Main Diatrema class that orchestrates the application lifecycle.\r\n */\r\nexport default class Diatrema extends EventEmitter<DiatremaEvents> {\r\n protected _initialized = false;\r\n protected _isShuttingDown = false;\r\n protected _plugins = new Map<string, MahameruPlugin<any>>();\r\n protected logger: Logger;\r\n public instances: Instances = {};\r\n public readonly options: DiatremaOptions;\r\n\r\n constructor(options?: Partial<DiatremaOptions>) {\r\n super();\r\n\r\n this.options = { ...diatremaDefaultConfig, ...options };\r\n this.logger = createLogger('Diatrema', this.options.debug);\r\n }\r\n\r\n /**\r\n * Indicates whether the Mahameru server has been initialized or not.\r\n * @returns {boolean}\r\n */\r\n get initialized() {\r\n return this._initialized;\r\n }\r\n\r\n /**\r\n * Indicates whether the Mahameru server is shutting down or not.\r\n * @returns {boolean}\r\n */\r\n get isShuttingDown() {\r\n return this._isShuttingDown;\r\n }\r\n\r\n get plugins(): Record<string, MahameruPlugin<any>> {\r\n return Object.fromEntries(this._plugins);\r\n }\r\n\r\n public async initialize(): Promise<void> {\r\n try {\r\n if (this._initialized)\r\n return;\r\n\r\n await this.loadInitiator();\r\n\r\n for (const plugin of this._plugins.values()) {\r\n plugin.setDiatrema(this);\r\n\r\n await plugin.initialize();\r\n }\r\n } catch (error) {\r\n throw error;\r\n }\r\n\r\n this._initialized = true;\r\n\r\n this.emit('ready', { mode: this.options.dev ? 'development' : 'production' });\r\n }\r\n\r\n public setPlugin<T extends MahameruPlugin<any>>(pluginName: string, plugin: T) {\r\n this._plugins.set(pluginName, plugin);\r\n }\r\n\r\n public getPlugin<T extends MahameruPlugin<any>>(pluginName: string): T | undefined {\r\n return this._plugins.get(pluginName) as T | undefined;\r\n }\r\n\r\n public async devHRM(changedFile?: string) {\r\n if (!this._initialized)\r\n return\r\n\r\n if (changedFile) {\r\n for (const [_name, plugin] of this._plugins.entries()) {\r\n await plugin.onDevHRM(changedFile);\r\n }\r\n }\r\n }\r\n\r\n public async shutdown(): Promise<void> {\r\n if (this._isShuttingDown)\r\n return\r\n\r\n this._isShuttingDown = true;\r\n\r\n this.logger.debug('Shutting down...');\r\n\r\n for (const plugin of this._plugins.values()) {\r\n await plugin.destroy();\r\n }\r\n\r\n this._initialized = false;\r\n this.logger.debug('Shutting down... Done');\r\n }\r\n\r\n protected async loadInitiator() {\r\n if (!this.options.initiatorFilePath)\r\n return;\r\n\r\n const result = await this.require<Record<'default', InitiatorHandler>>(this.options.moduleType, this.options.initiatorFilePath);\r\n\r\n if (result) {\r\n const handler = this.getDefaultExport<InitiatorHandler>(result, this.options.initiatorFilePath);\r\n\r\n this.instances = await handler();\r\n this.logger.debug(`Initiator loaded successfully. Found ${Object.keys(this.instances).length} instances.`);\r\n }\r\n }\r\n\r\n protected async require<T extends Record<string, unknown> = Record<string, unknown>>(type: \"commonjs\" | \"esm\", resolvedFilePath: string): Promise<T | undefined> {\r\n const noCache = this.options.dev;\r\n\r\n if (!existsSync(resolvedFilePath))\r\n return;\r\n\r\n if (type === \"commonjs\") {\r\n if (noCache) {\r\n delete require.cache[resolvedFilePath];\r\n }\r\n\r\n return require(resolvedFilePath) as T;\r\n }\r\n\r\n let fileUrl = pathToFileURL(resolvedFilePath).href;\r\n\r\n if (noCache)\r\n fileUrl += `?update=${Date.now()}`;\r\n\r\n return (await import(fileUrl)) as T;\r\n }\r\n\r\n protected getDefaultExport<T>(module: Record<string, T>, filePath: string) {\r\n const defaultExportName = Object.keys(module).find((key) => key === 'default');\r\n\r\n if (!defaultExportName)\r\n throw new Error(`Module in file '${filePath}' does not have a default export.`);\r\n\r\n return module[defaultExportName];\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
package/logger.cjs CHANGED
@@ -30,23 +30,17 @@ const createLogger = /* @__PURE__ */ __name((name, debug = false) => {
30
30
  }
31
31
  return {
32
32
  info: /* @__PURE__ */ __name((...data) => {
33
- if (debug) {
34
- console.log(...name, "[Info]", ...data);
35
- return;
36
- }
33
+ console.log(...name, "[Info]", ...data);
37
34
  }, "info"),
38
35
  error: /* @__PURE__ */ __name((message, error) => {
39
36
  console.error(...name, `[Error] ${message}`, error);
40
37
  }, "error"),
41
38
  warn: /* @__PURE__ */ __name((...data) => {
42
- if (debug) {
43
- console.warn(...name, "[Warn]", ...data);
44
- }
39
+ console.warn(...name, "[Warn]", ...data);
45
40
  }, "warn"),
46
41
  debug: /* @__PURE__ */ __name((...data) => {
47
- if (debug) {
42
+ if (debug)
48
43
  console.debug(...name, "[Debug]", ...data);
49
- }
50
44
  }, "debug")
51
45
  };
52
46
  }, "createLogger");
package/logger.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/logger.ts"],"sourcesContent":["export interface Logger {\r\n info(...data: any[]): void;\r\n error(message: string, error?: unknown): void;\r\n warn(...data: any[]): void;\r\n debug(...data: any[]): void;\r\n}\r\n\r\nexport const createLogger = (name: string | string[], debug: boolean = false): Logger => {\r\n if (typeof name === 'string') {\r\n name = [`[${name}]`];\r\n } else {\r\n name = name.map(item => `[${item}]`);\r\n }\r\n return {\r\n info: (...data: any[]) => {\r\n if (debug) {\r\n console.log(...name, '[Info]', ...data)\r\n\r\n return\r\n }\r\n },\r\n error: (message, error) => {\r\n console.error(...name, `[Error] ${message}`, error);\r\n },\r\n warn: (...data: any[]) => {\r\n if (debug) {\r\n console.warn(...name, '[Warn]', ...data)\r\n }\r\n },\r\n debug: (...data: any[]) => {\r\n if (debug) {\r\n console.debug(...name, '[Debug]', ...data)\r\n }\r\n }\r\n };\r\n};\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,eAAe,wBAAC,MAAyB,QAAiB,UAAkB;AACrF,MAAI,OAAO,SAAS,UAAU;AAC1B,WAAO,CAAC,IAAI,IAAI,GAAG;AAAA,EACvB,OAAO;AACH,WAAO,KAAK,IAAI,UAAQ,IAAI,IAAI,GAAG;AAAA,EACvC;AACA,SAAO;AAAA,IACH,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,IAAI,GAAG,MAAM,UAAU,GAAG,IAAI;AAEtC;AAAA,MACJ;AAAA,IACJ,GANM;AAAA,IAON,OAAO,wBAAC,SAAS,UAAU;AACvB,cAAQ,MAAM,GAAG,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,IACtD,GAFO;AAAA,IAGP,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,KAAK,GAAG,MAAM,UAAU,GAAG,IAAI;AAAA,MAC3C;AAAA,IACJ,GAJM;AAAA,IAKN,OAAO,2BAAI,SAAgB;AACvB,UAAI,OAAO;AACP,gBAAQ,MAAM,GAAG,MAAM,WAAW,GAAG,IAAI;AAAA,MAC7C;AAAA,IACJ,GAJO;AAAA,EAKX;AACJ,GA5B4B;","names":[]}
1
+ {"version":3,"sources":["../src/logger.ts"],"sourcesContent":["export interface Logger {\r\n info(...data: any[]): void;\r\n error(message: string, error?: unknown): void;\r\n warn(...data: any[]): void;\r\n debug(...data: any[]): void;\r\n}\r\n\r\nexport const createLogger = (name: string | string[], debug: boolean = false): Logger => {\r\n if (typeof name === 'string') {\r\n name = [`[${name}]`];\r\n } else {\r\n name = name.map(item => `[${item}]`);\r\n }\r\n\r\n return {\r\n info: (...data: any[]) => {\r\n console.log(...name, '[Info]', ...data)\r\n },\r\n error: (message, error) => {\r\n console.error(...name, `[Error] ${message}`, error);\r\n },\r\n warn: (...data: any[]) => {\r\n console.warn(...name, '[Warn]', ...data)\r\n },\r\n debug: (...data: any[]) => {\r\n if (debug)\r\n console.debug(...name, '[Debug]', ...data)\r\n }\r\n };\r\n};\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,eAAe,wBAAC,MAAyB,QAAiB,UAAkB;AACrF,MAAI,OAAO,SAAS,UAAU;AAC1B,WAAO,CAAC,IAAI,IAAI,GAAG;AAAA,EACvB,OAAO;AACH,WAAO,KAAK,IAAI,UAAQ,IAAI,IAAI,GAAG;AAAA,EACvC;AAEA,SAAO;AAAA,IACH,MAAM,2BAAI,SAAgB;AACtB,cAAQ,IAAI,GAAG,MAAM,UAAU,GAAG,IAAI;AAAA,IAC1C,GAFM;AAAA,IAGN,OAAO,wBAAC,SAAS,UAAU;AACvB,cAAQ,MAAM,GAAG,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,IACtD,GAFO;AAAA,IAGP,MAAM,2BAAI,SAAgB;AACtB,cAAQ,KAAK,GAAG,MAAM,UAAU,GAAG,IAAI;AAAA,IAC3C,GAFM;AAAA,IAGN,OAAO,2BAAI,SAAgB;AACvB,UAAI;AACA,gBAAQ,MAAM,GAAG,MAAM,WAAW,GAAG,IAAI;AAAA,IACjD,GAHO;AAAA,EAIX;AACJ,GAtB4B;","names":[]}
package/logger.js CHANGED
@@ -8,23 +8,17 @@ const createLogger = /* @__PURE__ */ __name((name, debug = false) => {
8
8
  }
9
9
  return {
10
10
  info: /* @__PURE__ */ __name((...data) => {
11
- if (debug) {
12
- console.log(...name, "[Info]", ...data);
13
- return;
14
- }
11
+ console.log(...name, "[Info]", ...data);
15
12
  }, "info"),
16
13
  error: /* @__PURE__ */ __name((message, error) => {
17
14
  console.error(...name, `[Error] ${message}`, error);
18
15
  }, "error"),
19
16
  warn: /* @__PURE__ */ __name((...data) => {
20
- if (debug) {
21
- console.warn(...name, "[Warn]", ...data);
22
- }
17
+ console.warn(...name, "[Warn]", ...data);
23
18
  }, "warn"),
24
19
  debug: /* @__PURE__ */ __name((...data) => {
25
- if (debug) {
20
+ if (debug)
26
21
  console.debug(...name, "[Debug]", ...data);
27
- }
28
22
  }, "debug")
29
23
  };
30
24
  }, "createLogger");
package/logger.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/logger.ts"],"sourcesContent":["export interface Logger {\r\n info(...data: any[]): void;\r\n error(message: string, error?: unknown): void;\r\n warn(...data: any[]): void;\r\n debug(...data: any[]): void;\r\n}\r\n\r\nexport const createLogger = (name: string | string[], debug: boolean = false): Logger => {\r\n if (typeof name === 'string') {\r\n name = [`[${name}]`];\r\n } else {\r\n name = name.map(item => `[${item}]`);\r\n }\r\n return {\r\n info: (...data: any[]) => {\r\n if (debug) {\r\n console.log(...name, '[Info]', ...data)\r\n\r\n return\r\n }\r\n },\r\n error: (message, error) => {\r\n console.error(...name, `[Error] ${message}`, error);\r\n },\r\n warn: (...data: any[]) => {\r\n if (debug) {\r\n console.warn(...name, '[Warn]', ...data)\r\n }\r\n },\r\n debug: (...data: any[]) => {\r\n if (debug) {\r\n console.debug(...name, '[Debug]', ...data)\r\n }\r\n }\r\n };\r\n};\r\n"],"mappings":";;AAOO,MAAM,eAAe,wBAAC,MAAyB,QAAiB,UAAkB;AACrF,MAAI,OAAO,SAAS,UAAU;AAC1B,WAAO,CAAC,IAAI,IAAI,GAAG;AAAA,EACvB,OAAO;AACH,WAAO,KAAK,IAAI,UAAQ,IAAI,IAAI,GAAG;AAAA,EACvC;AACA,SAAO;AAAA,IACH,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,IAAI,GAAG,MAAM,UAAU,GAAG,IAAI;AAEtC;AAAA,MACJ;AAAA,IACJ,GANM;AAAA,IAON,OAAO,wBAAC,SAAS,UAAU;AACvB,cAAQ,MAAM,GAAG,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,IACtD,GAFO;AAAA,IAGP,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,KAAK,GAAG,MAAM,UAAU,GAAG,IAAI;AAAA,MAC3C;AAAA,IACJ,GAJM;AAAA,IAKN,OAAO,2BAAI,SAAgB;AACvB,UAAI,OAAO;AACP,gBAAQ,MAAM,GAAG,MAAM,WAAW,GAAG,IAAI;AAAA,MAC7C;AAAA,IACJ,GAJO;AAAA,EAKX;AACJ,GA5B4B;","names":[]}
1
+ {"version":3,"sources":["../src/logger.ts"],"sourcesContent":["export interface Logger {\r\n info(...data: any[]): void;\r\n error(message: string, error?: unknown): void;\r\n warn(...data: any[]): void;\r\n debug(...data: any[]): void;\r\n}\r\n\r\nexport const createLogger = (name: string | string[], debug: boolean = false): Logger => {\r\n if (typeof name === 'string') {\r\n name = [`[${name}]`];\r\n } else {\r\n name = name.map(item => `[${item}]`);\r\n }\r\n\r\n return {\r\n info: (...data: any[]) => {\r\n console.log(...name, '[Info]', ...data)\r\n },\r\n error: (message, error) => {\r\n console.error(...name, `[Error] ${message}`, error);\r\n },\r\n warn: (...data: any[]) => {\r\n console.warn(...name, '[Warn]', ...data)\r\n },\r\n debug: (...data: any[]) => {\r\n if (debug)\r\n console.debug(...name, '[Debug]', ...data)\r\n }\r\n };\r\n};\r\n"],"mappings":";;AAOO,MAAM,eAAe,wBAAC,MAAyB,QAAiB,UAAkB;AACrF,MAAI,OAAO,SAAS,UAAU;AAC1B,WAAO,CAAC,IAAI,IAAI,GAAG;AAAA,EACvB,OAAO;AACH,WAAO,KAAK,IAAI,UAAQ,IAAI,IAAI,GAAG;AAAA,EACvC;AAEA,SAAO;AAAA,IACH,MAAM,2BAAI,SAAgB;AACtB,cAAQ,IAAI,GAAG,MAAM,UAAU,GAAG,IAAI;AAAA,IAC1C,GAFM;AAAA,IAGN,OAAO,wBAAC,SAAS,UAAU;AACvB,cAAQ,MAAM,GAAG,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,IACtD,GAFO;AAAA,IAGP,MAAM,2BAAI,SAAgB;AACtB,cAAQ,KAAK,GAAG,MAAM,UAAU,GAAG,IAAI;AAAA,IAC3C,GAFM;AAAA,IAGN,OAAO,2BAAI,SAAgB;AACvB,UAAI;AACA,gBAAQ,MAAM,GAAG,MAAM,WAAW,GAAG,IAAI;AAAA,IACjD,GAHO;AAAA,EAIX;AACJ,GAtB4B;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mahameru/diatrema",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "The core engine of MahameruJS. Just like a volcanic diatreme, it serves as the essential conduit that powers and drives the entire framework ecosystem.",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",