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/homebridge-config-ui-x/node_modules/@nestjs/swagger/dist/explorers/ drwxr-xr-x | |
| Viewing file: Select action/file-type: "use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.exploreApiParametersMetadata = void 0;
const lodash_1 = require("lodash");
const constants_1 = require("../constants");
const model_properties_accessor_1 = require("../services/model-properties-accessor");
const parameter_metadata_accessor_1 = require("../services/parameter-metadata-accessor");
const parameters_metadata_mapper_1 = require("../services/parameters-metadata-mapper");
const schema_object_factory_1 = require("../services/schema-object-factory");
const swagger_types_mapper_1 = require("../services/swagger-types-mapper");
const parameterMetadataAccessor = new parameter_metadata_accessor_1.ParameterMetadataAccessor();
const modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor();
const parametersMetadataMapper = new parameters_metadata_mapper_1.ParametersMetadataMapper(modelPropertiesAccessor);
const swaggerTypesMapper = new swagger_types_mapper_1.SwaggerTypesMapper();
const schemaObjectFactory = new schema_object_factory_1.SchemaObjectFactory(modelPropertiesAccessor, swaggerTypesMapper);
const exploreApiParametersMetadata = (schemas, instance, prototype, method) => {
const explicitParameters = Reflect.getMetadata(constants_1.DECORATORS.API_PARAMETERS, method);
const parametersMetadata = parameterMetadataAccessor.explore(instance, prototype, method);
const noExplicitMetadata = lodash_1.isNil(explicitParameters);
if (noExplicitMetadata && lodash_1.isNil(parametersMetadata)) {
return undefined;
}
const reflectedParametersAsProperties = parametersMetadataMapper.transformModelToProperties(parametersMetadata || {});
let properties = reflectedParametersAsProperties;
if (!noExplicitMetadata) {
const mergeImplicitAndExplicit = (item) => lodash_1.assign(item, lodash_1.find(explicitParameters, ['name', item.name]));
properties = removeBodyMetadataIfExplicitExists(properties, explicitParameters);
properties = lodash_1.map(properties, mergeImplicitAndExplicit);
properties = lodash_1.unionWith(properties, explicitParameters, (arrVal, othVal) => {
return arrVal.name === othVal.name && arrVal.in === othVal.in;
});
}
const paramsWithDefinitions = schemaObjectFactory.createFromModel(properties, schemas);
const parameters = swaggerTypesMapper.mapParamTypes(paramsWithDefinitions);
return parameters ? { parameters } : undefined;
};
exports.exploreApiParametersMetadata = exploreApiParametersMetadata;
function removeBodyMetadataIfExplicitExists(properties, explicitParams) {
const isBodyReflected = lodash_1.some(properties, (p) => p.in === 'body');
const isBodyDefinedExplicitly = lodash_1.some(explicitParams, (p) => p.in === 'body');
if (isBodyReflected && isBodyDefinedExplicitly) {
return lodash_1.omitBy(properties, (p) => p.in === 'body');
}
return properties;
}
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0048 ]-- |