Socket
Socket
Sign inDemoInstall

@aws-amplify/graphql-relational-transformer

Package Overview
Dependencies
Maintainers
10
Versions
411
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-amplify/graphql-relational-transformer - npm Package Compare versions

Comparing version 2.2.3 to 2.3.0

4

API.md

@@ -40,3 +40,3 @@ ## API Report File for "@aws-amplify/graphql-relational-transformer"

// @public (undocumented)
export function getConnectionAttributeName(transformParameters: TransformParameters, type: string, field: string, relatedTypeField: string): string;
export const getConnectionAttributeName: (transformParameters: TransformParameters, type: string, field: string, relatedTypeField: string) => string;

@@ -47,3 +47,3 @@ // @public (undocumented)

// @public (undocumented)
export function getSortKeyConnectionAttributeName(type: string, field: string, relatedTypeField: string): string;
export const getSortKeyConnectionAttributeName: (type: string, field: string, relatedTypeField: string) => string;

@@ -50,0 +50,0 @@ // @public (undocumented)

@@ -6,2 +6,8 @@ # Change Log

# [2.3.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-relational-transformer@2.2.3...@aws-amplify/graphql-relational-transformer@2.3.0) (2023-12-06)
### Features
- combine heterogeneous data sources ([#2109](https://github.com/aws-amplify/amplify-category-api/issues/2109)) ([fd58bb5](https://github.com/aws-amplify/amplify-category-api/commit/fd58bb5af4249220d17c9751acf677955aed74ea))
## [2.2.3](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-relational-transformer@2.2.2...@aws-amplify/graphql-relational-transformer@2.2.3) (2023-11-22)

@@ -8,0 +14,0 @@

@@ -68,3 +68,3 @@ "use strict";

const modelName = config.object.name.value;
if ((0, graphql_transformer_core_1.isRDSModel)(context, modelName)) {
if ((0, graphql_transformer_core_1.isSqlModel)(context, modelName)) {
return;

@@ -85,7 +85,7 @@ }

for (const config of this.directiveList) {
const dbType = (0, graphql_transformer_core_1.getDataSourceType)(config.field.type, context);
const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
if (dbType === graphql_transformer_core_1.DDB_DB_TYPE) {
config.relatedTypeIndex = (0, utils_1.getRelatedTypeIndex)(config, context);
}
else if ((0, graphql_transformer_core_1.isRDSDBType)(dbType)) {
else if ((0, graphql_transformer_core_1.isSqlDbType)(dbType)) {
(0, utils_1.validateChildReferencesFields)(config, context);

@@ -99,3 +99,3 @@ }

for (const config of this.directiveList) {
const dbType = (0, graphql_transformer_core_1.getDataSourceType)(config.field.type, context);
const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
const generator = (0, generator_factory_1.getGenerator)(dbType);

@@ -109,4 +109,11 @@ generator.makeBelongsToGetItemConnectionWithKeyResolver(config, context);

const validate = (config, ctx) => {
var _a, _b;
const { field, object } = config;
const dbType = (0, graphql_transformer_core_1.getDataSourceType)(field.type, ctx);
let dbType;
try {
dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(field.type, ctx);
}
catch (_c) {
throw new graphql_transformer_core_1.InvalidDirectiveError(`Object type ${(_b = (_a = field.type) === null || _a === void 0 ? void 0 : _a.name.value) !== null && _b !== void 0 ? _b : field.name} must be annotated with @model.`);
}
config.relatedType = (0, utils_1.getRelatedType)(config, ctx);

@@ -117,3 +124,3 @@ if (dbType === graphql_transformer_core_1.DDB_DB_TYPE) {

}
if ((0, graphql_transformer_core_1.isRDSDBType)(dbType)) {
if ((0, graphql_transformer_core_1.isSqlDbType)(dbType)) {
(0, utils_1.ensureReferencesArray)(config);

@@ -149,3 +156,3 @@ (0, utils_1.getBelongsToReferencesNodes)(config, ctx);

const modelName = config.object.name.value;
const areFieldMappingsSupported = (0, graphql_transformer_core_1.isRDSModel)(context, modelName);
const areFieldMappingsSupported = (0, graphql_transformer_core_1.isSqlModel)(context, modelName);
if (!areFieldMappingsSupported) {

@@ -152,0 +159,0 @@ return;

@@ -66,3 +66,3 @@ "use strict";

const modelName = config.object.name.value;
if ((0, graphql_transformer_core_1.isRDSModel)(context, modelName)) {
if ((0, graphql_transformer_core_1.isSqlModel)(context, modelName)) {
(0, resolvers_1.setFieldMappingResolverReference)(context, (_b = (_a = config.relatedType) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.value, modelName, config.field.name.value, true);

@@ -83,7 +83,7 @@ return;

for (const config of this.directiveList) {
const dbType = (0, graphql_transformer_core_1.getDataSourceType)(config.field.type, context);
const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
if (dbType === graphql_transformer_core_1.DDB_DB_TYPE) {
config.relatedTypeIndex = (0, utils_1.getRelatedTypeIndex)(config, context, config.indexName);
}
else if ((0, graphql_transformer_core_1.isRDSDBType)(dbType)) {
else if ((0, graphql_transformer_core_1.isSqlDbType)(dbType)) {
(0, utils_1.validateParentReferencesFields)(config, context);

@@ -98,3 +98,3 @@ }

for (const config of this.directiveList) {
const dbType = (0, graphql_transformer_core_1.getDataSourceType)(config.field.type, context);
const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
if (dbType === graphql_transformer_core_1.DDB_DB_TYPE) {

@@ -115,3 +115,3 @@ (0, resolvers_1.updateTableForConnection)(config, context);

const { field } = config;
const dbType = (0, graphql_transformer_core_1.getDataSourceType)(field.type, ctx);
const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(field.type, ctx);
config.relatedType = (0, utils_1.getRelatedType)(config, ctx);

@@ -122,3 +122,3 @@ if (dbType === graphql_transformer_core_1.DDB_DB_TYPE) {

}
if ((0, graphql_transformer_core_1.isRDSDBType)(dbType)) {
if ((0, graphql_transformer_core_1.isSqlDbType)(dbType)) {
(0, utils_1.ensureReferencesArray)(config);

@@ -125,0 +125,0 @@ (0, utils_1.getReferencesNodes)(config, ctx);

@@ -78,3 +78,3 @@ "use strict";

const modelName = config.object.name.value;
if ((0, graphql_transformer_core_1.isRDSModel)(context, modelName)) {
if ((0, graphql_transformer_core_1.isSqlModel)(context, modelName)) {
(0, resolvers_1.setFieldMappingResolverReference)(context, (_b = (_a = config.relatedType) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.value, modelName, config.field.name.value);

@@ -95,7 +95,7 @@ return;

for (const config of this.directiveList) {
const dbType = (0, graphql_transformer_core_1.getDataSourceType)(config.field.type, context);
const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
if (dbType === graphql_transformer_core_1.DDB_DB_TYPE) {
config.relatedTypeIndex = (0, utils_1.getRelatedTypeIndex)(config, context);
}
else if ((0, graphql_transformer_core_1.isRDSDBType)(dbType)) {
else if ((0, graphql_transformer_core_1.isSqlDbType)(dbType)) {
(0, utils_1.validateParentReferencesFields)(config, context);

@@ -109,3 +109,3 @@ }

for (const config of this.directiveList) {
const dbType = (0, graphql_transformer_core_1.getDataSourceType)(config.field.type, context);
const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
const generator = (0, generator_factory_1.getGenerator)(dbType);

@@ -120,3 +120,3 @@ generator.makeHasOneGetItemConnectionWithKeyResolver(config, context);

const { field } = config;
const dbType = (0, graphql_transformer_core_1.getDataSourceType)(field.type, ctx);
const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(field.type, ctx);
config.relatedType = (0, utils_1.getRelatedType)(config, ctx);

@@ -127,3 +127,3 @@ if (dbType === graphql_transformer_core_1.DDB_DB_TYPE) {

}
if ((0, graphql_transformer_core_1.isRDSDBType)(dbType)) {
if ((0, graphql_transformer_core_1.isSqlDbType)(dbType)) {
(0, utils_1.ensureReferencesArray)(config);

@@ -130,0 +130,0 @@ (0, utils_1.getReferencesNodes)(config, ctx);

@@ -41,2 +41,3 @@ "use strict";

this.directiveList.push(args);
this.relationMap.forEach((_, relationName) => addJoinTableToDatasourceStrategies(context, relationName));
};

@@ -175,2 +176,5 @@ this.mutateSchema = (context) => {

const d2ExpectedType = (0, graphql_transformer_common_1.getBaseType)(directive2.field.type);
if ((0, graphql_transformer_core_1.isSqlModel)(ctx, d1ExpectedType) || (0, graphql_transformer_core_1.isSqlModel)(ctx, d2ExpectedType)) {
throw new graphql_transformer_core_1.InvalidDirectiveError(`@${directiveName} directive cannot be used on a SQL model.`);
}
if (d1ExpectedType !== directive2.object.name.value) {

@@ -303,3 +307,3 @@ throw new graphql_transformer_core_1.InvalidDirectiveError(`@${directiveName} relation '${name}' expects '${d1ExpectedType}' but got '${directive2.object.name.value}'.`);

}
if (renamedFields.length && !(0, graphql_transformer_core_1.isRDSModel)(context, name)) {
if (renamedFields.length && !(0, graphql_transformer_core_1.isSqlModel)(context, name)) {
(0, utils_1.registerManyToManyForeignKeyMappings)({

@@ -339,2 +343,5 @@ resourceHelper: ctx.resourceHelper,

exports.ManyToManyTransformer = ManyToManyTransformer;
const addJoinTableToDatasourceStrategies = (ctx, relationName) => {
ctx.dataSourceStrategies[relationName] = graphql_transformer_core_1.DDB_DEFAULT_DATASOURCE_STRATEGY;
};
function addDirectiveToRelationMap(map, directive) {

@@ -341,0 +348,0 @@ const { relationName } = directive;

@@ -7,4 +7,4 @@ "use strict";

const graphql_transformer_common_1 = require("graphql-transformer-common");
const resolvers_1 = require("../resolvers");
const generator_1 = require("./generator");
const resolvers_1 = require("../resolvers");
const SORT_KEY_VALUE = 'sortKeyValue';

@@ -55,3 +55,4 @@ const CONNECTION_STACK = 'ConnectionStack';

const table = (0, graphql_transformer_core_1.getTable)(ctx, relatedType);
const dataSource = ctx.api.host.getDataSource(`${relatedType.name.value}Table`);
const dataSourceName = (0, graphql_transformer_core_1.getModelDataSourceNameForTypeName)(ctx, relatedType.name.value);
const dataSource = ctx.api.host.getDataSource(dataSourceName);
const keySchema = (0, graphql_transformer_core_1.getKeySchema)(table, indexName);

@@ -114,3 +115,4 @@ const setup = [

const { keySchema } = table;
const dataSource = ctx.api.host.getDataSource(`${relatedType.name.value}Table`);
const dataSourceName = (0, graphql_transformer_core_1.getModelDataSourceNameForTypeName)(ctx, relatedType.name.value);
const dataSource = ctx.api.host.getDataSource(dataSourceName);
const partitionKeyName = keySchema[0].attributeName;

@@ -117,0 +119,0 @@ const totalExpressions = ['#partitionKey = :partitionValue'];

@@ -1,4 +0,4 @@

import { DBType } from '@aws-amplify/graphql-transformer-interfaces';
import { ModelDataSourceStrategyDbType } from '@aws-amplify/graphql-transformer-interfaces';
import { RelationalResolverGenerator } from './generator';
export declare const getGenerator: (dbType: DBType) => RelationalResolverGenerator;
export declare const getGenerator: (dbType: ModelDataSourceStrategyDbType) => RelationalResolverGenerator;
//# sourceMappingURL=generator-factory.d.ts.map

@@ -14,4 +14,8 @@ "use strict";

const { field, references, object, relatedType } = config;
const { SQLLambdaDataSourceLogicalID } = graphql_transformer_common_1.ResourceConstants.RESOURCES;
const dataSource = ctx.api.host.getDataSource(SQLLambdaDataSourceLogicalID);
const relatedStrategy = (0, graphql_transformer_core_1.getModelDataSourceStrategy)(ctx, relatedType.name.value);
if (!(0, graphql_transformer_core_1.isSqlStrategy)(relatedStrategy)) {
throw new Error('The @hasMany directive is only supported for SQL data sources.');
}
const dataSourceName = (0, graphql_transformer_core_1.getModelDataSourceNameForTypeName)(ctx, relatedType.name.value);
const dataSource = ctx.api.host.getDataSource(dataSourceName);
const mappedTableName = ctx.resourceHelper.getModelNameMapping(relatedType.name.value);

@@ -78,4 +82,8 @@ const connectionCondition = [];

const { field, references, object, relatedType } = config;
const { SQLLambdaDataSourceLogicalID } = graphql_transformer_common_1.ResourceConstants.RESOURCES;
const dataSource = ctx.api.host.getDataSource(SQLLambdaDataSourceLogicalID);
const relatedStrategy = (0, graphql_transformer_core_1.getModelDataSourceStrategy)(ctx, relatedType.name.value);
if (!(0, graphql_transformer_core_1.isSqlStrategy)(relatedStrategy)) {
throw new Error('The @hasOne directive is only supported for SQL data sources.');
}
const dataSourceName = (0, graphql_transformer_core_1.getModelDataSourceNameForTypeName)(ctx, relatedType.name.value);
const dataSource = ctx.api.host.getDataSource(dataSourceName);
const mappedTableName = ctx.resourceHelper.getModelNameMapping(relatedType.name.value);

@@ -95,4 +103,8 @@ const connectionCondition = [];

const { field, references, object, relatedType } = config;
const { SQLLambdaDataSourceLogicalID } = graphql_transformer_common_1.ResourceConstants.RESOURCES;
const dataSource = ctx.api.host.getDataSource(SQLLambdaDataSourceLogicalID);
const relatedStrategy = (0, graphql_transformer_core_1.getModelDataSourceStrategy)(ctx, relatedType.name.value);
if (!(0, graphql_transformer_core_1.isSqlStrategy)(relatedStrategy)) {
throw new Error('The @belongsTo directive is only supported for SQL data sources.');
}
const dataSourceName = (0, graphql_transformer_core_1.getModelDataSourceNameForTypeName)(ctx, relatedType.name.value);
const dataSource = ctx.api.host.getDataSource(dataSourceName);
const mappedTableName = ctx.resourceHelper.getModelNameMapping(relatedType.name.value);

@@ -99,0 +111,0 @@ const connectionCondition = [];

@@ -7,17 +7,17 @@ import { FieldMapEntry, ResolverReferenceEntry, TransformerContextProvider, TransformerResourceHelperProvider } from '@aws-amplify/graphql-transformer-interfaces';

export declare const validateChildReferencesFields: (config: BelongsToDirectiveConfiguration, ctx: TransformerContextProvider) => void;
export declare function getRelatedTypeIndex(config: HasOneDirectiveConfiguration, ctx: TransformerContextProvider, indexName?: string): FieldDefinitionNode[];
export declare function ensureFieldsArray(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration): void;
export declare function ensureReferencesArray(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration): void;
export declare function getModelDirective(objectType: ObjectTypeDefinitionNode): DirectiveNode | undefined;
export declare function validateModelDirective(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration | ManyToManyDirectiveConfiguration): void;
export declare function getRelatedType(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration, ctx: TransformerContextProvider): ObjectTypeDefinitionNode;
export declare function getFieldsNodes(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration, ctx: TransformerContextProvider): FieldDefinitionNode[];
export declare function getReferencesNodes(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration, ctx: TransformerContextProvider): FieldDefinitionNode[];
export declare function getBelongsToReferencesNodes(config: BelongsToDirectiveConfiguration, ctx: TransformerContextProvider): FieldDefinitionNode[];
export declare function validateRelatedModelDirective(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration): void;
export declare function getConnectionAttributeName(transformParameters: TransformParameters, type: string, field: string, relatedTypeField: string): string;
export declare function getManyToManyConnectionAttributeName(transformParameters: TransformParameters, field: string, relatedTypeField: string): string;
export declare function getSortKeyConnectionAttributeName(type: string, field: string, relatedTypeField: string): string;
export declare function getBackendConnectionAttributeName(transformParameters: TransformParameters, resourceHelper: TransformerResourceHelperProvider, type: string, field: string, relatedTypeField: string): string;
export declare function validateDisallowedDataStoreRelationships(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration, ctx: TransformerContextProvider): void;
export declare const getRelatedTypeIndex: (config: HasOneDirectiveConfiguration, ctx: TransformerContextProvider, indexName?: string) => FieldDefinitionNode[];
export declare const ensureFieldsArray: (config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration) => void;
export declare const ensureReferencesArray: (config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration) => void;
export declare const getModelDirective: (objectType: ObjectTypeDefinitionNode) => DirectiveNode | undefined;
export declare const validateModelDirective: (config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration | ManyToManyDirectiveConfiguration) => void;
export declare const getRelatedType: (config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration, ctx: TransformerContextProvider) => ObjectTypeDefinitionNode;
export declare const getFieldsNodes: (config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration, ctx: TransformerContextProvider) => FieldDefinitionNode[];
export declare const getReferencesNodes: (config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration, ctx: TransformerContextProvider) => FieldDefinitionNode[];
export declare const getBelongsToReferencesNodes: (config: BelongsToDirectiveConfiguration, ctx: TransformerContextProvider) => FieldDefinitionNode[];
export declare const validateRelatedModelDirective: (config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration) => void;
export declare const getConnectionAttributeName: (transformParameters: TransformParameters, type: string, field: string, relatedTypeField: string) => string;
export declare const getManyToManyConnectionAttributeName: (transformParameters: TransformParameters, field: string, relatedTypeField: string) => string;
export declare const getSortKeyConnectionAttributeName: (type: string, field: string, relatedTypeField: string) => string;
export declare const getBackendConnectionAttributeName: (transformParameters: TransformParameters, resourceHelper: TransformerResourceHelperProvider, type: string, field: string, relatedTypeField: string) => string;
export declare const validateDisallowedDataStoreRelationships: (config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration, ctx: TransformerContextProvider) => void;
type RegisterForeignKeyMappingParams = {

@@ -30,4 +30,4 @@ transformParameters: TransformParameters;

};
export declare function registerHasOneForeignKeyMappings({ transformParameters, resourceHelper, thisTypeName, thisFieldName, relatedType, }: RegisterForeignKeyMappingParams): void;
export declare function registerHasManyForeignKeyMappings({ transformParameters, resourceHelper, thisTypeName, thisFieldName, relatedType, }: RegisterForeignKeyMappingParams): void;
export declare const registerHasOneForeignKeyMappings: ({ transformParameters, resourceHelper, thisTypeName, thisFieldName, relatedType, }: RegisterForeignKeyMappingParams) => void;
export declare const registerHasManyForeignKeyMappings: ({ transformParameters, resourceHelper, thisTypeName, thisFieldName, relatedType, }: RegisterForeignKeyMappingParams) => void;
export type ManyToManyForeignKeyMappingParams = {

@@ -39,5 +39,5 @@ resourceHelper: TransformerResourceHelperProvider;

};
export declare function registerManyToManyForeignKeyMappings({ resourceHelper, typeName, referencedBy, fieldMap, }: ManyToManyForeignKeyMappingParams): void;
export declare const registerManyToManyForeignKeyMappings: ({ resourceHelper, typeName, referencedBy, fieldMap, }: ManyToManyForeignKeyMappingParams) => void;
export declare const getObjectPrimaryKey: (object: ObjectTypeDefinitionNode) => FieldDefinitionNode;
export {};
//# sourceMappingURL=utils.d.ts.map

@@ -43,3 +43,3 @@ "use strict";

exports.validateChildReferencesFields = validateChildReferencesFields;
function getRelatedTypeIndex(config, ctx, indexName) {
const getRelatedTypeIndex = (config, ctx, indexName) => {
const { directiveName, field, fieldNodes } = config;

@@ -49,12 +49,11 @@ const relatedType = ctx.output.getType(config.relatedType.name.value);

let partitionFieldName;
let partitionField;
const sortFieldNames = [];
const sortFields = [];
for (const field of relatedType.fields) {
fieldMap.set(field.name.value, field);
for (const directive of field.directives) {
const directiveName = directive.name.value;
for (const relatedTypeField of relatedType.fields) {
fieldMap.set(relatedTypeField.name.value, relatedTypeField);
for (const directive of relatedTypeField.directives) {
const relatedDirectiveName = directive.name.value;
const name = getIndexName(directive);
if ((!indexName && directiveName === 'primaryKey') || (indexName && indexName === name && directiveName === 'index')) {
partitionFieldName = field.name.value;
if ((!indexName && relatedDirectiveName === 'primaryKey') || (indexName && indexName === name && relatedDirectiveName === 'index')) {
partitionFieldName = relatedTypeField.name.value;
for (const argument of directive.arguments) {

@@ -82,3 +81,3 @@ if (argument.name.value === 'sortKeyFields') {

}
partitionField = fieldMap.get(partitionFieldName);
const partitionField = fieldMap.get(partitionFieldName);
if (!partitionField) {

@@ -112,5 +111,5 @@ throw new Error(`Expected partition field ${partitionFieldName} to be found in map.`);

return [partitionField, ...sortFields];
}
};
exports.getRelatedTypeIndex = getRelatedTypeIndex;
function ensureFieldsArray(config) {
const ensureFieldsArray = (config) => {
if (config.references) {

@@ -128,5 +127,5 @@ throw new graphql_transformer_core_1.InvalidDirectiveError(`DynamoDB models do not support 'references' on @${config.directiveName} directive.`);

}
}
};
exports.ensureFieldsArray = ensureFieldsArray;
function ensureReferencesArray(config) {
const ensureReferencesArray = (config) => {
if (config.fields) {

@@ -136,3 +135,3 @@ throw new graphql_transformer_core_1.InvalidDirectiveError(`Relational database models do not support 'fields' on @${config.directiveName} directive.`);

if (!config.references) {
throw new graphql_transformer_core_1.InvalidDirectiveError(`Reference fields must be passed to @${config.directiveName} directive for RDS models.`);
throw new graphql_transformer_core_1.InvalidDirectiveError(`Reference fields must be passed to @${config.directiveName} directive for SQL models.`);
}

@@ -145,15 +144,15 @@ else if (!Array.isArray(config.references)) {

}
}
};
exports.ensureReferencesArray = ensureReferencesArray;
function getModelDirective(objectType) {
const getModelDirective = (objectType) => {
return objectType.directives.find((directive) => directive.name.value === 'model');
}
};
exports.getModelDirective = getModelDirective;
function validateModelDirective(config) {
if (!getModelDirective(config.object)) {
const validateModelDirective = (config) => {
if (!(0, exports.getModelDirective)(config.object)) {
throw new graphql_transformer_core_1.InvalidDirectiveError(`@${config.directiveName} must be on an @model object type field.`);
}
}
};
exports.validateModelDirective = validateModelDirective;
function getRelatedType(config, ctx) {
const getRelatedType = (config, ctx) => {
const { field } = config;

@@ -166,5 +165,5 @@ const relatedTypeName = (0, graphql_transformer_common_1.getBaseType)(field.type);

return relatedType;
}
};
exports.getRelatedType = getRelatedType;
function getFieldsNodes(config, ctx) {
const getFieldsNodes = (config, ctx) => {
const { directiveName, fields, object } = config;

@@ -182,5 +181,5 @@ const enums = ctx.output.getTypeDefinitionsOfKind(graphql_1.Kind.ENUM_TYPE_DEFINITION);

});
}
};
exports.getFieldsNodes = getFieldsNodes;
function getReferencesNodes(config, ctx) {
const getReferencesNodes = (config, ctx) => {
const { directiveName, references, relatedType } = config;

@@ -198,5 +197,5 @@ const enums = ctx.output.getTypeDefinitionsOfKind(graphql_1.Kind.ENUM_TYPE_DEFINITION);

});
}
};
exports.getReferencesNodes = getReferencesNodes;
function getBelongsToReferencesNodes(config, ctx) {
const getBelongsToReferencesNodes = (config, ctx) => {
const { directiveName, references, object } = config;

@@ -214,11 +213,11 @@ const enums = ctx.output.getTypeDefinitionsOfKind(graphql_1.Kind.ENUM_TYPE_DEFINITION);

});
}
};
exports.getBelongsToReferencesNodes = getBelongsToReferencesNodes;
function validateRelatedModelDirective(config) {
if (!getModelDirective(config.relatedType)) {
const validateRelatedModelDirective = (config) => {
if (!(0, exports.getModelDirective)(config.relatedType)) {
throw new graphql_transformer_core_1.InvalidDirectiveError(`Object type ${config.relatedType.name.value} must be annotated with @model.`);
}
}
};
exports.validateRelatedModelDirective = validateRelatedModelDirective;
function getIndexName(directive) {
const getIndexName = (directive) => {
for (const argument of directive.arguments) {

@@ -229,22 +228,23 @@ if (argument.name.value === 'name') {

}
}
function getConnectionAttributeName(transformParameters, type, field, relatedTypeField) {
return undefined;
};
const getConnectionAttributeName = (transformParameters, type, field, relatedTypeField) => {
const nameSuffix = transformParameters.respectPrimaryKeyAttributesOnConnectionField ? relatedTypeField : 'id';
return (0, graphql_transformer_common_1.toCamelCase)([type, field, nameSuffix]);
}
};
exports.getConnectionAttributeName = getConnectionAttributeName;
function getManyToManyConnectionAttributeName(transformParameters, field, relatedTypeField) {
const getManyToManyConnectionAttributeName = (transformParameters, field, relatedTypeField) => {
const nameSuffix = transformParameters.respectPrimaryKeyAttributesOnConnectionField ? (0, graphql_transformer_common_1.toPascalCase)([relatedTypeField]) : 'ID';
return `${(0, graphql_transformer_common_1.toCamelCase)([field])}${nameSuffix}`;
}
};
exports.getManyToManyConnectionAttributeName = getManyToManyConnectionAttributeName;
function getSortKeyConnectionAttributeName(type, field, relatedTypeField) {
const getSortKeyConnectionAttributeName = (type, field, relatedTypeField) => {
return (0, graphql_transformer_common_1.toCamelCase)([type, field, relatedTypeField]);
}
};
exports.getSortKeyConnectionAttributeName = getSortKeyConnectionAttributeName;
function getBackendConnectionAttributeName(transformParameters, resourceHelper, type, field, relatedTypeField) {
return getConnectionAttributeName(transformParameters, resourceHelper.getModelNameMapping(type), field, relatedTypeField);
}
const getBackendConnectionAttributeName = (transformParameters, resourceHelper, type, field, relatedTypeField) => {
return (0, exports.getConnectionAttributeName)(transformParameters, resourceHelper.getModelNameMapping(type), field, relatedTypeField);
};
exports.getBackendConnectionAttributeName = getBackendConnectionAttributeName;
function validateDisallowedDataStoreRelationships(config, ctx) {
const validateDisallowedDataStoreRelationships = (config, ctx) => {
if (!ctx.isProjectUsingDataStore()) {

@@ -266,8 +266,8 @@ return;

}
}
};
exports.validateDisallowedDataStoreRelationships = validateDisallowedDataStoreRelationships;
function registerHasOneForeignKeyMappings({ transformParameters, resourceHelper, thisTypeName, thisFieldName, relatedType, }) {
const registerHasOneForeignKeyMappings = ({ transformParameters, resourceHelper, thisTypeName, thisFieldName, relatedType, }) => {
if (resourceHelper.isModelRenamed(thisTypeName)) {
const currAttrName = getConnectionAttributeName(transformParameters, thisTypeName, thisFieldName, (0, exports.getObjectPrimaryKey)(relatedType).name.value);
const origAttrName = getBackendConnectionAttributeName(transformParameters, resourceHelper, thisTypeName, thisFieldName, (0, exports.getObjectPrimaryKey)(relatedType).name.value);
const currAttrName = (0, exports.getConnectionAttributeName)(transformParameters, thisTypeName, thisFieldName, (0, exports.getObjectPrimaryKey)(relatedType).name.value);
const origAttrName = (0, exports.getBackendConnectionAttributeName)(transformParameters, resourceHelper, thisTypeName, thisFieldName, (0, exports.getObjectPrimaryKey)(relatedType).name.value);
const modelFieldMap = resourceHelper.getModelFieldMap(thisTypeName);

@@ -285,10 +285,10 @@ modelFieldMap.addMappedField({ currentFieldName: currAttrName, originalFieldName: origAttrName });

.addResolverReference({ typeName: thisTypeName, fieldName: thisFieldName, isList: false });
}
};
exports.registerHasOneForeignKeyMappings = registerHasOneForeignKeyMappings;
function registerHasManyForeignKeyMappings({ transformParameters, resourceHelper, thisTypeName, thisFieldName, relatedType, }) {
const registerHasManyForeignKeyMappings = ({ transformParameters, resourceHelper, thisTypeName, thisFieldName, relatedType, }) => {
if (!resourceHelper.isModelRenamed(thisTypeName)) {
return;
}
const currAttrName = getConnectionAttributeName(transformParameters, thisTypeName, thisFieldName, (0, exports.getObjectPrimaryKey)(relatedType).name.value);
const origAttrName = getBackendConnectionAttributeName(transformParameters, resourceHelper, thisTypeName, thisFieldName, (0, exports.getObjectPrimaryKey)(relatedType).name.value);
const currAttrName = (0, exports.getConnectionAttributeName)(transformParameters, thisTypeName, thisFieldName, (0, exports.getObjectPrimaryKey)(relatedType).name.value);
const origAttrName = (0, exports.getBackendConnectionAttributeName)(transformParameters, resourceHelper, thisTypeName, thisFieldName, (0, exports.getObjectPrimaryKey)(relatedType).name.value);
const modelFieldMap = resourceHelper.getModelFieldMap(relatedType.name.value);

@@ -304,5 +304,5 @@ modelFieldMap

});
}
};
exports.registerHasManyForeignKeyMappings = registerHasManyForeignKeyMappings;
function registerManyToManyForeignKeyMappings({ resourceHelper, typeName, referencedBy, fieldMap, }) {
const registerManyToManyForeignKeyMappings = ({ resourceHelper, typeName, referencedBy, fieldMap, }) => {
const modelFieldMap = resourceHelper.getModelFieldMap(typeName);

@@ -317,3 +317,3 @@ fieldMap.forEach(modelFieldMap.addMappedField);

});
}
};
exports.registerManyToManyForeignKeyMappings = registerManyToManyForeignKeyMappings;

@@ -320,0 +320,0 @@ const getObjectPrimaryKey = (object) => {

{
"name": "@aws-amplify/graphql-relational-transformer",
"version": "2.2.3",
"version": "2.3.0",
"description": "Amplify GraphQL relational modeling transformers",

@@ -31,13 +31,13 @@ "repository": {

"dependencies": {
"@aws-amplify/graphql-index-transformer": "2.2.3",
"@aws-amplify/graphql-model-transformer": "2.3.3",
"@aws-amplify/graphql-transformer-core": "2.3.3",
"@aws-amplify/graphql-transformer-interfaces": "3.3.1",
"@aws-amplify/graphql-index-transformer": "2.3.0",
"@aws-amplify/graphql-model-transformer": "2.4.0",
"@aws-amplify/graphql-transformer-core": "2.4.0",
"@aws-amplify/graphql-transformer-interfaces": "3.3.2",
"graphql": "^15.5.0",
"graphql-mapping-template": "4.20.12",
"graphql-transformer-common": "4.26.2",
"graphql-mapping-template": "4.20.13",
"graphql-transformer-common": "4.27.0",
"immer": "^9.0.12"
},
"devDependencies": {
"@aws-amplify/graphql-transformer-test-utils": "0.3.3"
"@aws-amplify/graphql-transformer-test-utils": "0.4.0"
},

@@ -68,5 +68,9 @@ "peerDependencies": {

}
}
},
"coverageReporters": [
"clover",
"text"
]
},
"gitHead": "5256b5955ee204dd56f8074a43406852f8206c54"
"gitHead": "6e450d037cf84098b51ce787a99d6023cbc0e39d"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc