UNPKG

graphile-settings

Version:
61 lines (60 loc) 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isTableResource = isTableResource; exports.getSchemaName = getSchemaName; exports.getUniques = getUniques; exports.getRelations = getRelations; exports.getRelation = getRelation; exports.sameAttributes = sameAttributes; exports.getConfiguredSchemas = getConfiguredSchemas; exports.getResourceCodec = getResourceCodec; function isRecord(value) { return typeof value === 'object' && value !== null; } function isTableResource(resource) { return (!!resource.codec && !resource.codec.isAnonymous && isRecord(resource.codec.attributes) && !resource.parameters && !resource.isVirtual && !resource.isUnique); } function getSchemaName(resource) { const schemaName = resource.codec?.extensions?.pg?.schemaName; if (typeof schemaName !== 'string' || schemaName.length === 0) return null; return schemaName; } function getUniques(resource) { return Array.isArray(resource.uniques) ? resource.uniques : []; } function getRelations(resource) { return resource.relations || resource.getRelations?.() || {}; } function getRelation(resource, relationName) { if (!relationName) return null; if (typeof resource.getRelation === 'function') { return resource.getRelation(relationName) || null; } const relations = getRelations(resource); return relations[relationName] || null; } function sameAttributes(uniqueAttributes, relationAttributes) { if (!uniqueAttributes || !relationAttributes) return false; return (uniqueAttributes.length === relationAttributes.length && uniqueAttributes.every((attrName) => relationAttributes.includes(attrName))); } function getConfiguredSchemas(build) { const pgSchemas = build.options?.pgSchemas; if (!Array.isArray(pgSchemas)) return []; return pgSchemas.filter((schemaName) => typeof schemaName === 'string'); } function getResourceCodec(resource) { const codec = resource.codec; if (!codec?.attributes) return null; return codec; }