From fc8bcf4fe18d9eb2a2bf1043f89621be14cbcb4e Mon Sep 17 00:00:00 2001 From: Christoph Reiter <reiter.christoph@gmail.com> Date: Wed, 15 Jan 2020 14:41:07 +0100 Subject: [PATCH] Use the embedded json-ld context for expanding --- packages/common/jsonld.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/common/jsonld.js b/packages/common/jsonld.js index c6b7b2a4..0d34d188 100644 --- a/packages/common/jsonld.js +++ b/packages/common/jsonld.js @@ -216,19 +216,19 @@ export default class JSONLD { * Expands a member of a list to a object with schema.org properties * * @param member + * @param [context] */ - expandMember(member) { - const type = member["@type"]; + expandMember(member, context) { + if (context === undefined) { + context = member["@context"]; + } - const entity = this.getEntityForIdentifier(type); let result = {"@id": member["@id"]}; - - entity["hydra:supportedProperty"].forEach(function (property) { - const id = property["hydra:property"]["@id"]; - const title = property["hydra:title"]; - - result[id] = member[title]; - }); + for (const key of Object.keys(context)) { + const value = context[key]; + if (member[key] !== undefined) + result[value] = member[key]; + } return result; } @@ -239,7 +239,7 @@ export default class JSONLD { * @param member * @param localContext */ - static compactMember(member, localContext) { + compactMember(member, localContext) { let result = {}; for (const property in localContext) { @@ -267,11 +267,12 @@ export default class JSONLD { return []; } + const otherContext = data['@context']; let results = []; let that = this; members.forEach(function (member) { - results.push(JSONLD.compactMember(that.expandMember(member), localContext)); + results.push(that.compactMember(that.expandMember(member, otherContext), localContext)); }); return results; -- GitLab