|
1 |
| -/** |
2 |
| - * Dependencies |
3 |
| - */ |
4 |
| - |
5 |
| -const _ = require('lodash'); |
6 |
| -const debug = require('@tryghost/debug')('models'); |
7 |
| -const glob = require('glob'); |
| 1 | +/* eslint-disable max-lines */ |
8 | 2 |
|
9 | 3 | // enable event listeners
|
10 | 4 | require('./base/listeners');
|
11 | 5 |
|
12 | 6 | /**
|
13 | 7 | * Expose all models
|
14 | 8 | */
|
15 |
| -exports = module.exports; |
| 9 | +module.exports = { |
| 10 | + // `base` file does not export a Base model |
| 11 | + Base: require('./base'), |
16 | 12 |
|
17 |
| -function init() { |
18 |
| - const baseNow = Date.now(); |
19 |
| - exports.Base = require('./base'); |
20 |
| - debug(`${Date.now() - baseNow}ms - Base.js require`); |
21 |
| - |
22 |
| - let modelsFiles = glob.sync('!(index).js', {cwd: __dirname}); |
23 |
| - modelsFiles.forEach((model) => { |
24 |
| - const name = model.replace(/.js$/, ''); |
25 |
| - const modelNow = Date.now(); |
26 |
| - _.extend(exports, require('./' + name)); |
27 |
| - debug(`${Date.now() - modelNow}ms - ${model} require`); |
28 |
| - }); |
29 |
| -} |
| 13 | + ...require('./action'), |
| 14 | + ...require('./author'), |
| 15 | + ...require('./api-key'), |
| 16 | + ...require('./benefit'), |
| 17 | + ...require('./collection-post'), |
| 18 | + ...require('./collection'), |
| 19 | + ...require('./comment-like'), |
| 20 | + ...require('./comment-report'), |
| 21 | + ...require('./comment'), |
| 22 | + ...require('./custom-theme-setting'), |
| 23 | + ...require('./donation-payment-event'), |
| 24 | + ...require('./email-batch'), |
| 25 | + ...require('./email-recipient-failure'), |
| 26 | + ...require('./email-recipient'), |
| 27 | + ...require('./email-spam-complaint-event'), |
| 28 | + ...require('./email'), |
| 29 | + ...require('./integration'), |
| 30 | + ...require('./invite'), |
| 31 | + ...require('./job'), |
| 32 | + ...require('./label'), |
| 33 | + ...require('./mail-event'), |
| 34 | + ...require('./member-cancel-event'), |
| 35 | + ...require('./member-click-event'), |
| 36 | + ...require('./member-created-event'), |
| 37 | + ...require('./member-email-change-event'), |
| 38 | + ...require('./member-feedback'), |
| 39 | + ...require('./member-login-event'), |
| 40 | + ...require('./member-newsletter'), |
| 41 | + ...require('./member-paid-subscription-event'), |
| 42 | + ...require('./member-payment-event'), |
| 43 | + ...require('./member-product-event'), |
| 44 | + ...require('./member-status-event'), |
| 45 | + ...require('./member-stripe-customer'), |
| 46 | + ...require('./member-subscribe-event'), |
| 47 | + ...require('./member'), |
| 48 | + ...require('./mention'), |
| 49 | + ...require('./milestone'), |
| 50 | + ...require('./mobiledoc-revision'), |
| 51 | + ...require('./newsletter'), |
| 52 | + ...require('./offer-redemption'), |
| 53 | + ...require('./offer'), |
| 54 | + ...require('./permission'), |
| 55 | + ...require('./post-revision'), |
| 56 | + ...require('./post'), |
| 57 | + ...require('./posts-meta'), |
| 58 | + ...require('./product'), |
| 59 | + ...require('./recommendation-click-event'), |
| 60 | + ...require('./recommendation-subscribe-event'), |
| 61 | + ...require('./recommendation'), |
| 62 | + ...require('./redirect'), |
| 63 | + ...require('./role'), |
| 64 | + ...require('./session'), |
| 65 | + ...require('./settings'), |
| 66 | + ...require('./single-use-token'), |
| 67 | + ...require('./snippet'), |
| 68 | + ...require('./stripe-customer-subscription'), |
| 69 | + ...require('./stripe-price'), |
| 70 | + ...require('./stripe-product'), |
| 71 | + ...require('./subscription-created-event'), |
| 72 | + ...require('./suppression'), |
| 73 | + ...require('./tag-public'), |
| 74 | + ...require('./tag'), |
| 75 | + ...require('./user'), |
| 76 | + ...require('./webhook') |
| 77 | +}; |
30 | 78 |
|
31 | 79 | /**
|
32 |
| - * Expose `init` |
| 80 | + * @deprecated: remove this once we've removed it from everywhere |
33 | 81 | */
|
34 |
| - |
35 |
| -exports.init = init; |
| 82 | +module.exports.init = function init() { |
| 83 | + if (process.env.NODE_ENV !== 'production') { |
| 84 | + // eslint-disable-next-line no-console |
| 85 | + console.warn('@deprecated: models.init() is deprecated. Models are now automatically required.'); |
| 86 | + } |
| 87 | +}; |
0 commit comments