@cruxjs/base 0.0.7 → 0.0.9
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/README.md +1 -1
- package/dist/index.cjs +1 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -10
- package/dist/index.d.ts +3 -10
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
</div>
|
|
9
9
|
|
|
10
10
|
<div align="center">
|
|
11
|
-
<img src="https://img.shields.io/badge/v-0.0.
|
|
11
|
+
<img src="https://img.shields.io/badge/v-0.0.9-black"/>
|
|
12
12
|
<img src="https://img.shields.io/badge/🔥-@cruxjs-black"/>
|
|
13
13
|
<br>
|
|
14
14
|
<img src="https://img.shields.io/github/issues/cruxjs-org/base?style=flat" alt="Github Repo Issues" />
|
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
'use strict';var g=class{constructor(e=
|
|
2
|
-
[CruxJS] \u26A1 Phase: ${e}`);}info(e){this.debug&&console.log(`[CruxJS] ${e}`);}success(e){this.debug&&console.log(`[CruxJS] \u2713 ${e}`);}error(e,t){console.error(`[CruxJS] \u2717 ${e}`),t&&console.error(t);}plugin(e,t){this.debug&&console.log(`[CruxJS:${e}] ${t}`);}};var a=class{constructor(e){this.logger=e;}mergeRoutes(e=[],t=[]){let o=[...e],i=new Set(e.map(s=>`${s.method}:${s.path}`));for(let s of t){let n=`${s.method}:${s.path}`;i.has(n)?this.logger.info(`Skipping plugin route ${n} (overridden by user)`):o.push(s);}return o}mergeSchemas(e=[],t=[]){let o=[...e],i=new Set(e.map(s=>s.name));for(let s of t)i.has(s.name)?this.logger.info(`Skipping plugin schema ${s.name} (overridden by user)`):o.push(s);return o}mergeStatic(e=[],t=[]){return [...e,...t]}};var l=class{constructor(e){this.plugins=[];this.logger=e;}async register(e,t){this.logger.info(`Registering plugin: ${e.name}`),this.plugins.push(e),e.onRegister&&await e.onRegister(t),this.logger.success(`Plugin registered: ${e.name} v${e.version}`);}getAll(){return this.plugins}async callHook(e,t){for(let o of this.plugins)o[e]&&(this.logger.plugin(o.name,`Calling ${e}`),await o[e](t));}collectRoutes(){let e=[];for(let t of this.plugins)t.routes&&(e.push(...t.routes),this.logger.plugin(t.name,`Provided ${t.routes.length} routes`));return e}collectSchemas(){let e=[];for(let t of this.plugins)t.schemas&&(e.push(...t.schemas),this.logger.plugin(t.name,`Provided ${t.schemas.length} schemas`));return e}collectMiddlewares(){let e=new Map;for(let t of this.plugins)if(t.middlewares)for(let o of t.middlewares)e.set(`${t.name}:${o.name}`,o.handler),this.logger.plugin(t.name,`Provided middleware: ${o.name}`);return e}collectStatic(){let e=[];for(let t of this.plugins)t.static&&(e.push(...t.static),this.logger.plugin(t.name,`Provided ${t.static.length} static configs`));return e}};exports.Logger=g;exports.PluginRegistry=l;exports.ResourceMerger=a;//# sourceMappingURL=index.cjs.map
|
|
1
|
+
'use strict';var logger=require('@minejs/logger');var p=new logger.Logger("debug",true,"[CruxJS]");var n=class{constructor(e){this.logger=e;}mergeRoutes(e=[],t=[]){let o=[...e],s=new Set(e.map(i=>`${i.method}:${i.path}`));for(let i of t){let r=`${i.method}:${i.path}`;s.has(r)?this.logger.info(`Skipping plugin route ${r} (overridden by user)`):o.push(i);}return o}mergeSchemas(e=[],t=[]){let o=[...e],s=new Set(e.map(i=>i.name));for(let i of t)s.has(i.name)?this.logger.info(`Skipping plugin schema ${i.name} (overridden by user)`):o.push(i);return o}mergeStatic(e=[],t=[]){return [...e,...t]}};var g=class{constructor(e){this.plugins=[];this.logger=e;}async register(e,t){this.logger.info(`Registering plugin: ${e.name}`),this.plugins.push(e),e.onRegister&&await e.onRegister(t),this.logger.debug(`Plugin registered: ${e.name} v${e.version}`);}getAll(){return this.plugins}async callHook(e,t){for(let o of this.plugins)o[e]&&(this.logger.debug(o.name,`Calling ${e}`),await o[e](t));}collectRoutes(){let e=[];for(let t of this.plugins)t.routes&&(e.push(...t.routes),this.logger.debug(t.name,`Provided ${t.routes.length} routes`));return e}collectSchemas(){let e=[];for(let t of this.plugins)t.schemas&&(e.push(...t.schemas),this.logger.debug(t.name,`Provided ${t.schemas.length} schemas`));return e}collectMiddlewares(){let e=new Map;for(let t of this.plugins)if(t.middlewares)for(let o of t.middlewares)e.set(`${t.name}:${o.name}`,o.handler),this.logger.debug(t.name,`Provided middleware: ${o.name}`);return e}collectStatic(){let e=[];for(let t of this.plugins)t.static&&(e.push(...t.static),this.logger.debug(t.name,`Provided ${t.static.length} static configs`));return e}};exports.PluginRegistry=g;exports.ResourceMerger=n;exports.logger=p;//# sourceMappingURL=index.cjs.map
|
|
3
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mod/logger.ts","../src/mod/resource_merger.ts","../src/mod/plugin_registry.ts"],"names":["Logger","debug","name","msg","err","ResourceMerger","logger","userRoutes","pluginRoutes","merged","userPaths","r","route","key","userSchemas","pluginSchemas","userTables","schema","userStatic","pluginStatic","PluginRegistry","plugin","app","hook","ctx","routes","schemas","middlewares","mw","statics"],"mappings":"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","file":"index.cjs","sourcesContent":["// src/mod/logger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class Logger {\r\n constructor(private debug: boolean = false) {}\r\n\r\n phase(name: string) {\r\n if (!this.debug) return;\r\n console.log(`\\n[CruxJS] ⚡ Phase: ${name}`);\r\n }\r\n\r\n info(msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS] ${msg}`);\r\n }\r\n\r\n success(msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS] ✓ ${msg}`);\r\n }\r\n\r\n error(msg: string, err?: Error) {\r\n console.error(`[CruxJS] ✗ ${msg}`);\r\n if (err) console.error(err);\r\n }\r\n\r\n plugin(name: string, msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS:${name}] ${msg}`);\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/resource_merger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { RouteDefinition, TableSchema, StaticConfig } from '../types';\r\n import { Logger } from './logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class ResourceMerger {\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n mergeRoutes(\r\n userRoutes: RouteDefinition[] = [],\r\n pluginRoutes: RouteDefinition[] = []\r\n ): RouteDefinition[] {\r\n // User routes have priority\r\n const merged = [...userRoutes];\r\n const userPaths = new Set(userRoutes.map(r => `${r.method}:${r.path}`));\r\n\r\n for (const route of pluginRoutes) {\r\n const key = `${route.method}:${route.path}`;\r\n\r\n if (!userPaths.has(key)) {\r\n merged.push(route);\r\n } else {\r\n this.logger.info(`Skipping plugin route ${key} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeSchemas(\r\n userSchemas: TableSchema[] = [],\r\n pluginSchemas: TableSchema[] = []\r\n ): TableSchema[] {\r\n // User schemas have priority\r\n const merged = [...userSchemas];\r\n const userTables = new Set(userSchemas.map(s => s.name));\r\n\r\n for (const schema of pluginSchemas) {\r\n if (!userTables.has(schema.name)) {\r\n merged.push(schema);\r\n } else {\r\n this.logger.info(`Skipping plugin schema ${schema.name} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeStatic(\r\n userStatic: StaticConfig[] = [],\r\n pluginStatic: StaticConfig[] = []\r\n ): StaticConfig[] {\r\n return [...userStatic, ...pluginStatic];\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/plugin_registry.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import * as types from '../types';\r\n import { Logger } from './logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class PluginRegistry {\r\n private plugins: types.CruxPlugin[] = [];\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n async register(plugin: types.CruxPlugin, app: types.AppInstance) {\r\n this.logger.info(`Registering plugin: ${plugin.name}`);\r\n\r\n this.plugins.push(plugin);\r\n\r\n // Call plugin's onRegister hook\r\n if (plugin.onRegister) {\r\n await plugin.onRegister(app);\r\n }\r\n\r\n this.logger.success(`Plugin registered: ${plugin.name} v${plugin.version}`);\r\n }\r\n\r\n getAll(): types.CruxPlugin[] {\r\n return this.plugins;\r\n }\r\n\r\n async callHook(\r\n hook: keyof Pick<types.CruxPlugin, 'onAwake' | 'onStart' | 'onReady' | 'onShutdown'>,\r\n ctx: types.LifecycleContext\r\n ) {\r\n for (const plugin of this.plugins) {\r\n if (plugin[hook]) {\r\n this.logger.plugin(plugin.name, `Calling ${hook}`);\r\n await plugin[hook]!(ctx);\r\n }\r\n }\r\n }\r\n\r\n collectRoutes(): types.RouteDefinition[] {\r\n const routes: types.RouteDefinition[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.routes) {\r\n routes.push(...plugin.routes);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.routes.length} routes`);\r\n }\r\n }\r\n\r\n return routes;\r\n }\r\n\r\n collectSchemas(): types.TableSchema[] {\r\n const schemas: types.TableSchema[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.schemas) {\r\n schemas.push(...plugin.schemas);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.schemas.length} schemas`);\r\n }\r\n }\r\n\r\n return schemas;\r\n }\r\n\r\n collectMiddlewares(): Map<string, types.AppMiddleware> {\r\n const middlewares = new Map<string, types.AppMiddleware>();\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.middlewares) {\r\n for (const mw of plugin.middlewares) {\r\n middlewares.set(`${plugin.name}:${mw.name}`, mw.handler);\r\n this.logger.plugin(plugin.name, `Provided middleware: ${mw.name}`);\r\n }\r\n }\r\n }\r\n\r\n return middlewares;\r\n }\r\n\r\n collectStatic(): types.StaticConfig[] {\r\n const statics: types.StaticConfig[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.static) {\r\n statics.push(...plugin.static);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.static.length} static configs`);\r\n }\r\n }\r\n\r\n return statics;\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝"]}
|
|
1
|
+
{"version":3,"sources":["../src/mod/logger.ts","../src/mod/resource_merger.ts","../src/mod/plugin_registry.ts"],"names":["logger","Logger","ResourceMerger","userRoutes","pluginRoutes","merged","userPaths","r","route","key","userSchemas","pluginSchemas","userTables","s","schema","userStatic","pluginStatic","PluginRegistry","plugin","app","hook","ctx","routes","schemas","middlewares","mw","statics"],"mappings":"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","file":"index.cjs","sourcesContent":["// src/mod/logger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export const logger = new Logger('debug', true, '[CruxJS]');\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/resource_merger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { RouteDefinition, TableSchema, StaticConfig } from '../types';\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class ResourceMerger {\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n mergeRoutes(\r\n userRoutes: RouteDefinition[] = [],\r\n pluginRoutes: RouteDefinition[] = []\r\n ): RouteDefinition[] {\r\n // User routes have priority\r\n const merged = [...userRoutes];\r\n const userPaths = new Set(userRoutes.map(r => `${r.method}:${r.path}`));\r\n\r\n for (const route of pluginRoutes) {\r\n const key = `${route.method}:${route.path}`;\r\n\r\n if (!userPaths.has(key)) {\r\n merged.push(route);\r\n } else {\r\n this.logger.info(`Skipping plugin route ${key} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeSchemas(\r\n userSchemas: TableSchema[] = [],\r\n pluginSchemas: TableSchema[] = []\r\n ): TableSchema[] {\r\n // User schemas have priority\r\n const merged = [...userSchemas];\r\n const userTables = new Set(userSchemas.map(s => s.name));\r\n\r\n for (const schema of pluginSchemas) {\r\n if (!userTables.has(schema.name)) {\r\n merged.push(schema);\r\n } else {\r\n this.logger.info(`Skipping plugin schema ${schema.name} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeStatic(\r\n userStatic: StaticConfig[] = [],\r\n pluginStatic: StaticConfig[] = []\r\n ): StaticConfig[] {\r\n return [...userStatic, ...pluginStatic];\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/plugin_registry.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import * as types from '../types';\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class PluginRegistry {\r\n private plugins: types.CruxPlugin[] = [];\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n async register(plugin: types.CruxPlugin, app: types.AppInstance) {\r\n this.logger.info(`Registering plugin: ${plugin.name}`);\r\n\r\n this.plugins.push(plugin);\r\n\r\n // Call plugin's onRegister hook\r\n if (plugin.onRegister) {\r\n await plugin.onRegister(app);\r\n }\r\n\r\n this.logger.debug(`Plugin registered: ${plugin.name} v${plugin.version}`);\r\n }\r\n\r\n getAll(): types.CruxPlugin[] {\r\n return this.plugins;\r\n }\r\n\r\n async callHook(\r\n hook: keyof Pick<types.CruxPlugin, 'onAwake' | 'onStart' | 'onReady' | 'onShutdown'>,\r\n ctx: types.LifecycleContext\r\n ) {\r\n for (const plugin of this.plugins) {\r\n if (plugin[hook]) {\r\n this.logger.debug(plugin.name, `Calling ${hook}`);\r\n await plugin[hook]!(ctx);\r\n }\r\n }\r\n }\r\n\r\n collectRoutes(): types.RouteDefinition[] {\r\n const routes: types.RouteDefinition[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.routes) {\r\n routes.push(...plugin.routes);\r\n this.logger.debug(plugin.name, `Provided ${plugin.routes.length} routes`);\r\n }\r\n }\r\n\r\n return routes;\r\n }\r\n\r\n collectSchemas(): types.TableSchema[] {\r\n const schemas: types.TableSchema[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.schemas) {\r\n schemas.push(...plugin.schemas);\r\n this.logger.debug(plugin.name, `Provided ${plugin.schemas.length} schemas`);\r\n }\r\n }\r\n\r\n return schemas;\r\n }\r\n\r\n collectMiddlewares(): Map<string, types.AppMiddleware> {\r\n const middlewares = new Map<string, types.AppMiddleware>();\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.middlewares) {\r\n for (const mw of plugin.middlewares) {\r\n middlewares.set(`${plugin.name}:${mw.name}`, mw.handler);\r\n this.logger.debug(plugin.name, `Provided middleware: ${mw.name}`);\r\n }\r\n }\r\n }\r\n\r\n return middlewares;\r\n }\r\n\r\n collectStatic(): types.StaticConfig[] {\r\n const statics: types.StaticConfig[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.static) {\r\n statics.push(...plugin.static);\r\n this.logger.debug(plugin.name, `Provided ${plugin.static.length} static configs`);\r\n }\r\n }\r\n\r\n return statics;\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TableSchema as TableSchema$1, DB } from '@minejs/db';
|
|
2
2
|
import { AppContext as AppContext$1 } from '@minejs/server';
|
|
3
|
+
import { Logger } from '@minejs/logger';
|
|
3
4
|
|
|
4
5
|
type AppContext = AppContext$1;
|
|
5
6
|
type TableSchema = TableSchema$1;
|
|
@@ -148,15 +149,7 @@ interface AppInstance {
|
|
|
148
149
|
getMiddleware(name: string): AppMiddleware | undefined;
|
|
149
150
|
}
|
|
150
151
|
|
|
151
|
-
declare
|
|
152
|
-
private debug;
|
|
153
|
-
constructor(debug?: boolean);
|
|
154
|
-
phase(name: string): void;
|
|
155
|
-
info(msg: string): void;
|
|
156
|
-
success(msg: string): void;
|
|
157
|
-
error(msg: string, err?: Error): void;
|
|
158
|
-
plugin(name: string, msg: string): void;
|
|
159
|
-
}
|
|
152
|
+
declare const logger: Logger;
|
|
160
153
|
|
|
161
154
|
declare class ResourceMerger {
|
|
162
155
|
private logger;
|
|
@@ -179,4 +172,4 @@ declare class PluginRegistry {
|
|
|
179
172
|
collectStatic(): StaticConfig[];
|
|
180
173
|
}
|
|
181
174
|
|
|
182
|
-
export { type AppConfig, type AppContext, type AppInstance, type AppMiddleware, type CruxPlugin, type LifecycleContext, type LifecycleHooks,
|
|
175
|
+
export { type AppConfig, type AppContext, type AppInstance, type AppMiddleware, type CruxPlugin, type LifecycleContext, type LifecycleHooks, type MiddlewareExport, PluginRegistry, ResourceMerger, type RouteDefinition, type StaticConfig, type TableSchema, logger };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TableSchema as TableSchema$1, DB } from '@minejs/db';
|
|
2
2
|
import { AppContext as AppContext$1 } from '@minejs/server';
|
|
3
|
+
import { Logger } from '@minejs/logger';
|
|
3
4
|
|
|
4
5
|
type AppContext = AppContext$1;
|
|
5
6
|
type TableSchema = TableSchema$1;
|
|
@@ -148,15 +149,7 @@ interface AppInstance {
|
|
|
148
149
|
getMiddleware(name: string): AppMiddleware | undefined;
|
|
149
150
|
}
|
|
150
151
|
|
|
151
|
-
declare
|
|
152
|
-
private debug;
|
|
153
|
-
constructor(debug?: boolean);
|
|
154
|
-
phase(name: string): void;
|
|
155
|
-
info(msg: string): void;
|
|
156
|
-
success(msg: string): void;
|
|
157
|
-
error(msg: string, err?: Error): void;
|
|
158
|
-
plugin(name: string, msg: string): void;
|
|
159
|
-
}
|
|
152
|
+
declare const logger: Logger;
|
|
160
153
|
|
|
161
154
|
declare class ResourceMerger {
|
|
162
155
|
private logger;
|
|
@@ -179,4 +172,4 @@ declare class PluginRegistry {
|
|
|
179
172
|
collectStatic(): StaticConfig[];
|
|
180
173
|
}
|
|
181
174
|
|
|
182
|
-
export { type AppConfig, type AppContext, type AppInstance, type AppMiddleware, type CruxPlugin, type LifecycleContext, type LifecycleHooks,
|
|
175
|
+
export { type AppConfig, type AppContext, type AppInstance, type AppMiddleware, type CruxPlugin, type LifecycleContext, type LifecycleHooks, type MiddlewareExport, PluginRegistry, ResourceMerger, type RouteDefinition, type StaticConfig, type TableSchema, logger };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
var g=class{constructor(e=
|
|
2
|
-
[CruxJS] \u26A1 Phase: ${e}`);}info(e){this.debug&&console.log(`[CruxJS] ${e}`);}success(e){this.debug&&console.log(`[CruxJS] \u2713 ${e}`);}error(e,t){console.error(`[CruxJS] \u2717 ${e}`),t&&console.error(t);}plugin(e,t){this.debug&&console.log(`[CruxJS:${e}] ${t}`);}};var a=class{constructor(e){this.logger=e;}mergeRoutes(e=[],t=[]){let o=[...e],i=new Set(e.map(s=>`${s.method}:${s.path}`));for(let s of t){let n=`${s.method}:${s.path}`;i.has(n)?this.logger.info(`Skipping plugin route ${n} (overridden by user)`):o.push(s);}return o}mergeSchemas(e=[],t=[]){let o=[...e],i=new Set(e.map(s=>s.name));for(let s of t)i.has(s.name)?this.logger.info(`Skipping plugin schema ${s.name} (overridden by user)`):o.push(s);return o}mergeStatic(e=[],t=[]){return [...e,...t]}};var l=class{constructor(e){this.plugins=[];this.logger=e;}async register(e,t){this.logger.info(`Registering plugin: ${e.name}`),this.plugins.push(e),e.onRegister&&await e.onRegister(t),this.logger.success(`Plugin registered: ${e.name} v${e.version}`);}getAll(){return this.plugins}async callHook(e,t){for(let o of this.plugins)o[e]&&(this.logger.plugin(o.name,`Calling ${e}`),await o[e](t));}collectRoutes(){let e=[];for(let t of this.plugins)t.routes&&(e.push(...t.routes),this.logger.plugin(t.name,`Provided ${t.routes.length} routes`));return e}collectSchemas(){let e=[];for(let t of this.plugins)t.schemas&&(e.push(...t.schemas),this.logger.plugin(t.name,`Provided ${t.schemas.length} schemas`));return e}collectMiddlewares(){let e=new Map;for(let t of this.plugins)if(t.middlewares)for(let o of t.middlewares)e.set(`${t.name}:${o.name}`,o.handler),this.logger.plugin(t.name,`Provided middleware: ${o.name}`);return e}collectStatic(){let e=[];for(let t of this.plugins)t.static&&(e.push(...t.static),this.logger.plugin(t.name,`Provided ${t.static.length} static configs`));return e}};export{g as Logger,l as PluginRegistry,a as ResourceMerger};//# sourceMappingURL=index.js.map
|
|
1
|
+
import {Logger}from'@minejs/logger';var p=new Logger("debug",true,"[CruxJS]");var n=class{constructor(e){this.logger=e;}mergeRoutes(e=[],t=[]){let o=[...e],s=new Set(e.map(i=>`${i.method}:${i.path}`));for(let i of t){let r=`${i.method}:${i.path}`;s.has(r)?this.logger.info(`Skipping plugin route ${r} (overridden by user)`):o.push(i);}return o}mergeSchemas(e=[],t=[]){let o=[...e],s=new Set(e.map(i=>i.name));for(let i of t)s.has(i.name)?this.logger.info(`Skipping plugin schema ${i.name} (overridden by user)`):o.push(i);return o}mergeStatic(e=[],t=[]){return [...e,...t]}};var g=class{constructor(e){this.plugins=[];this.logger=e;}async register(e,t){this.logger.info(`Registering plugin: ${e.name}`),this.plugins.push(e),e.onRegister&&await e.onRegister(t),this.logger.debug(`Plugin registered: ${e.name} v${e.version}`);}getAll(){return this.plugins}async callHook(e,t){for(let o of this.plugins)o[e]&&(this.logger.debug(o.name,`Calling ${e}`),await o[e](t));}collectRoutes(){let e=[];for(let t of this.plugins)t.routes&&(e.push(...t.routes),this.logger.debug(t.name,`Provided ${t.routes.length} routes`));return e}collectSchemas(){let e=[];for(let t of this.plugins)t.schemas&&(e.push(...t.schemas),this.logger.debug(t.name,`Provided ${t.schemas.length} schemas`));return e}collectMiddlewares(){let e=new Map;for(let t of this.plugins)if(t.middlewares)for(let o of t.middlewares)e.set(`${t.name}:${o.name}`,o.handler),this.logger.debug(t.name,`Provided middleware: ${o.name}`);return e}collectStatic(){let e=[];for(let t of this.plugins)t.static&&(e.push(...t.static),this.logger.debug(t.name,`Provided ${t.static.length} static configs`));return e}};export{g as PluginRegistry,n as ResourceMerger,p as logger};//# sourceMappingURL=index.js.map
|
|
3
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mod/logger.ts","../src/mod/resource_merger.ts","../src/mod/plugin_registry.ts"],"names":["Logger","debug","name","msg","err","ResourceMerger","logger","userRoutes","pluginRoutes","merged","userPaths","r","route","key","userSchemas","pluginSchemas","userTables","schema","userStatic","pluginStatic","PluginRegistry","plugin","app","hook","ctx","routes","schemas","middlewares","mw","statics"],"mappings":"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","file":"index.js","sourcesContent":["// src/mod/logger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class Logger {\r\n constructor(private debug: boolean = false) {}\r\n\r\n phase(name: string) {\r\n if (!this.debug) return;\r\n console.log(`\\n[CruxJS] ⚡ Phase: ${name}`);\r\n }\r\n\r\n info(msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS] ${msg}`);\r\n }\r\n\r\n success(msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS] ✓ ${msg}`);\r\n }\r\n\r\n error(msg: string, err?: Error) {\r\n console.error(`[CruxJS] ✗ ${msg}`);\r\n if (err) console.error(err);\r\n }\r\n\r\n plugin(name: string, msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS:${name}] ${msg}`);\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/resource_merger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { RouteDefinition, TableSchema, StaticConfig } from '../types';\r\n import { Logger } from './logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class ResourceMerger {\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n mergeRoutes(\r\n userRoutes: RouteDefinition[] = [],\r\n pluginRoutes: RouteDefinition[] = []\r\n ): RouteDefinition[] {\r\n // User routes have priority\r\n const merged = [...userRoutes];\r\n const userPaths = new Set(userRoutes.map(r => `${r.method}:${r.path}`));\r\n\r\n for (const route of pluginRoutes) {\r\n const key = `${route.method}:${route.path}`;\r\n\r\n if (!userPaths.has(key)) {\r\n merged.push(route);\r\n } else {\r\n this.logger.info(`Skipping plugin route ${key} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeSchemas(\r\n userSchemas: TableSchema[] = [],\r\n pluginSchemas: TableSchema[] = []\r\n ): TableSchema[] {\r\n // User schemas have priority\r\n const merged = [...userSchemas];\r\n const userTables = new Set(userSchemas.map(s => s.name));\r\n\r\n for (const schema of pluginSchemas) {\r\n if (!userTables.has(schema.name)) {\r\n merged.push(schema);\r\n } else {\r\n this.logger.info(`Skipping plugin schema ${schema.name} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeStatic(\r\n userStatic: StaticConfig[] = [],\r\n pluginStatic: StaticConfig[] = []\r\n ): StaticConfig[] {\r\n return [...userStatic, ...pluginStatic];\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/plugin_registry.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import * as types from '../types';\r\n import { Logger } from './logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class PluginRegistry {\r\n private plugins: types.CruxPlugin[] = [];\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n async register(plugin: types.CruxPlugin, app: types.AppInstance) {\r\n this.logger.info(`Registering plugin: ${plugin.name}`);\r\n\r\n this.plugins.push(plugin);\r\n\r\n // Call plugin's onRegister hook\r\n if (plugin.onRegister) {\r\n await plugin.onRegister(app);\r\n }\r\n\r\n this.logger.success(`Plugin registered: ${plugin.name} v${plugin.version}`);\r\n }\r\n\r\n getAll(): types.CruxPlugin[] {\r\n return this.plugins;\r\n }\r\n\r\n async callHook(\r\n hook: keyof Pick<types.CruxPlugin, 'onAwake' | 'onStart' | 'onReady' | 'onShutdown'>,\r\n ctx: types.LifecycleContext\r\n ) {\r\n for (const plugin of this.plugins) {\r\n if (plugin[hook]) {\r\n this.logger.plugin(plugin.name, `Calling ${hook}`);\r\n await plugin[hook]!(ctx);\r\n }\r\n }\r\n }\r\n\r\n collectRoutes(): types.RouteDefinition[] {\r\n const routes: types.RouteDefinition[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.routes) {\r\n routes.push(...plugin.routes);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.routes.length} routes`);\r\n }\r\n }\r\n\r\n return routes;\r\n }\r\n\r\n collectSchemas(): types.TableSchema[] {\r\n const schemas: types.TableSchema[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.schemas) {\r\n schemas.push(...plugin.schemas);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.schemas.length} schemas`);\r\n }\r\n }\r\n\r\n return schemas;\r\n }\r\n\r\n collectMiddlewares(): Map<string, types.AppMiddleware> {\r\n const middlewares = new Map<string, types.AppMiddleware>();\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.middlewares) {\r\n for (const mw of plugin.middlewares) {\r\n middlewares.set(`${plugin.name}:${mw.name}`, mw.handler);\r\n this.logger.plugin(plugin.name, `Provided middleware: ${mw.name}`);\r\n }\r\n }\r\n }\r\n\r\n return middlewares;\r\n }\r\n\r\n collectStatic(): types.StaticConfig[] {\r\n const statics: types.StaticConfig[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.static) {\r\n statics.push(...plugin.static);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.static.length} static configs`);\r\n }\r\n }\r\n\r\n return statics;\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝"]}
|
|
1
|
+
{"version":3,"sources":["../src/mod/logger.ts","../src/mod/resource_merger.ts","../src/mod/plugin_registry.ts"],"names":["logger","Logger","ResourceMerger","userRoutes","pluginRoutes","merged","userPaths","r","route","key","userSchemas","pluginSchemas","userTables","s","schema","userStatic","pluginStatic","PluginRegistry","plugin","app","hook","ctx","routes","schemas","middlewares","mw","statics"],"mappings":"wCAgBiBA,CAAAA,CAAS,IAAIC,OAAO,OAAA,CAAS,IAAA,CAAM,UAAU,ECCnD,IAAMC,EAAN,KAAqB,CAGxB,YAAYF,CAAAA,CAAgB,CACxB,KAAK,MAAA,CAASA,EAClB,CAEA,WAAA,CACIG,EAAgC,EAAC,CACjCC,EAAkC,EAAC,CAClB,CAEjB,IAAMC,CAAAA,CAAS,CAAC,GAAGF,CAAU,EACvBG,CAAAA,CAAY,IAAI,IAAIH,CAAAA,CAAW,GAAA,CAAII,GAAK,CAAA,EAAGA,CAAAA,CAAE,MAAM,CAAA,CAAA,EAAIA,EAAE,IAAI,CAAA,CAAE,CAAC,CAAA,CAEtE,IAAA,IAAWC,KAASJ,CAAAA,CAAc,CAC9B,IAAMK,CAAAA,CAAM,CAAA,EAAGD,EAAM,MAAM,CAAA,CAAA,EAAIA,EAAM,IAAI,CAAA,CAAA,CAEpCF,EAAU,GAAA,CAAIG,CAAG,EAGlB,IAAA,CAAK,MAAA,CAAO,KAAK,CAAA,sBAAA,EAAyBA,CAAG,uBAAuB,CAAA,CAFpEJ,CAAAA,CAAO,KAAKG,CAAK,EAIzB,CAEA,OAAOH,CACX,CAEA,YAAA,CACIK,CAAAA,CAA6B,EAAC,CAC9BC,CAAAA,CAA+B,EAAC,CACnB,CAEb,IAAMN,CAAAA,CAAS,CAAC,GAAGK,CAAW,EACxBE,CAAAA,CAAa,IAAI,IAAIF,CAAAA,CAAY,GAAA,CAAIG,GAAKA,CAAAA,CAAE,IAAI,CAAC,CAAA,CAEvD,IAAA,IAAWC,KAAUH,CAAAA,CACZC,CAAAA,CAAW,IAAIE,CAAAA,CAAO,IAAI,EAG3B,IAAA,CAAK,MAAA,CAAO,KAAK,CAAA,uBAAA,EAA0BA,CAAAA,CAAO,IAAI,CAAA,qBAAA,CAAuB,CAAA,CAF7ET,EAAO,IAAA,CAAKS,CAAM,EAM1B,OAAOT,CACX,CAEA,WAAA,CACIU,CAAAA,CAA6B,EAAC,CAC9BC,CAAAA,CAA+B,EAAC,CAClB,CACd,OAAO,CAAC,GAAGD,CAAAA,CAAY,GAAGC,CAAY,CAC1C,CACJ,ECrDO,IAAMC,CAAAA,CAAN,KAAqB,CAIxB,WAAA,CAAYjB,EAAgB,CAH5B,IAAA,CAAQ,QAA8B,EAAC,CAInC,KAAK,MAAA,CAASA,EAClB,CAEA,MAAM,QAAA,CAASkB,EAA0BC,CAAAA,CAAwB,CAC7D,KAAK,MAAA,CAAO,IAAA,CAAK,uBAAuBD,CAAAA,CAAO,IAAI,EAAE,CAAA,CAErD,IAAA,CAAK,QAAQ,IAAA,CAAKA,CAAM,EAGpBA,CAAAA,CAAO,UAAA,EACP,MAAMA,CAAAA,CAAO,UAAA,CAAWC,CAAG,CAAA,CAG/B,KAAK,MAAA,CAAO,KAAA,CAAM,sBAAsBD,CAAAA,CAAO,IAAI,KAAKA,CAAAA,CAAO,OAAO,EAAE,EAC5E,CAEA,QAA6B,CACzB,OAAO,KAAK,OAChB,CAEA,MAAM,QAAA,CACFE,CAAAA,CACAC,CAAAA,CACF,CACE,QAAWH,CAAAA,IAAU,IAAA,CAAK,QAClBA,CAAAA,CAAOE,CAAI,IACX,IAAA,CAAK,MAAA,CAAO,MAAMF,CAAAA,CAAO,IAAA,CAAM,WAAWE,CAAI,CAAA,CAAE,EAChD,MAAMF,CAAAA,CAAOE,CAAI,CAAA,CAAGC,CAAG,CAAA,EAGnC,CAEA,eAAyC,CACrC,IAAMC,EAAkC,EAAC,CAEzC,QAAWJ,CAAAA,IAAU,IAAA,CAAK,QAClBA,CAAAA,CAAO,MAAA,GACPI,EAAO,IAAA,CAAK,GAAGJ,EAAO,MAAM,CAAA,CAC5B,KAAK,MAAA,CAAO,KAAA,CAAMA,EAAO,IAAA,CAAM,CAAA,SAAA,EAAYA,EAAO,MAAA,CAAO,MAAM,SAAS,CAAA,CAAA,CAIhF,OAAOI,CACX,CAEA,cAAA,EAAsC,CAClC,IAAMC,CAAAA,CAA+B,EAAC,CAEtC,IAAA,IAAWL,KAAU,IAAA,CAAK,OAAA,CAClBA,EAAO,OAAA,GACPK,CAAAA,CAAQ,IAAA,CAAK,GAAGL,EAAO,OAAO,CAAA,CAC9B,KAAK,MAAA,CAAO,KAAA,CAAMA,EAAO,IAAA,CAAM,CAAA,SAAA,EAAYA,EAAO,OAAA,CAAQ,MAAM,UAAU,CAAA,CAAA,CAIlF,OAAOK,CACX,CAEA,kBAAA,EAAuD,CACnD,IAAMC,CAAAA,CAAc,IAAI,GAAA,CAExB,IAAA,IAAWN,KAAU,IAAA,CAAK,OAAA,CAC1B,GAAIA,CAAAA,CAAO,WAAA,CACP,QAAWO,CAAAA,IAAMP,CAAAA,CAAO,YACpBM,CAAAA,CAAY,GAAA,CAAI,GAAGN,CAAAA,CAAO,IAAI,IAAIO,CAAAA,CAAG,IAAI,GAAIA,CAAAA,CAAG,OAAO,CAAA,CACvD,IAAA,CAAK,OAAO,KAAA,CAAMP,CAAAA,CAAO,KAAM,CAAA,qBAAA,EAAwBO,CAAAA,CAAG,IAAI,CAAA,CAAE,CAAA,CAKxE,OAAOD,CACX,CAEA,eAAsC,CAClC,IAAME,EAAgC,EAAC,CAEvC,QAAWR,CAAAA,IAAU,IAAA,CAAK,QAClBA,CAAAA,CAAO,MAAA,GACPQ,EAAQ,IAAA,CAAK,GAAGR,EAAO,MAAM,CAAA,CAC7B,KAAK,MAAA,CAAO,KAAA,CAAMA,EAAO,IAAA,CAAM,CAAA,SAAA,EAAYA,EAAO,MAAA,CAAO,MAAM,iBAAiB,CAAA,CAAA,CAIxF,OAAOQ,CACX,CACJ","file":"index.js","sourcesContent":["// src/mod/logger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export const logger = new Logger('debug', true, '[CruxJS]');\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/resource_merger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { RouteDefinition, TableSchema, StaticConfig } from '../types';\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class ResourceMerger {\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n mergeRoutes(\r\n userRoutes: RouteDefinition[] = [],\r\n pluginRoutes: RouteDefinition[] = []\r\n ): RouteDefinition[] {\r\n // User routes have priority\r\n const merged = [...userRoutes];\r\n const userPaths = new Set(userRoutes.map(r => `${r.method}:${r.path}`));\r\n\r\n for (const route of pluginRoutes) {\r\n const key = `${route.method}:${route.path}`;\r\n\r\n if (!userPaths.has(key)) {\r\n merged.push(route);\r\n } else {\r\n this.logger.info(`Skipping plugin route ${key} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeSchemas(\r\n userSchemas: TableSchema[] = [],\r\n pluginSchemas: TableSchema[] = []\r\n ): TableSchema[] {\r\n // User schemas have priority\r\n const merged = [...userSchemas];\r\n const userTables = new Set(userSchemas.map(s => s.name));\r\n\r\n for (const schema of pluginSchemas) {\r\n if (!userTables.has(schema.name)) {\r\n merged.push(schema);\r\n } else {\r\n this.logger.info(`Skipping plugin schema ${schema.name} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeStatic(\r\n userStatic: StaticConfig[] = [],\r\n pluginStatic: StaticConfig[] = []\r\n ): StaticConfig[] {\r\n return [...userStatic, ...pluginStatic];\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/plugin_registry.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import * as types from '../types';\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class PluginRegistry {\r\n private plugins: types.CruxPlugin[] = [];\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n async register(plugin: types.CruxPlugin, app: types.AppInstance) {\r\n this.logger.info(`Registering plugin: ${plugin.name}`);\r\n\r\n this.plugins.push(plugin);\r\n\r\n // Call plugin's onRegister hook\r\n if (plugin.onRegister) {\r\n await plugin.onRegister(app);\r\n }\r\n\r\n this.logger.debug(`Plugin registered: ${plugin.name} v${plugin.version}`);\r\n }\r\n\r\n getAll(): types.CruxPlugin[] {\r\n return this.plugins;\r\n }\r\n\r\n async callHook(\r\n hook: keyof Pick<types.CruxPlugin, 'onAwake' | 'onStart' | 'onReady' | 'onShutdown'>,\r\n ctx: types.LifecycleContext\r\n ) {\r\n for (const plugin of this.plugins) {\r\n if (plugin[hook]) {\r\n this.logger.debug(plugin.name, `Calling ${hook}`);\r\n await plugin[hook]!(ctx);\r\n }\r\n }\r\n }\r\n\r\n collectRoutes(): types.RouteDefinition[] {\r\n const routes: types.RouteDefinition[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.routes) {\r\n routes.push(...plugin.routes);\r\n this.logger.debug(plugin.name, `Provided ${plugin.routes.length} routes`);\r\n }\r\n }\r\n\r\n return routes;\r\n }\r\n\r\n collectSchemas(): types.TableSchema[] {\r\n const schemas: types.TableSchema[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.schemas) {\r\n schemas.push(...plugin.schemas);\r\n this.logger.debug(plugin.name, `Provided ${plugin.schemas.length} schemas`);\r\n }\r\n }\r\n\r\n return schemas;\r\n }\r\n\r\n collectMiddlewares(): Map<string, types.AppMiddleware> {\r\n const middlewares = new Map<string, types.AppMiddleware>();\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.middlewares) {\r\n for (const mw of plugin.middlewares) {\r\n middlewares.set(`${plugin.name}:${mw.name}`, mw.handler);\r\n this.logger.debug(plugin.name, `Provided middleware: ${mw.name}`);\r\n }\r\n }\r\n }\r\n\r\n return middlewares;\r\n }\r\n\r\n collectStatic(): types.StaticConfig[] {\r\n const statics: types.StaticConfig[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.static) {\r\n statics.push(...plugin.static);\r\n this.logger.debug(plugin.name, `Provided ${plugin.static.length} static configs`);\r\n }\r\n }\r\n\r\n return statics;\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cruxjs/base",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "Core types and utilities for building CruxJS applications and plugins. A shared foundation for @cruxjs/app and plugin packages.",
|
|
5
5
|
"keywords": ["cruxjs", "base", "types"],
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,7 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@minejs/db": "^0.0.3",
|
|
44
|
-
"@minejs/
|
|
44
|
+
"@minejs/logger": "^0.0.2",
|
|
45
|
+
"@minejs/server": "^0.1.0"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
48
|
"@eslint/js": "^9.39.2",
|