Fix types on N3Store.forSubjects (etc). Now they callback with the same type N3Store.getSubjects/etc returned. (#41670)

This commit is contained in:
Drew Perttula
2020-01-17 11:57:12 -05:00
committed by Eli Barzilay
parent 40cdf3c059
commit 5b236be238
2 changed files with 20 additions and 4 deletions
+4 -4
View File
@@ -215,13 +215,13 @@ export interface N3Store<Q_RDF extends RDF.BaseQuad = RDF.Quad, Q_N3 extends Bas
every(callback: QuadPredicate<Q_N3>, subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): boolean;
some(callback: QuadPredicate<Q_N3>, subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): boolean;
getSubjects(predicate: OTerm, object: OTerm, graph: OTerm): Array<Q_N3['subject']>;
forSubjects(callback: QuadCallback<Q_N3>, predicate: OTerm, object: OTerm, graph: OTerm): void;
forSubjects(callback: (result: Q_N3['subject']) => void, predicate: OTerm, object: OTerm, graph: OTerm): void;
getPredicates(subject: OTerm, object: OTerm, graph: OTerm): Array<Q_N3['predicate']>;
forPredicates(callback: QuadCallback<Q_N3>, subject: OTerm, object: OTerm, graph: OTerm): void;
forPredicates(callback: (result: Q_N3['predicate']) => void, subject: OTerm, object: OTerm, graph: OTerm): void;
getObjects(subject: OTerm, predicate: OTerm, graph: OTerm): Array<Q_N3['object']>;
forObjects(callback: QuadCallback<Q_N3>, subject: OTerm, predicate: OTerm, graph: OTerm): void;
forObjects(callback: (result: Q_N3['object']) => void, subject: OTerm, predicate: OTerm, graph: OTerm): void;
getGraphs(subject: OTerm, predicate: OTerm, object: OTerm): Array<Q_N3['graph']>;
forGraphs(callback: QuadCallback<Q_N3>, subject: OTerm, predicate: OTerm, object: OTerm): void;
forGraphs(callback: (result: Q_N3['graph']) => void, subject: OTerm, predicate: OTerm, object: OTerm): void;
createBlankNode(suggestedName?: string): BlankNode;
}
export interface StoreConstructor {
+16
View File
@@ -217,6 +217,22 @@ function test_doc_storing() {
storeGeneralized.addQuad(N3.DataFactory.namedNode('http://ex.org/Pluto'), N3.DataFactory.blankNode(), N3.DataFactory.namedNode('http://ex.org/Dog'));
}
function test_store_queries() {
const store: N3.N3Store = new N3.Store();
const subjs: N3.Quad_Subject[] = store.getSubjects(null, null, null);
store.forSubjects((subj: N3.Quad_Subject) => {}, null, null, null);
const preds: N3.Quad_Predicate[] = store.getPredicates(null, null, null);
store.forPredicates((subj: N3.Quad_Predicate) => {}, null, null, null);
const objs: N3.Quad_Object[] = store.getObjects(null, null, null);
store.forObjects((subj: N3.Quad_Object) => {}, null, null, null);
const graphs: N3.Quad_Graph[] = store.getGraphs(null, null, null);
store.forGraphs((subj: N3.Quad_Graph) => {}, null, null, null);
}
function test_doc_utility() {
const N3Util = N3.Util;
N3Util.isNamedNode(N3.DataFactory.namedNode('http://example.org/cartoons#Mickey')); // true