Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/local/lib/node_modules/strapi/lib/core/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
const _ = require('lodash');
const { getConfigUrls } = require('strapi-utils');
const { createCoreApi } = require('../core-api');
const getKind = obj => obj.kind || 'collectionType';
const pickSchema = model => {
const schema = _.cloneDeep(
_.pick(model, ['connection', 'collectionName', 'info', 'options', 'attributes'])
);
schema.kind = getKind(model);
return schema;
};
module.exports = function(strapi) {
// Set connections.
strapi.connections = {};
const defaultConnection = strapi.config.get('database.defaultConnection');
// Set current connections.
strapi.config.connections = strapi.config.get('database.connections', {});
strapi.contentTypes = {};
// Set models.
strapi.models = Object.keys(strapi.api || []).reduce((acc, apiName) => {
const api = strapi.api[apiName];
for (let modelName in api.models) {
let model = strapi.api[apiName].models[modelName];
Object.assign(model, {
__schema__: pickSchema(model),
kind: getKind(model),
modelType: 'contentType',
uid: `application::${apiName}.${modelName}`,
apiName,
modelName,
globalId: model.globalId || _.upperFirst(_.camelCase(modelName)),
collectionName: model.collectionName || `${modelName}`.toLocaleLowerCase(),
connection: model.connection || defaultConnection,
});
strapi.contentTypes[model.uid] = model;
const { service, controller } = createCoreApi({ model, api, strapi });
_.set(strapi.api[apiName], ['services', modelName], service);
_.set(strapi.api[apiName], ['controllers', modelName], controller);
acc[modelName] = model;
}
return acc;
}, {});
// Set components
Object.keys(strapi.components).forEach(componentName => {
const component = strapi.components[componentName];
component.connection = component.connection || defaultConnection;
});
// Set controllers.
strapi.controllers = Object.keys(strapi.api || []).reduce((acc, key) => {
for (let index in strapi.api[key].controllers) {
let controller = strapi.api[key].controllers[index];
controller.identity = controller.identity || _.upperFirst(index);
acc[index] = controller;
}
return acc;
}, {});
// Set services.
strapi.services = Object.keys(strapi.api || []).reduce((acc, key) => {
for (let index in strapi.api[key].services) {
acc[index] = strapi.api[key].services[index];
}
return acc;
}, {});
// Set routes.
strapi.config.routes = Object.keys(strapi.api || []).reduce((acc, key) => {
return acc.concat(_.get(strapi.api[key], 'config.routes') || {});
}, []);
// Init admin controllers.
Object.keys(strapi.admin.controllers || []).forEach(key => {
if (!strapi.admin.controllers[key].identity) {
strapi.admin.controllers[key].identity = key;
}
});
// Init admin models.
Object.keys(strapi.admin.models || []).forEach(key => {
let model = strapi.admin.models[key];
Object.assign(model, {
__schema__: pickSchema(model),
modelType: 'contentType',
kind: getKind(model),
uid: `strapi::${key}`,
plugin: 'admin',
modelName: key,
identity: model.identity || _.upperFirst(key),
globalId: model.globalId || _.upperFirst(_.camelCase(`admin-${key}`)),
connection: model.connection || defaultConnection,
});
strapi.contentTypes[model.uid] = model;
});
Object.keys(strapi.plugins).forEach(pluginName => {
let plugin = strapi.plugins[pluginName];
Object.assign(plugin, {
controllers: plugin.controllers || [],
services: plugin.services || [],
models: plugin.models || [],
});
Object.keys(plugin.controllers).forEach(key => {
let controller = plugin.controllers[key];
Object.assign(controller, {
identity: controller.identity || key,
});
});
Object.keys(plugin.models || []).forEach(key => {
let model = plugin.models[key];
Object.assign(model, {
__schema__: pickSchema(model),
modelType: 'contentType',
kind: getKind(model),
modelName: key,
uid: `plugins::${pluginName}.${key}`,
plugin: pluginName,
collectionName: model.collectionName || `${pluginName}_${key}`.toLowerCase(),
globalId: model.globalId || _.upperFirst(_.camelCase(`${pluginName}-${key}`)),
connection: model.connection || defaultConnection,
});
strapi.contentTypes[model.uid] = model;
});
});
// Preset config in alphabetical order.
strapi.config.middleware.settings = Object.keys(strapi.middleware).reduce((acc, current) => {
// Try to find the settings in the current environment, then in the main configurations.
const currentSettings = _.merge(
_.cloneDeep(_.get(strapi.middleware[current], ['defaults', current], {})),
strapi.config.get(['middleware', 'settings', current], {})
);
acc[current] = !_.isObject(currentSettings) ? {} : currentSettings;
// Ensure that enabled key exist by forcing to false.
_.defaults(acc[current], { enabled: false });
return acc;
}, {});
strapi.config.hook.settings = Object.keys(strapi.hook).reduce((acc, current) => {
// Try to find the settings in the current environment, then in the main configurations.
const currentSettings = _.merge(
_.cloneDeep(_.get(strapi.hook[current], ['defaults', current], {})),
strapi.config.get(['hook', 'settings', current], {})
);
acc[current] = !_.isObject(currentSettings) ? {} : currentSettings;
// Ensure that enabled key exist by forcing to false.
_.defaults(acc[current], { enabled: false });
return acc;
}, {});
// default settings
strapi.config.port = strapi.config.get('server.port') || strapi.config.port;
strapi.config.host = strapi.config.get('server.host') || strapi.config.host;
const { serverUrl, adminUrl, adminPath } = getConfigUrls(strapi.config.get('server'));
strapi.config.server = strapi.config.server || {};
strapi.config.server.url = serverUrl;
strapi.config.admin.url = adminUrl;
strapi.config.admin.path = adminPath;
// check if we should serve admin panel
const shouldServeAdmin = strapi.config.get(
'server.admin.serveAdminPanel',
strapi.config.serveAdminPanel
);
if (!shouldServeAdmin) {
strapi.config.serveAdminPanel = false;
}
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.005 ]-- |