| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- /* eslint-disable
- camelcase,
- max-len,
- no-path-concat,
- no-unused-vars,
- one-var,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS101: Remove unnecessary use of Array.from
- * DS102: Remove unnecessary code created because of implicit returns
- * DS103: Rewrite code to no longer use __guard__
- * DS201: Simplify complex destructure assignments
- * DS205: Consider reworking code to avoid use of IIFEs
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- let Modules
- const fs = require('fs')
- const Path = require('path')
- const pug = require('pug')
- const async = require('async')
- const MODULE_BASE_PATH = Path.resolve(__dirname + '/../../../modules')
- module.exports = Modules = {
- modules: [],
- loadModules() {
- for (let moduleName of Array.from(fs.readdirSync(MODULE_BASE_PATH))) {
- if (fs.existsSync(Path.join(MODULE_BASE_PATH, moduleName, 'index.js'))) {
- const loadedModule = require(Path.join(
- MODULE_BASE_PATH,
- moduleName,
- 'index'
- ))
- loadedModule.name = moduleName
- this.modules.push(loadedModule)
- }
- }
- return Modules.attachHooks()
- },
- applyRouter(webRouter, privateApiRouter, publicApiRouter) {
- return Array.from(this.modules).map(module =>
- __guardMethod__(module.router, 'apply', o =>
- o.apply(webRouter, privateApiRouter, publicApiRouter)
- )
- )
- },
- applyNonCsrfRouter(webRouter, privateApiRouter, publicApiRouter) {
- return (() => {
- const result = []
- for (let module of Array.from(this.modules)) {
- if (module.nonCsrfRouter != null) {
- module.nonCsrfRouter.apply(
- webRouter,
- privateApiRouter,
- publicApiRouter
- )
- }
- result.push(
- __guardMethod__(module.router, 'applyNonCsrfRouter', o =>
- o.applyNonCsrfRouter(webRouter, privateApiRouter, publicApiRouter)
- )
- )
- }
- return result
- })()
- },
- viewIncludes: {},
- loadViewIncludes(app) {
- this.viewIncludes = {}
- return Array.from(this.modules).map(module =>
- (() => {
- const result = []
- const object = module.viewIncludes || {}
- for (let view in object) {
- const partial = object[view]
- if (!this.viewIncludes[view]) {
- this.viewIncludes[view] = []
- }
- const filePath = Path.join(
- MODULE_BASE_PATH,
- module.name,
- 'app/views',
- partial + '.pug'
- )
- result.push(
- this.viewIncludes[view].push(
- pug.compileFile(filePath, { doctype: 'html' })
- )
- )
- }
- return result
- })()
- )
- },
- moduleIncludes(view, locals) {
- const compiledPartials = Modules.viewIncludes[view] || []
- let html = ''
- for (let compiledPartial of Array.from(compiledPartials)) {
- const d = new Date()
- html += compiledPartial(locals)
- }
- return html
- },
- moduleIncludesAvailable(view) {
- return (Modules.viewIncludes[view] || []).length > 0
- },
- linkedFileAgentsIncludes() {
- const agents = {}
- for (let module of Array.from(this.modules)) {
- for (let name in module.linkedFileAgents) {
- const agentFunction = module.linkedFileAgents[name]
- agents[name] = agentFunction()
- }
- }
- return agents
- },
- attachHooks() {
- return (() => {
- const result = []
- for (var module of Array.from(this.modules)) {
- if (module.hooks != null) {
- result.push(
- (() => {
- const result1 = []
- for (let hook in module.hooks) {
- const method = module.hooks[hook]
- result1.push(Modules.hooks.attach(hook, method))
- }
- return result1
- })()
- )
- } else {
- result.push(undefined)
- }
- }
- return result
- })()
- },
- hooks: {
- _hooks: {},
- attach(name, method) {
- if (this._hooks[name] == null) {
- this._hooks[name] = []
- }
- return this._hooks[name].push(method)
- },
- fire(name, ...rest) {
- const adjustedLength = Math.max(rest.length, 1),
- args = rest.slice(0, adjustedLength - 1),
- callback = rest[adjustedLength - 1]
- const methods = this._hooks[name] || []
- const call_methods = methods.map(method => cb =>
- method(...Array.from(args), cb)
- )
- return async.series(call_methods, function(error, results) {
- if (error != null) {
- return callback(error)
- }
- return callback(null, results)
- })
- }
- }
- }
- Modules.loadModules()
- function __guardMethod__(obj, methodName, transform) {
- if (
- typeof obj !== 'undefined' &&
- obj !== null &&
- typeof obj[methodName] === 'function'
- ) {
- return transform(obj, methodName)
- } else {
- return undefined
- }
- }
|