UNPKG

@tpluscode/sparql-builder

Version:

Simple JS library to build SPARQL queries

39 lines (38 loc) 1.14 kB
import { sparql } from '@tpluscode/rdf-string'; import { update } from './execute.js'; import DATA from './partials/DATA.js'; import WHERE from './partials/WHERE.js'; import INSERT from './partials/INSERT.js'; import { concat } from './TemplateResult.js'; import Builder from './index.js'; export const DELETE = (strings, ...values) => ({ ...Builder('UPDATE'), ...update, ...WHERE({ required: true, }), ...INSERT(), deletePatterns: sparql(strings, ...values), DELETE(strings, ...values) { return { ...this, deletePatterns: concat(this.deletePatterns, strings, values), }; }, _getTemplateResult() { if (!this.insertPatterns) { return sparql `DELETE { ${this.deletePatterns} } ${this.whereClause()}`; } return sparql `DELETE { ${this.deletePatterns} } ${this.insertClause()} ${this.whereClause()}`; }, }); DELETE.DATA = (strings, ...values) => ({ ...Builder('UPDATE'), ...update, ...DATA(strings, values), _getTemplateResult() { return sparql `DELETE DATA { ${this.quadData} }`; }, });