52 lines
1.1 KiB
JavaScript

'use strict';
const { merge, map, pipe, reduce } = require('lodash/fp');
const enums = require('./enums');
const dynamicZone = require('./dynamic-zones');
const entity = require('./entity');
const entityMeta = require('./entity-meta');
const type = require('./type');
const response = require('./response');
const responseCollection = require('./response-collection');
const queries = require('./queries');
const mutations = require('./mutations');
const filters = require('./filters');
const inputs = require('./input');
const genericMorph = require('./generic-morph');
const buildersFactories = [
enums,
dynamicZone,
entity,
entityMeta,
type,
response,
responseCollection,
queries,
mutations,
filters,
inputs,
genericMorph,
];
/**
* Instantiate every builder with the given context
* @param {object} context
* @param {object} context.strapi
* @parma {object} context.registry
*/
module.exports = context => {
return pipe(
// Create a new instance of every builders
map(factory => factory(context)),
// Merge every builder into the same object
reduce(merge, {})
).call(null, buildersFactories);
};