diff --git a/types/clownface/clownface-tests.ts b/types/clownface/clownface-tests.ts index 82882d50ae..e74f780833 100644 --- a/types/clownface/clownface-tests.ts +++ b/types/clownface/clownface-tests.ts @@ -144,17 +144,32 @@ if (cf.value) { // .values const values: string[] = cf.values; -const safeCf: clownface.SafeClownface = {}; +const safeCf: clownface.SafeClownface = {}; -const singleBlankAuto: clownface.SingleContextClownface = safeCf.blankNode(); -const SingleBlank: clownface.SingleContextClownface = safeCf.blankNode('blank'); -const singleNamed: clownface.SingleContextClownface = safeCf.namedNode('http://example.com/a'); -const singleLiteral: clownface.SingleContextClownface = safeCf.literal('a'); +let singleBlank: clownface.SingleContextClownface = safeCf.blankNode(); +singleBlank = clownface({ dataset }).blankNode(); +singleBlank = safeCf.blankNode('blank'); +singleBlank = clownface({ dataset }).node(null); -const fromSingleArrayBLank: clownface.SingleContextClownface = safeCf.blankNode([ 'b1' ]); -const fromSingleArrayNamed: clownface.SingleContextClownface = safeCf.namedNode([ 'http://example.com/a' ]); -const fromSingleArrayLiteral: clownface.SingleContextClownface = safeCf.literal([ 'a' ]); +let singleNamed: clownface.SingleContextClownface = clownface({ dataset }).namedNode('urn:foo:bar'); +singleNamed = safeCf.namedNode('http://example.com/a'); +singleNamed = clownface({ dataset }).node(node); -const multipleBlanks: clownface.SafeClownface = safeCf.blankNode([ 'b1', 'b2' ]); -const multipleNamed: clownface.SafeClownface = safeCf.namedNode([ 'http://example.com/a', 'http://example.com/b' ]); -const multipleLiterals: clownface.SafeClownface = safeCf.literal([ 'a', 'b' ]); +let singleLiteral: clownface.SingleContextClownface = clownface({ dataset }).literal('foo'); +singleLiteral = safeCf.literal('a'); +singleLiteral = clownface({ dataset }).node('b'); + +const fromSingleArrayBLank: clownface.SingleContextClownface = safeCf.blankNode([ 'b1' ]); +const fromSingleArrayNamed: clownface.SingleContextClownface = safeCf.namedNode([ 'http://example.com/a' ]); +const fromSingleArrayLiteral: clownface.SingleContextClownface = safeCf.literal([ 'a' ]); + +let multipleBlanks: clownface.SafeClownface = safeCf.blankNode([ 'b1', 'b2' ]); +multipleBlanks = clownface({ dataset }).node([ null, null ]); + +let multipleNamed: clownface.SafeClownface = safeCf.namedNode([ 'http://example.com/a', 'http://example.com/b' ]); +multipleNamed = clownface({ dataset }).node([ node, node ]); + +let multipleLiterals: clownface.SafeClownface = safeCf.literal([ 'a', 'b' ]); +multipleLiterals = clownface({ dataset }).node([ 'a', 10, false ]); + +const multipleMixedTerms: clownface.SafeClownface = clownface({ dataset }).node([ 'a', node, null ]); diff --git a/types/clownface/index.d.ts b/types/clownface/index.d.ts index f03fc076ff..c57614c978 100644 --- a/types/clownface/index.d.ts +++ b/types/clownface/index.d.ts @@ -48,12 +48,27 @@ declare namespace clownface { forEach(cb: (quad: Clownface) => void): void; map(cb: (quad: Clownface, index: number) => X): X[]; - // tslint:disable:no-unnecessary-generics - node(values: SingleOrArray, options?: NodeOptions): SafeClownface; - blankNode(values?: SingleOrArray): SafeClownface; - literal(values: SingleOrArray, languageOrDatatype?: string | NamedNode): SafeClownface; - namedNode(values: SingleOrArray): SafeClownface; + node(value: SingleOrOneElementArray, options?: NodeOptions): SingleContextClownface; + node(values: Array, options?: NodeOptions): SafeClownface; + node(value: SingleOrOneElementArray, options?: NodeOptions): SingleContextClownface; + node(values: X[], options?: NodeOptions): SafeClownface; + + node(value: null, options?: NodeOptions): SingleContextClownface; + node(values: null[], options?: NodeOptions): SafeClownface; + + node(values: SingleOrArray, options?: NodeOptions): SafeClownface; + + blankNode(value?: SingleOrOneElementArray): SingleContextClownface; + blankNode(values: string[]): SafeClownface; + + literal(value: SingleOrOneElementArray, languageOrDatatype?: string | NamedNode): SingleContextClownface; + literal(values: Array, languageOrDatatype?: string | NamedNode): SafeClownface; + + namedNode(value: SingleOrOneElementArray): SingleContextClownface; + namedNode(values: Array): SafeClownface; + + // tslint:disable:no-unnecessary-generics in(predicates: SingleOrArrayOfTerms): SafeClownface; out(predicates: SingleOrArrayOfTerms): SafeClownface; @@ -74,20 +89,6 @@ declare namespace clownface { } interface SafeClownface extends Clownface { - // tslint:disable:no-unnecessary-generics - node(value: SingleOrOneElementArray, options?: NodeOptions): SingleContextClownface; - node(values: Array, options?: NodeOptions): SafeClownface; - // tslint:enable:no-unnecessary-generics - - blankNode(value?: SingleOrOneElementArray): SingleContextClownface; - blankNode(values: string[]): SafeClownface; - - literal(value: SingleOrOneElementArray, languageOrDatatype?: string | NamedNode): SingleContextClownface; - literal(values: Array, languageOrDatatype?: string | NamedNode): SafeClownface; - - namedNode(value: SingleOrOneElementArray): SingleContextClownface; - namedNode(values: Array): SafeClownface; - filter(cb: (quad: SingleContextClownface) => boolean): SafeClownface; forEach(cb: (quad: SingleContextClownface) => void): void; map(cb: (quad: SingleContextClownface, index: number) => X): X[]; diff --git a/types/clownface/lib/Clownface.d.ts b/types/clownface/lib/Clownface.d.ts index f2e10b7c52..1b2236b372 100644 --- a/types/clownface/lib/Clownface.d.ts +++ b/types/clownface/lib/Clownface.d.ts @@ -1,4 +1,4 @@ -import { BlankNode, DatasetCore, Literal, NamedNode, Quad_Graph, Term } from 'rdf-js'; +import { BlankNode, DatasetCore, Literal, NamedNode, Quad_Graph, Term, Variable, DefaultGraph } from 'rdf-js'; import { Clownface as ClownfaceContract, ClownfaceInit, @@ -9,7 +9,9 @@ import { SingleOrArrayOfTerms, SingleOrArrayOfTermsOrLiterals, WithValue, - WithTerm + WithTerm, + SingleContextClownface, + SingleOrOneElementArray } from '..'; declare class Clownface implements ClownfaceContract { @@ -27,12 +29,26 @@ declare class Clownface) => void): void; map(cb: (quad: Clownface, index: number) => X): X[]; - // tslint:disable:no-unnecessary-generics - node(values: SingleOrArray, options?: NodeOptions): SafeClownface; - blankNode(values?: SingleOrArray): SafeClownface; - literal(values: SingleOrArray, languageOrDatatype?: string | NamedNode): SafeClownface; - namedNode(values: SingleOrArray): SafeClownface; + node(value: SingleOrOneElementArray, options?: NodeOptions): SingleContextClownface; + node(values: Array, options?: NodeOptions): SafeClownface; + node(value: SingleOrOneElementArray, options?: NodeOptions): SingleContextClownface; + node(values: X[], options?: NodeOptions): SafeClownface; + node(value: null, options?: NodeOptions): SingleContextClownface; + node(values: null[], options?: NodeOptions): SafeClownface; + node(values: SingleOrArray, options?: NodeOptions): SafeClownface; + blankNode(value?: string | [string]): SingleContextClownface; + blankNode(values: string[]): SafeClownface; + + literal( + value: SingleOrOneElementArray, + languageOrDatatype?: string | NamedNode): SingleContextClownface; + literal(values: Array, languageOrDatatype?: string | NamedNode): SafeClownface; + + namedNode(value: SingleOrOneElementArray): SingleContextClownface; + namedNode(values: Array): SafeClownface; + + // tslint:disable:no-unnecessary-generics in(predicates: SingleOrArrayOfTerms): SafeClownface; out(predicates: SingleOrArrayOfTerms): SafeClownface;