shyft
Version:
Model driven GraphQL API framework
208 lines (207 loc) • 12.3 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.isProtocolGraphQLConfiguration = exports.ProtocolGraphQLConfiguration = void 0;
var util_1 = require("./util");
var protocolGraphqlConstants_1 = require("./protocolGraphqlConstants");
var ProtocolConfiguration_1 = require("../engine/protocol/ProtocolConfiguration");
var ProtocolGraphQLConfiguration = /** @class */ (function (_super) {
__extends(ProtocolGraphQLConfiguration, _super);
function ProtocolGraphQLConfiguration() {
var _this = _super.call(this) || this;
_this.enableFeatures([
'query',
'action',
'mutation',
'mutationNested',
'mutationById',
'mutationByUniqueness',
'subscription',
'subscriptionNested',
'subscriptionById',
], true);
return _this;
}
ProtocolGraphQLConfiguration.prototype.getMaxPageSize = function () {
return Number(process.env.MAX_PAGE_SIZE) || protocolGraphqlConstants_1.MAX_PAGE_SIZE;
};
/* name generators */
ProtocolGraphQLConfiguration.prototype.generateEntityTypeName = function (entity) {
return util_1.generateTypeName(entity.name);
};
ProtocolGraphQLConfiguration.prototype.generateEntityTypeNamePlural = function (entity) {
return util_1.generateTypeNamePlural(entity.name);
};
ProtocolGraphQLConfiguration.prototype.generateEntityTypeNamePascalCase = function (entity) {
return util_1.generateTypeNamePascalCase(entity.name);
};
ProtocolGraphQLConfiguration.prototype.generateEntityTypeNamePluralPascalCase = function (entity) {
return util_1.generateTypeNamePluralPascalCase(entity.name);
};
ProtocolGraphQLConfiguration.prototype.generateReverseConnectionFieldName = function (sourceEntity, sourceAttributeName) {
var typeNamePlural = this.generateEntityTypeNamePlural(sourceEntity);
return util_1.generateTypeName(typeNamePlural + "-by-" + sourceAttributeName);
};
ProtocolGraphQLConfiguration.prototype.generateReferenceFieldName = function (referenceEntity, attribute) {
var fieldName = this.generateFieldName(attribute);
return util_1.generateTypeName(referenceEntity.name + "-by-" + fieldName);
};
ProtocolGraphQLConfiguration.prototype.generateReferenceFieldListName = function (referenceEntity, attribute) {
var fieldName = this.generateFieldName(attribute);
var referenceEntityNamePlural = this.generateEntityTypeNamePlural(referenceEntity);
return util_1.generateTypeName(referenceEntityNamePlural + "-by-" + fieldName);
};
ProtocolGraphQLConfiguration.prototype.generateFieldName = function (attribute) {
return util_1.generateTypeName(attribute.name);
};
ProtocolGraphQLConfiguration.prototype.generateI18nJsonFieldName = function (attribute) {
var fieldName = this.generateFieldName(attribute);
return fieldName + "_i18nJson";
};
ProtocolGraphQLConfiguration.prototype.generateI18nFieldName = function (attribute) {
var fieldName = this.generateFieldName(attribute);
return fieldName + "_i18n";
};
ProtocolGraphQLConfiguration.prototype.generateI18nFieldTypeName = function (entity, attribute) {
var typeName = this.generateEntityTypeName(entity);
var fieldName = this.generateFieldName(attribute);
return util_1.generateTypeNamePascalCase(typeName + "-" + fieldName + "-i18n");
};
ProtocolGraphQLConfiguration.prototype.generateListQueryTypeName = function (entity) {
var typeNamePlural = this.generateEntityTypeNamePlural(entity);
return util_1.generateTypeName("all-" + typeNamePlural);
};
ProtocolGraphQLConfiguration.prototype.generateInstanceQueryTypeName = function (entity) {
return this.generateEntityTypeName(entity);
};
ProtocolGraphQLConfiguration.prototype.generateInstanceByUniqueQueryTypeName = function (entity, attribute) {
var typeName = this.generateEntityTypeName(entity);
var fieldName = this.generateFieldName(attribute);
return util_1.generateTypeName(typeName + "-by-" + fieldName);
};
ProtocolGraphQLConfiguration.prototype.generateUniquenessAttributesName = function (_entity, attributes) {
return util_1.generateTypeName(attributes.join('-and-'));
};
ProtocolGraphQLConfiguration.prototype.generateUniquenessAttributesFieldName = function (_entity, attribute, uniquenessAttributesName) {
var fieldName = this.generateFieldName(attribute);
return util_1.generateTypeName(fieldName + "-by-unique-" + uniquenessAttributesName);
};
ProtocolGraphQLConfiguration.prototype.generateInstanceUniquenessInputTypeName = function (entity, uniquenessAttributesName) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(typeName + "-instance-uniqueness-on-" + uniquenessAttributesName + "-input");
};
ProtocolGraphQLConfiguration.prototype.generateActionTypeName = function (action) {
return util_1.generateTypeName(action.name);
};
ProtocolGraphQLConfiguration.prototype.generateDataInputTypeName = function (baseName) {
return util_1.generateTypeNamePascalCase(baseName + "-data-input");
};
ProtocolGraphQLConfiguration.prototype.generateNestedDataInputTypeName = function (baseName, nestedParamName, level) {
var levelStr = level > 1 ? "L" + level : '';
return util_1.generateTypeNamePascalCase(baseName + "-" + nestedParamName + "-" + levelStr + "-data-input");
};
ProtocolGraphQLConfiguration.prototype.generateInputTypeName = function (baseName) {
return util_1.generateTypeNamePascalCase(baseName + "-input");
};
ProtocolGraphQLConfiguration.prototype.generateDataOutPutTypeName = function (baseName) {
return util_1.generateTypeNamePascalCase(baseName + "-data-output");
};
ProtocolGraphQLConfiguration.prototype.generateNestedDataOutPutTypeName = function (baseName, nestedParamName, level) {
var levelStr = level > 1 ? "L" + level : '';
return util_1.generateTypeNamePascalCase(baseName + "-" + nestedParamName + "-" + levelStr + "-data-output");
};
ProtocolGraphQLConfiguration.prototype.generateOutPutTypeName = function (baseName) {
return util_1.generateTypeNamePascalCase(baseName + "-output");
};
ProtocolGraphQLConfiguration.prototype.generateSortKeyName = function (attribute, ascending) {
var direction = ascending ? 'ASC' : 'DESC';
return util_1.generateTypeNameUpperCase(attribute.name) + "_" + direction;
};
ProtocolGraphQLConfiguration.prototype.generateSortInputTypeName = function (entity) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(typeName + "-order-by");
};
ProtocolGraphQLConfiguration.prototype.generateFilterInputTypeName = function (entity) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(typeName + "-filter");
};
ProtocolGraphQLConfiguration.prototype.generateFilterPreFilterInputTypeName = function (entity) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(typeName + "-pre-filter");
};
ProtocolGraphQLConfiguration.prototype.generateFilterPreFilterParamsInputTypeName = function (entity, preFilter) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(typeName + "-pre-filter-" + preFilter + "-params");
};
ProtocolGraphQLConfiguration.prototype.generateConnectionEdgeTypeName = function (entity) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(typeName + "-edge");
};
ProtocolGraphQLConfiguration.prototype.generateConnectionTypeName = function (entity) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(typeName + "-connection");
};
ProtocolGraphQLConfiguration.prototype.generateOperationI18nAttributeInputTypeName = function (entity, operation, attribute) {
var typeName = this.generateEntityTypeName(entity);
var fieldName = this.generateFieldName(attribute);
return util_1.generateTypeNamePascalCase(operation.name + "-" + typeName + "-" + fieldName + "-i18n-input");
};
ProtocolGraphQLConfiguration.prototype.generateOperationInstanceInputTypeName = function (entity, operation) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(operation.name + "-" + typeName + "-instance-input");
};
ProtocolGraphQLConfiguration.prototype.generateOperationInputTypeName = function (entity, operation) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(operation.name + "-" + typeName + "-input");
};
ProtocolGraphQLConfiguration.prototype.generateOperationByPrimaryAttributeInputTypeName = function (entity, operation, attribute) {
var typeName = this.generateEntityTypeName(entity);
var fieldName = this.generateFieldName(attribute);
return util_1.generateTypeNamePascalCase(operation.name + "-" + typeName + "-by-" + fieldName + "-input");
};
ProtocolGraphQLConfiguration.prototype.generateOperationInstanceNestedInputTypeName = function (entity, operation) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(operation.name + "-" + typeName + "-instance-nested-input");
};
ProtocolGraphQLConfiguration.prototype.generateOperationNestedInputTypeName = function (entity, operation) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(operation.name + "-" + typeName + "-nested-input");
};
ProtocolGraphQLConfiguration.prototype.generateOperationOutputTypeName = function (entity, operation) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeNamePascalCase(operation.name + "-" + typeName + "-output");
};
ProtocolGraphQLConfiguration.prototype.generateOperationTypeName = function (entity, operation) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeName(operation.name + "-" + typeName);
};
ProtocolGraphQLConfiguration.prototype.generateOperationNestedTypeName = function (entity, operation) {
var typeName = this.generateEntityTypeName(entity);
return util_1.generateTypeName(operation.name + "-" + typeName + "-nested");
};
ProtocolGraphQLConfiguration.prototype.generateOperationByPrimaryAttributeTypeName = function (entity, operation, attribute) {
var typeName = this.generateEntityTypeName(entity);
var fieldName = this.generateFieldName(attribute);
return util_1.generateTypeName(operation.name + "-" + typeName + "-by-" + fieldName);
};
return ProtocolGraphQLConfiguration;
}(ProtocolConfiguration_1.ProtocolConfiguration));
exports.ProtocolGraphQLConfiguration = ProtocolGraphQLConfiguration;
var isProtocolGraphQLConfiguration = function (obj) {
return obj instanceof ProtocolGraphQLConfiguration;
};
exports.isProtocolGraphQLConfiguration = isProtocolGraphQLConfiguration;