strapi/packages/core/utils/lib/relations.js

32 lines
993 B
JavaScript
Raw Normal View History

2020-12-01 16:38:47 +01:00
'use strict';
2022-10-03 18:54:13 +02:00
const { isRelationalAttribute } = require('./content-types');
2021-08-06 10:51:34 +02:00
const MANY_RELATIONS = ['oneToMany', 'manyToMany'];
2020-12-18 11:24:52 +01:00
2022-08-08 23:33:39 +02:00
const getRelationalFields = (contentType) => {
return Object.keys(contentType.attributes).filter((attributeName) => {
2021-07-08 18:15:32 +02:00
return contentType.attributes[attributeName].type === 'relation';
});
2020-12-18 11:24:52 +01:00
};
2020-12-01 16:38:47 +01:00
2022-10-03 18:54:13 +02:00
const isOneToAny = (attribute) =>
isRelationalAttribute(attribute) && ['oneToOne', 'oneToMany'].includes(attribute.relation);
const isManyToAny = (attribute) =>
isRelationalAttribute(attribute) && ['manyToMany', 'manyToOne'].includes(attribute.relation);
const isAnyToOne = (attribute) =>
isRelationalAttribute(attribute) && ['oneToOne', 'manyToOne'].includes(attribute.relation);
const isAnyToMany = (attribute) =>
isRelationalAttribute(attribute) && ['oneToMany', 'manyToMany'].includes(attribute.relation);
2020-12-01 16:38:47 +01:00
module.exports = {
2020-12-18 11:24:52 +01:00
getRelationalFields,
2022-10-03 18:54:13 +02:00
isOneToAny,
isManyToAny,
isAnyToOne,
isAnyToMany,
2020-12-16 15:28:11 +01:00
constants: {
MANY_RELATIONS,
},
2020-12-01 16:38:47 +01:00
};