UNPKG

@essential-projects/metadata

Version:

the core metadata service for using the metadata from inside the domain

33 lines (25 loc) 1.45 kB
import {IPromotionRoles, IRequiredClaim, ISchemaAttribute, ISchemaClass} from '@essential-projects/core_contracts'; import {INamespaceDecorators, IPromoteDecorator, IRequiresClaimDecorator, ISchemaAttributeDecorator, ISchemaClassDecorator} from '@essential-projects/metadata_contracts'; import {promote, requiresClaim, schemaAttribute, schemaClass} from './index'; export function createDecoratorsForNamespace(namespace: string): INamespaceDecorators { const namespaceSchemaAttribute: (schema: ISchemaAttribute) => ISchemaAttributeDecorator = (schema: ISchemaAttribute): ISchemaAttributeDecorator => { return schemaAttribute(schema, namespace); }; const namespaceSchemaClass: (schema: ISchemaClass) => ISchemaClassDecorator = (schema: ISchemaClass): ISchemaClassDecorator => { return schemaClass(schema, namespace); }; const namespaceRequiresClaim: (claim: IRequiredClaim) => IRequiresClaimDecorator = (claim: IRequiredClaim): IRequiresClaimDecorator => { return requiresClaim(claim, namespace); }; const namespacePromote: (roles: IPromotionRoles) => IPromoteDecorator = (roles: IPromotionRoles): IPromoteDecorator => { return promote(roles, namespace); }; const namespaceDecorators: INamespaceDecorators = { schemaAttribute: namespaceSchemaAttribute, schemaClass: namespaceSchemaClass, requiresClaim: namespaceRequiresClaim, promote: namespacePromote, }; return namespaceDecorators; }