UNPKG

alcaeus-model

Version:

rdfine models for Alcaeus, Hydra client

31 lines (30 loc) 1.54 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import { namespace } from '@tpluscode/rdfine'; import { hydra } from '@tpluscode/rdf-ns-builders'; export function PartialCollectionViewMixin(Base) { let PartialCollectionViewClass = class PartialCollectionViewClass extends Base { get parent() { const collection = this.pointer.in(hydra.view); return collection.toArray() .reduce((namedNodes, node) => { if (node.term.termType === 'BlankNode' || node.term.termType === 'NamedNode') { namedNodes.push(node); } return namedNodes; }, []) .map(collectionNode => { return this._create(collectionNode); })[0] || null; } }; PartialCollectionViewClass = __decorate([ namespace(hydra) ], PartialCollectionViewClass); return PartialCollectionViewClass; } PartialCollectionViewMixin.appliesTo = hydra.PartialCollectionView;