mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-22 18:31:57 +03:00
59a3a67683
- Unquestionably, at some point we need to rework the API code so that we have less stuff everywhere - However, the max-lines index.js rule exists as a proxy to find index.js files which are not exposing Public API, but rather contain logic - These 6 cases are all valid index.js files as the expose the Public API of the module - Therefore, I've added an override and an override notice explaining.
192 lines
4.7 KiB
JavaScript
192 lines
4.7 KiB
JavaScript
const shared = require('../shared');
|
|
const localUtils = require('./utils');
|
|
|
|
// ESLint Override Notice
|
|
// This is a valid index.js file - it just exports a lot of stuff!
|
|
// Long term we would like to change the API architecture to reduce this file,
|
|
// but that's not the problem the index.js max - line eslint "proxy" rule is there to solve.
|
|
/* eslint-disable max-lines */
|
|
|
|
module.exports = {
|
|
get http() {
|
|
return shared.http;
|
|
},
|
|
|
|
get authentication() {
|
|
return shared.pipeline(require('./authentication'), localUtils);
|
|
},
|
|
|
|
get db() {
|
|
return shared.pipeline(require('./db'), localUtils);
|
|
},
|
|
|
|
get identities() {
|
|
return shared.pipeline(require('./identities'), localUtils);
|
|
},
|
|
|
|
get integrations() {
|
|
return shared.pipeline(require('./integrations'), localUtils);
|
|
},
|
|
|
|
// @TODO: transform
|
|
get session() {
|
|
return require('./session');
|
|
},
|
|
|
|
get schedules() {
|
|
return shared.pipeline(require('./schedules'), localUtils);
|
|
},
|
|
|
|
get pages() {
|
|
return shared.pipeline(require('./pages'), localUtils);
|
|
},
|
|
|
|
get redirects() {
|
|
return shared.pipeline(require('./redirects'), localUtils);
|
|
},
|
|
|
|
get roles() {
|
|
return shared.pipeline(require('./roles'), localUtils);
|
|
},
|
|
|
|
get slugs() {
|
|
return shared.pipeline(require('./slugs'), localUtils);
|
|
},
|
|
|
|
get webhooks() {
|
|
return shared.pipeline(require('./webhooks'), localUtils);
|
|
},
|
|
|
|
get posts() {
|
|
return shared.pipeline(require('./posts'), localUtils);
|
|
},
|
|
|
|
get invites() {
|
|
return shared.pipeline(require('./invites'), localUtils);
|
|
},
|
|
|
|
get mail() {
|
|
return shared.pipeline(require('./mail'), localUtils);
|
|
},
|
|
|
|
get notifications() {
|
|
return shared.pipeline(require('./notifications'), localUtils);
|
|
},
|
|
|
|
get settings() {
|
|
return shared.pipeline(require('./settings'), localUtils);
|
|
},
|
|
|
|
get membersStripeConnect() {
|
|
return shared.pipeline(require('./membersStripeConnect'), localUtils);
|
|
},
|
|
|
|
get members() {
|
|
return shared.pipeline(require('./members'), localUtils);
|
|
},
|
|
|
|
get products() {
|
|
return shared.pipeline(require('./products'), localUtils);
|
|
},
|
|
|
|
get memberSigninUrls() {
|
|
return shared.pipeline(require('./memberSigninUrls.js'), localUtils);
|
|
},
|
|
|
|
get labels() {
|
|
return shared.pipeline(require('./labels'), localUtils);
|
|
},
|
|
|
|
get images() {
|
|
return shared.pipeline(require('./images'), localUtils);
|
|
},
|
|
|
|
get tags() {
|
|
return shared.pipeline(require('./tags'), localUtils);
|
|
},
|
|
|
|
get users() {
|
|
return shared.pipeline(require('./users'), localUtils);
|
|
},
|
|
|
|
get preview() {
|
|
return shared.pipeline(require('./preview'), localUtils);
|
|
},
|
|
|
|
get emailPost() {
|
|
return shared.pipeline(require('./email-post'), localUtils);
|
|
},
|
|
|
|
get oembed() {
|
|
return shared.pipeline(require('./oembed'), localUtils);
|
|
},
|
|
|
|
get slack() {
|
|
return shared.pipeline(require('./slack'), localUtils);
|
|
},
|
|
|
|
get config() {
|
|
return shared.pipeline(require('./config'), localUtils);
|
|
},
|
|
|
|
get themes() {
|
|
return shared.pipeline(require('./themes'), localUtils);
|
|
},
|
|
|
|
get actions() {
|
|
return shared.pipeline(require('./actions'), localUtils);
|
|
},
|
|
|
|
get email_preview() {
|
|
return shared.pipeline(require('./email-preview'), localUtils);
|
|
},
|
|
|
|
get emails() {
|
|
return shared.pipeline(require('./email'), localUtils);
|
|
},
|
|
|
|
get site() {
|
|
return shared.pipeline(require('./site'), localUtils);
|
|
},
|
|
|
|
get snippets() {
|
|
return shared.pipeline(require('./snippets'), localUtils);
|
|
},
|
|
|
|
get serializers() {
|
|
return require('./utils/serializers');
|
|
},
|
|
|
|
/**
|
|
* Content API Controllers
|
|
*
|
|
* @NOTE:
|
|
*
|
|
* Please create separate controllers for Content & Admin API. The goal is to expose `api.canary.content` and
|
|
* `api.canary.admin` soon. Need to figure out how serializers & validation works then.
|
|
*/
|
|
get pagesPublic() {
|
|
return shared.pipeline(require('./pages-public'), localUtils, 'content');
|
|
},
|
|
|
|
get tagsPublic() {
|
|
return shared.pipeline(require('./tags-public'), localUtils, 'content');
|
|
},
|
|
|
|
get publicSettings() {
|
|
return shared.pipeline(require('./settings-public'), localUtils, 'content');
|
|
},
|
|
|
|
get postsPublic() {
|
|
return shared.pipeline(require('./posts-public'), localUtils, 'content');
|
|
},
|
|
|
|
get authorsPublic() {
|
|
return shared.pipeline(require('./authors-public'), localUtils, 'content');
|
|
},
|
|
|
|
get productsPublic() {
|
|
return shared.pipeline(require('./products-public'), localUtils, 'content');
|
|
}
|
|
};
|