@hotfusion/modeller 0.0.8 → 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 CHANGED
@@ -1,5 +1,9 @@
1
1
  # @hotfusion/modeller
2
2
 
3
+ ![npm version](https://img.shields.io/npm/v/@hotfusion/modeller)
4
+ ![beta](https://img.shields.io/badge/status-beta-orange)
5
+ ![license](https://img.shields.io/badge/license-MIT-blue)
6
+
3
7
  A schema-first, all-in-one backend framework for Node.js. Define your data model once and get validation, persistence, business logic, HTTP API, real-time WebSocket, authentication, file uploads, background workers, and static file serving — all wired up automatically.
4
8
 
5
9
  Think of it as the Node.js equivalent of IIS or Apache, but built for modern data-driven applications. Where a traditional web server just routes requests, **modeller** understands your data: it knows its shape, enforces its rules, exposes it safely over the network, and reacts to changes in real time.
@@ -59,9 +63,8 @@ const users = new Model('users', {
59
63
  }
60
64
  });
61
65
 
62
- users.hook({
63
- id: 'normalize-email',
64
- on: 'before:insert',
66
+ users.hook('normalize-email', {
67
+ on : 'before:insert',
65
68
  callback: ({ data }) => { data.email = data.email.toLowerCase(); }
66
69
  });
67
70
 
@@ -165,9 +168,8 @@ Hooks run before or after CRUD operations. They are async and can mutate the pay
165
168
 
166
169
  ```ts
167
170
  // Mutate data before insert
168
- users.hook({
169
- id: 'hash-password',
170
- on: 'before:insert',
171
+ users.hook('hash-password', {
172
+ on : 'before:insert',
171
173
  callback: async ({ data }) => {
172
174
  if (data.password)
173
175
  data.password = await bcrypt.hash(data.password, 10);
@@ -175,9 +177,8 @@ users.hook({
175
177
  });
176
178
 
177
179
  // Run after delete with a delay
178
- users.hook({
179
- id: 'cleanup-sessions',
180
- on: 'after:delete',
180
+ users.hook('cleanup-sessions', {
181
+ on : 'after:delete',
181
182
  schedule: 2000, // runs 2s after the operation
182
183
  callback: ({ key }) => {
183
184
  sessions.delete({ userId: key._id });
@@ -185,9 +186,8 @@ users.hook({
185
186
  });
186
187
 
187
188
  // Listen to multiple events
188
- users.hook({
189
- id: 'audit-log',
190
- on: ['before:insert', 'before:update', 'before:delete'],
189
+ users.hook('audit-log', {
190
+ on : ['before:insert', 'before:update', 'before:delete'],
191
191
  callback: ({ operation, data }) => {
192
192
  console.log(`[audit] ${operation}`, data);
193
193
  }
@@ -204,27 +204,19 @@ users.unhook('audit-log');
204
204
  Workers are background tasks that run on a fixed interval.
205
205
 
206
206
  ```ts
207
- // Named worker — can be started/stopped by id
208
- users.worker({
209
- id : 'cleanup-expired',
210
- interval : 60_000, // every 60s
211
- immediate: true, // run immediately on start (default: true)
207
+ users.worker('cleanup-expired', {
208
+ interval : 60_000, // every 60s
209
+ immediate: true, // run immediately on start (default: true)
212
210
  handler : async (model) => {
213
211
  const expired = await model.find({ expiresAt: { $lt: Date.now() } });
214
212
  for (const u of expired) await model.delete({ _id: u._id });
215
213
  }
216
214
  });
217
215
 
218
- // Unsigned worker (no id, runs with all workers)
219
- users.worker({
220
- interval: 5000,
221
- handler : (model) => console.log('tick')
222
- });
223
-
224
- users.start(); // start all workers
225
- users.start('cleanup-expired'); // start one by id
226
- users.stop('cleanup-expired'); // stop one by id
227
- users.stop(); // stop all
216
+ users.start(); // start all workers
217
+ users.start('cleanup-expired'); // start one by id
218
+ users.stop('cleanup-expired'); // stop one by id
219
+ users.stop(); // stop all
228
220
  users.isRunning('cleanup-expired'); // → boolean
229
221
  ```
230
222
 
@@ -235,8 +227,7 @@ users.isRunning('cleanup-expired'); // → boolean
235
227
  Methods are custom RPC-style handlers exposed over HTTP automatically.
236
228
 
237
229
  ```ts
238
- users.method({
239
- id: 'resetPassword',
230
+ users.method('resetPassword', {
240
231
  handler: async ({ email }, model) => {
241
232
  const user = await model.get({ email });
242
233
  if (!user) throw { status: 404, message: 'User not found' };
@@ -279,8 +270,7 @@ Subscriptions are scoped real-time channels. A client subscribes with a query (e
279
270
  const chat = new Model('chat', schema);
280
271
 
281
272
  // Register a named event the client can dispatch
282
- chat.event({
283
- id: 'sendMessage',
273
+ chat.event('sendMessage', {
284
274
  schema: {
285
275
  type: 'object',
286
276
  required: ['text'],
@@ -290,20 +280,14 @@ chat.event({
290
280
  }
291
281
  },
292
282
  handler: async ({ text, userId }, model, ctx) => {
293
- // Persist the message
294
283
  const message = await model.insert({ text, userId, createdAt: Date.now() });
295
-
296
- // Publish to all clients subscribed to the same roomId
297
- const sub = model.subscription({ roomId: ctx.scope });
298
- sub.publish({ type: 'message', message });
299
-
284
+ model.subscription({ roomId: ctx.scope }).publish({ type: 'message', message });
300
285
  return { delivered: true };
301
286
  }
302
287
  });
303
288
 
304
289
  // Register multiple events on the same model
305
- chat.event({
306
- id: 'typing',
290
+ chat.event('typing', {
307
291
  handler: async ({ userId }, model, ctx) => {
308
292
  model.subscription({ roomId: ctx.scope }).publish({ type: 'typing', userId });
309
293
  }
@@ -316,17 +300,15 @@ You can publish to subscribers at any point — inside hooks, workers, methods,
316
300
 
317
301
  ```ts
318
302
  // Inside a hook — notify subscribers after every insert
319
- chat.hook({
320
- id: 'broadcast-on-insert',
321
- on: 'after:insert',
303
+ chat.hook('broadcast-on-insert', {
304
+ on : 'after:insert',
322
305
  callback: ({ data }) => {
323
306
  chat.subscription({ roomId: data.roomId }).publish({ type: 'new-message', data });
324
307
  }
325
308
  });
326
309
 
327
310
  // Inside a worker — push periodic updates
328
- chat.worker({
329
- id : 'heartbeat',
311
+ chat.worker('heartbeat', {
330
312
  interval: 10_000,
331
313
  handler : (model) => {
332
314
  model.subscription({}).publish({ type: 'heartbeat', ts: Date.now() });
@@ -334,8 +316,7 @@ chat.worker({
334
316
  });
335
317
 
336
318
  // From a custom method — trigger an event in response to an HTTP call
337
- chat.method({
338
- id: 'closeRoom',
319
+ chat.method('closeRoom', {
339
320
  handler: async ({ roomId }, model) => {
340
321
  await model.delete({ roomId });
341
322
  model.subscription({ roomId }).publish({ type: 'room-closed', roomId });
@@ -351,8 +332,7 @@ chat.method({
351
332
  Register a handler for multipart file uploads.
352
333
 
353
334
  ```ts
354
- users.upload({
355
- id: 'avatar',
335
+ users.upload('avatar', {
356
336
  handler: async (file: Buffer, fields, model) => {
357
337
  const filename = `${Date.now()}.jpg`;
358
338
  fs.writeFileSync(`./uploads/${filename}`, file);
@@ -371,8 +351,7 @@ HTTP: `POST /system/users/avatar` (multipart/form-data)
371
351
  Register a handler for chunked binary uploads over WebSocket.
372
352
 
373
353
  ```ts
374
- users.stream({
375
- id: 'video',
354
+ users.stream('video', {
376
355
  handler: async (buffer: Buffer, meta) => {
377
356
  fs.writeFileSync(`./uploads/${meta.filename}`, buffer);
378
357
  return { path: meta.filename };
@@ -481,8 +460,7 @@ const users = new Model('users', schema, {
481
460
  });
482
461
 
483
462
  // Use inside methods, hooks, workers
484
- users.method({
485
- id: 'doSomething',
463
+ users.method('doSomething', {
486
464
  handler: async (args, model) => {
487
465
  model.log.info('method', 'Doing something', { args });
488
466
  }
@@ -830,6 +808,10 @@ socket.on('upload:resume', async ({ uploadId }) => {
830
808
 
831
809
  ---
832
810
 
811
+ ## Status
812
+
813
+ **Beta** — currently at `v0.0.9`. The API may change before `v1.0.0`. Not recommended for production use without pinning the version.
814
+
833
815
  ## License
834
816
 
835
- UNLICENSED internal HotFusion project.
817
+ MIT © HotFusion
package/dist/model.js CHANGED
@@ -11,7 +11,7 @@ const node_path_1 = require("node:path");
11
11
  const node_url_1 = require("node:url");
12
12
  const view_1 = require("./view");
13
13
  const node_fs_2 = __importDefault(require("node:fs"));
14
- // ?? Logger ????????????????????????????????????????????????????????????????????
14
+ // ── Logger ────────────────────────────────────────────────────────────────────
15
15
  const LOG_LEVEL_RANK = {
16
16
  debug: 0,
17
17
  info: 1,
@@ -132,6 +132,7 @@ class Logger {
132
132
  warn(feature, message, data) { this.write('warn', feature, message, data); }
133
133
  error(feature, message, data) { this.write('error', feature, message, data); }
134
134
  }
135
+ // ── Subscription ──────────────────────────────────────────────────────────────
135
136
  class Subscription {
136
137
  _emitter = new eventemitter3_1.EventEmitter();
137
138
  _events;
@@ -152,10 +153,10 @@ class Subscription {
152
153
  this._emitter.emit('publish', payload);
153
154
  }
154
155
  getEvents() {
155
- return this._events.map(e => e.id);
156
+ return Array.from(this._events.keys());
156
157
  }
157
158
  async dispatch(id, args, ctx) {
158
- const e = this._events.find(e => e.id === id);
159
+ const e = this._events.get(id);
159
160
  if (!e)
160
161
  throw { code: 'EVENT_NOT_FOUND', id };
161
162
  if (e.schema) {
@@ -168,19 +169,19 @@ class Subscription {
168
169
  }
169
170
  }
170
171
  exports.Subscription = Subscription;
171
- // ?? Model ?????????????????????????????????????????????????????????????????????
172
+ // ── Model ─────────────────────────────────────────────────────────────────────
172
173
  class Model extends core_1.Core {
173
- hooks = [];
174
- workers = new Map();
175
- unsignedWorkers = [];
176
- _methods = [];
177
- _uploads = [];
178
- _streams = [];
179
- _events = [];
174
+ _hooks = new Map();
175
+ _workers = new Map();
176
+ _methods = new Map();
177
+ _uploads = new Map();
178
+ _streams = new Map();
179
+ _events = new Map();
180
180
  _subscriptions = new Map();
181
181
  _functions = new Map();
182
182
  _configurations = {};
183
183
  _views = new Map();
184
+ _folders = new Map();
184
185
  _bundler = null;
185
186
  emitter = new eventemitter3_1.EventEmitter();
186
187
  log;
@@ -208,7 +209,7 @@ class Model extends core_1.Core {
208
209
  }
209
210
  }
210
211
  getExtensions() { return this._extensions; }
211
- // ?? EventEmitter API ???????????????????????????????????????????????????????
212
+ // ── EventEmitter API ──────────────────────────────────────────────────────
212
213
  on(event, listener) {
213
214
  this.log.debug('event', `Listener registered`, { event });
214
215
  this.emitter.on(event, listener);
@@ -228,156 +229,144 @@ class Model extends core_1.Core {
228
229
  this.log.debug('event', `Emitting`, { event, payload });
229
230
  this.emitter.emit(event, payload);
230
231
  }
231
- // ?? Hook API ???????????????????????????????????????????????????????????????
232
- hook(hook) {
233
- this.hooks.push(hook);
234
- this.log.initial('hook', `Hook registered`, { id: hook.id, on: hook.on, scheduled: hook.schedule ?? false });
232
+ // ── Hook API ──────────────────────────────────────────────────────────────
233
+ hook(id, options) {
234
+ this._hooks.set(id, options);
235
+ this.log.initial('hook', `Hook registered`, { id, on: options.on, scheduled: options.schedule ?? false });
235
236
  return this;
236
237
  }
237
238
  unhook(id) {
238
- const before = this.hooks.length;
239
- this.hooks = this.hooks.filter(h => h.id !== id);
240
- const found = this.hooks.length < before;
241
- if (found)
239
+ const deleted = this._hooks.delete(id);
240
+ if (deleted)
242
241
  this.log.warn('hook', `Hook removed`, { id });
243
242
  else
244
243
  this.log.warn('hook', `Hook not found`, { id });
245
244
  return this;
246
245
  }
247
246
  async fire(event, payload) {
248
- const matching = this.hooks.filter(h => Array.isArray(h.on) ? h.on.includes(event) : h.on === event);
247
+ const matching = Array.from(this._hooks.entries()).filter(([, opts]) => Array.isArray(opts.on) ? opts.on.includes(event) : opts.on === event);
249
248
  this.log.debug('hook', `Firing event`, { event, matched: matching.length });
250
- for (const hook of matching) {
251
- if (hook.schedule) {
252
- this.log.debug('hook', `Scheduling hook`, { id: hook.id, delay: hook.schedule });
249
+ for (const [id, opts] of matching) {
250
+ if (opts.schedule) {
251
+ this.log.debug('hook', `Scheduling hook`, { id, delay: opts.schedule });
253
252
  setTimeout(() => {
254
- this.log.debug('hook', `Executing scheduled hook`, { id: hook.id, event });
255
- hook.callback(payload);
256
- }, hook.schedule);
253
+ this.log.debug('hook', `Executing scheduled hook`, { id, event });
254
+ opts.callback(payload);
255
+ }, opts.schedule);
257
256
  }
258
257
  else {
259
258
  try {
260
- this.log.debug('hook', `Executing hook`, { id: hook.id, event });
261
- await hook.callback(payload);
259
+ this.log.debug('hook', `Executing hook`, { id, event });
260
+ await opts.callback(payload);
262
261
  }
263
262
  catch (err) {
264
- this.log.error('hook', `Hook threw an error`, { id: hook.id, event, error: err?.message ?? err });
263
+ this.log.error('hook', `Hook threw an error`, { id, event, error: err?.message ?? err });
265
264
  throw err;
266
265
  }
267
266
  }
268
267
  }
269
268
  }
270
- // ?? Worker API ?????????????????????????????????????????????????????????????
271
- worker(worker) {
272
- const state = { worker, running: false };
273
- if (worker.id) {
274
- this.workers.set(worker.id, state);
275
- this.log.initial('worker', `Named worker registered`, { id: worker.id, interval: worker.interval });
276
- }
277
- else {
278
- this.unsignedWorkers.push(state);
279
- this.log.initial('worker', `Unsigned worker registered`, { interval: worker.interval, total: this.unsignedWorkers.length });
280
- }
269
+ // ── Worker API ────────────────────────────────────────────────────────────
270
+ worker(id, options) {
271
+ const state = { id, options, running: false };
272
+ this._workers.set(id, state);
273
+ this.log.initial('worker', `Worker registered`, { id, interval: options.interval });
281
274
  return this;
282
275
  }
283
276
  start(id) {
284
277
  if (id) {
285
- const state = this.workers.get(id);
278
+ const state = this._workers.get(id);
286
279
  if (!state) {
287
- this.log.warn('worker', `Named worker not found`, { id });
280
+ this.log.warn('worker', `Worker not found`, { id });
288
281
  return this;
289
282
  }
290
283
  this._startWorker(state);
291
284
  }
292
285
  else {
293
- for (const state of this.unsignedWorkers)
294
- this._startWorker(state);
295
- for (const state of this.workers.values())
286
+ for (const state of this._workers.values())
296
287
  this._startWorker(state);
297
288
  }
298
289
  return this;
299
290
  }
300
291
  stop(id) {
301
292
  if (id) {
302
- const state = this.workers.get(id);
293
+ const state = this._workers.get(id);
303
294
  if (!state) {
304
- this.log.warn('worker', `Named worker not found`, { id });
295
+ this.log.warn('worker', `Worker not found`, { id });
305
296
  return this;
306
297
  }
307
298
  this._stopWorker(state);
308
299
  }
309
300
  else {
310
- for (const state of this.unsignedWorkers)
311
- this._stopWorker(state);
312
- for (const state of this.workers.values())
301
+ for (const state of this._workers.values())
313
302
  this._stopWorker(state);
314
303
  }
315
304
  return this;
316
305
  }
317
306
  isRunning(id) {
318
- return this.workers.get(id)?.running ?? false;
307
+ return this._workers.get(id)?.running ?? false;
319
308
  }
320
309
  _startWorker(state) {
321
- const label = state.worker.id ?? 'unsigned';
322
310
  if (state.running) {
323
- this.log.warn('worker', `Worker already running, skipping`, { id: label });
311
+ this.log.warn('worker', `Worker already running, skipping`, { id: state.id });
324
312
  return;
325
313
  }
326
314
  state.running = true;
327
- const run = () => Promise.resolve(state.worker.handler(this))
328
- .then(() => { this.log.debug('worker', `Worker tick completed`, { id: label }); })
329
- .catch(err => { this.log.error('worker', `Worker tick failed`, { id: label, error: err?.message ?? err }); });
330
- if (state.worker.immediate !== false)
315
+ const run = () => Promise.resolve(state.options.handler(this))
316
+ .then(() => { this.log.debug('worker', `Worker tick completed`, { id: state.id }); })
317
+ .catch(err => { this.log.error('worker', `Worker tick failed`, { id: state.id, error: err?.message ?? err }); });
318
+ if (state.options.immediate !== false)
331
319
  run();
332
- state.timer = setInterval(run, state.worker.interval);
320
+ state.timer = setInterval(run, state.options.interval);
333
321
  }
334
322
  _stopWorker(state) {
335
- const label = state.worker.id ?? 'unsigned';
336
323
  if (!state.running) {
337
- this.log.warn('worker', `Worker is not running, skipping`, { id: label });
324
+ this.log.warn('worker', `Worker is not running, skipping`, { id: state.id });
338
325
  return;
339
326
  }
340
327
  clearInterval(state.timer);
341
328
  state.running = false;
342
329
  }
343
- // ?? Method API ?????????????????????????????????????????????????????????????
344
- method(m) {
345
- this._methods.push(m);
346
- this.log.initial('method', `Method registered`, { id: m.id });
330
+ // ── Method API ────────────────────────────────────────────────────────────
331
+ method(id, options) {
332
+ this._methods.set(id, options);
333
+ this.log.initial('method', `Method registered`, { id });
347
334
  return this;
348
335
  }
349
336
  async call(id, args, ctx) {
350
- const m = this._methods.find(m => m.id === id);
337
+ const m = this._methods.get(id);
351
338
  if (!m)
352
339
  throw { code: 'METHOD_NOT_FOUND', id };
353
340
  return m.handler(args, this, ctx);
354
341
  }
355
- getMethods() { return this._methods.map(m => m.id); }
356
- upload(u) {
357
- this._uploads.push(u);
358
- this.log.initial('method', `Upload registered`, { id: u.id });
342
+ getMethods() { return Array.from(this._methods.keys()); }
343
+ // ── Upload API ────────────────────────────────────────────────────────────
344
+ upload(id, options) {
345
+ this._uploads.set(id, options);
346
+ this.log.initial('method', `Upload registered`, { id });
359
347
  return this;
360
348
  }
361
349
  async callUpload(id, file, fields) {
362
- const u = this._uploads.find((u) => u.id === id);
350
+ const u = this._uploads.get(id);
363
351
  if (!u)
364
352
  throw { code: 'UPLOAD_NOT_FOUND', id };
365
353
  return u.handler(file, fields, this);
366
354
  }
367
- getUploads() { return this._uploads.map(u => u.id); }
368
- stream(s) {
369
- this._streams.push(s);
370
- this.log.initial('method', `Stream registered`, { id: s.id });
355
+ getUploads() { return Array.from(this._uploads.keys()); }
356
+ // ── Stream API ────────────────────────────────────────────────────────────
357
+ stream(id, options) {
358
+ this._streams.set(id, options);
359
+ this.log.initial('method', `Stream registered`, { id });
371
360
  return this;
372
361
  }
373
362
  async callStream(id, buffer, meta) {
374
- const s = this._streams.find((s) => s.id === id);
363
+ const s = this._streams.get(id);
375
364
  if (!s)
376
365
  throw { code: 'STREAM_NOT_FOUND', id };
377
366
  return s.handler(buffer, meta, this);
378
367
  }
379
- getStreams() { return this._streams.map(s => s.id); }
380
- // ?? Function API ???????????????????????????????????????????????????????????
368
+ getStreams() { return Array.from(this._streams.keys()); }
369
+ // ── Function API ──────────────────────────────────────────────────────────
381
370
  function(name, handler) {
382
371
  this._functions.set(name, handler.bind(this));
383
372
  this.log.initial('method', `Function registered`, { id: name });
@@ -385,7 +374,7 @@ class Model extends core_1.Core {
385
374
  return this;
386
375
  }
387
376
  getFunctions() { return Array.from(this._functions.keys()); }
388
- // ?? Configuration API ??????????????????????????????????????????????????????
377
+ // ── Configuration API ─────────────────────────────────────────────────────
389
378
  configurations(config) {
390
379
  const resolvedConfig = typeof config === 'function' ? config() : config;
391
380
  this._configurations = { ...this._configurations, ...resolvedConfig };
@@ -399,10 +388,10 @@ class Model extends core_1.Core {
399
388
  this.log.debug('method', `Configuration updated`, { key });
400
389
  return this;
401
390
  }
402
- // ?? Event / Subscription API ???????????????????????????????????????????????
403
- event(e) {
404
- this._events.push(e);
405
- this.log.initial('event', `Event registered`, { id: e.id });
391
+ // ── Event / Subscription API ──────────────────────────────────────────────
392
+ event(id, options) {
393
+ this._events.set(id, options);
394
+ this.log.initial('event', `Event registered`, { id });
406
395
  return this;
407
396
  }
408
397
  subscription(query) {
@@ -421,7 +410,7 @@ class Model extends core_1.Core {
421
410
  const subId = JSON.stringify(Object.fromEntries(Object.entries(query).sort()));
422
411
  this._subscriptions.delete(subId);
423
412
  }
424
- // ?? CRUD overrides ?????????????????????????????????????????????????????????
413
+ // ── CRUD overrides ────────────────────────────────────────────────────────
425
414
  async insert(key = {}, ...args) {
426
415
  let opts = {};
427
416
  const last = args[args.length - 1];
@@ -471,13 +460,12 @@ class Model extends core_1.Core {
471
460
  this.log.debug('crud', `Find completed`, { count: result.length });
472
461
  return result;
473
462
  }
474
- // ?? View API ???????????????????????????????????????????????????????????????
463
+ // ── View API ──────────────────────────────────────────────────────────────
475
464
  view(path, props = {}) {
476
465
  const v = new view_1.View(path, props, this._bundler ?? undefined);
477
466
  this._views.set(path, v);
478
467
  if (this._bundler) {
479
468
  this._bundler.build().then(result => { v.result = result; });
480
- // watch for file changes
481
469
  node_fs_2.default.watch(this._bundler.path, () => {
482
470
  this.log.debug('method', `View file changed, rebuilding...`, { path });
483
471
  this._bundler.rebuild().then(result => { v.result = result; });
@@ -487,8 +475,7 @@ class Model extends core_1.Core {
487
475
  return this;
488
476
  }
489
477
  getViews() { return Array.from(this._views.values()); }
490
- // ?? Folders API ???????????????????????????????????????????????????????????????
491
- _folders = new Map();
478
+ // ── Folder API ────────────────────────────────────────────────────────────
492
479
  folder(urlPath, folderPath, configs = {}) {
493
480
  if (!(0, node_fs_1.existsSync)(folderPath))
494
481
  throw new Error(`[Model] folder() path does not exist: ${folderPath}`);
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { IEvent, IHook, ILogAdapter, ILogEntry, ILoggerOptions, IMethod, ISchema, IStream, IUpload, IWorker, LogFeature, LogLevel } from './types.d.ts';
1
+ import type { IEventOptions, IHookOptions, ILogAdapter, ILogEntry, ILoggerOptions, IMethodOptions, ISchema, IStreamOptions, IUploadOptions, IWorkerOptions, LogFeature, LogLevel } from './types.d.ts';
2
2
  import { Core } from "./core";
3
3
  import type { IModellerConfig } from "./types.d.ts";
4
4
  import { Bundler } from "./utils/bundler";
@@ -27,7 +27,7 @@ export declare class Subscription {
27
27
  private _emitter;
28
28
  private _events;
29
29
  private _model;
30
- constructor(events: IEvent[], model: Model);
30
+ constructor(events: Map<string, IEventOptions>, model: Model);
31
31
  on(event: 'publish', listener: (payload: any) => void): this;
32
32
  off(event: 'publish', listener: (payload: any) => void): this;
33
33
  publish(payload: any): void;
@@ -47,9 +47,8 @@ export interface IModelOptions extends IModellerConfig {
47
47
  }
48
48
  export declare class Model extends Core {
49
49
  [key: string]: any;
50
- private hooks;
51
- private workers;
52
- private unsignedWorkers;
50
+ private _hooks;
51
+ private _workers;
53
52
  private _methods;
54
53
  private _uploads;
55
54
  private _streams;
@@ -58,6 +57,7 @@ export declare class Model extends Core {
58
57
  private _functions;
59
58
  private _configurations;
60
59
  private _views;
60
+ private _folders;
61
61
  private _bundler;
62
62
  private emitter;
63
63
  readonly log: Logger;
@@ -68,22 +68,22 @@ export declare class Model extends Core {
68
68
  off(event: string, listener: (...args: any[]) => void): this;
69
69
  once(event: string, listener: (...args: any[]) => void): this;
70
70
  emit(event: string, payload?: any): void;
71
- hook(hook: IHook): this;
71
+ hook(id: string, options: IHookOptions): this;
72
72
  unhook(id: string): this;
73
73
  private fire;
74
- worker(worker: IWorker): this;
74
+ worker(id: string, options: IWorkerOptions): this;
75
75
  start(id?: string): this;
76
76
  stop(id?: string): this;
77
77
  isRunning(id: string): boolean;
78
78
  private _startWorker;
79
79
  private _stopWorker;
80
- method(m: IMethod): this;
80
+ method(id: string, options: IMethodOptions): this;
81
81
  call(id: string, args: any, ctx?: any): Promise<any>;
82
82
  getMethods(): string[];
83
- upload(u: IUpload): this;
83
+ upload(id: string, options: IUploadOptions): this;
84
84
  callUpload(id: string, file: Buffer, fields: Record<string, string>): Promise<any>;
85
85
  getUploads(): string[];
86
- stream(s: IStream): this;
86
+ stream(id: string, options: IStreamOptions): this;
87
87
  callStream(id: string, buffer: Buffer, meta: Record<string, any>): Promise<any>;
88
88
  getStreams(): string[];
89
89
  function<T extends (...args: any[]) => any>(name: string, handler: T): this;
@@ -92,7 +92,7 @@ export declare class Model extends Core {
92
92
  getConfigurations(): Record<string, any>;
93
93
  getConfiguration(key: string): any;
94
94
  setConfiguration(key: string, value: any): this;
95
- event(e: IEvent): this;
95
+ event(id: string, options: IEventOptions): this;
96
96
  subscription(query: Record<string, any>): Subscription;
97
97
  subscribe(query: Record<string, any>): {
98
98
  subscription: Subscription;
@@ -117,7 +117,6 @@ export declare class Model extends Core {
117
117
  }): Promise<any[]>;
118
118
  view(path: string, props?: any): this;
119
119
  getViews(): View[];
120
- private _folders;
121
120
  folder(urlPath: string, folderPath: string, configs?: Record<string, any>): this;
122
121
  getFolders(): Map<string, {
123
122
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hotfusion/modeller",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/types/index.d.ts",