From 8503f3f61ef43fe687c4a3490edf4fbc159ac98f Mon Sep 17 00:00:00 2001 From: Tomasz Pluskiewicz Date: Thu, 13 Feb 2025 12:46:33 +0100 Subject: [PATCH] fix: duplicate prefix fails on Stardog --- apis/shared-dimensions/lib/store/index.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/apis/shared-dimensions/lib/store/index.ts b/apis/shared-dimensions/lib/store/index.ts index 401d07f57..23e93993c 100644 --- a/apis/shared-dimensions/lib/store/index.ts +++ b/apis/shared-dimensions/lib/store/index.ts @@ -6,7 +6,7 @@ import { rdf, schema, sh } from '@tpluscode/rdf-ns-builders/strict' import onetime from 'onetime' import { isGraphPointer } from 'is-graph-pointer' import $rdf from 'rdf-ext' -import { sparql } from '@tpluscode/rdf-string' +import { sparql, SparqlTemplateResult } from '@tpluscode/rdf-string' import { SharedDimensionsStore } from '../store' import shapeToQuery from '../shapeToQuery' import { loadShapes } from './shapes' @@ -43,16 +43,19 @@ export default class implements SharedDimensionsStore { } async save(resource: GraphPointer): Promise { - let updateQuery = INSERT.DATA` + let updateQuery: SparqlTemplateResult + const insertQuery = INSERT.DATA` GRAPH ${this.graph} { ${resource.dataset} } - `._getTemplateResult() + ` if (await this.exists(resource.term)) { const shape = await this.getShape(resource.term) const deleteQuery = await this.deleteQuery(shape, resource.term) - updateQuery = sparql`${deleteQuery};\n${updateQuery}` + updateQuery = sparql`${deleteQuery};\n${insertQuery}` + } else { + updateQuery = insertQuery._getTemplateResult() } await this.client.query.update(updateQuery.toString())