|
1 | 1 | 'use strict'; |
2 | 2 |
|
3 | | -var fs = require('fs') |
4 | | -, path = require('path') |
5 | | -, async = require('async'); |
| 3 | +const NoModel = require('./model'); |
| 4 | +const { join } = require('path'); |
| 5 | +const { readFileSync } = require('fs'); |
| 6 | +const { DatabaseLoader } = require('booljs.api'); |
6 | 7 |
|
7 | | -var API = require('booljs.api'); |
8 | | - |
9 | | -module.exports = class BoolJSNoModel extends API.DatabaseLoader{ |
10 | | - constructor() { |
| 8 | +module.exports = class BoolJSNoModel extends DatabaseLoader { |
| 9 | + constructor () { |
11 | 10 | super('booljs.nomodel'); |
12 | 11 | } |
13 | 12 |
|
14 | 13 | /** @ignore */ |
15 | | - openDatabase(config) { |
16 | | - return q.resolve(); |
17 | | - } |
18 | | - |
19 | | - /** @ignore */ |
20 | | - fetchModels(_instance, models) { |
21 | | - var fetch = q.nbind(async.forEachOfSeries, async); |
| 14 | + async openDatabase (config) {} |
22 | 15 |
|
23 | | - return fetch(models, function (path, model, next) { |
24 | | - var Model = require(path); |
| 16 | + modelClass () { return NoModel; } |
25 | 17 |
|
26 | | - var _model = function () { |
27 | | - return new Model(_instance.getComponents()); |
28 | | - }; |
29 | | - _instance.insertComponent( |
30 | | - model, _model, _instance.getComponents().models |
31 | | - ); |
32 | | - |
33 | | - next(); |
34 | | - }); |
| 18 | + /** @ignore */ |
| 19 | + async fetchModels (connection, Model, instance) { |
| 20 | + let modelClass = this.modelClass(); |
| 21 | + return class extends modelClass { |
| 22 | + constructor (...params) { |
| 23 | + return new (Function.prototype.bind.apply(Model, [ |
| 24 | + null, instance.getComponents() |
| 25 | + ].concat(params)))(); |
| 26 | + } |
| 27 | + }; |
35 | 28 | } |
| 29 | + |
36 | 30 | /** @ignore */ |
37 | | - modelTemplate() { |
38 | | - return fs.readFileSync(path.join( |
39 | | - require.resolve('.'), '../templates/model.js' |
40 | | - )); |
| 31 | + modelTemplate () { |
| 32 | + return readFileSync( |
| 33 | + join(require.resolve('.'), '../templates/model.js') |
| 34 | + ); |
41 | 35 | } |
42 | 36 |
|
43 | 37 | /** @ignore */ |
44 | | - modelConfiguration() { |
| 38 | + modelConfiguration () { |
45 | 39 | return false; |
46 | 40 | } |
47 | 41 | }; |
0 commit comments