@tpluscode/sparql-builder
Version:
Simple JS library to build SPARQL queries
39 lines (38 loc) • 1.14 kB
JavaScript
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}
}`;
},
});