fix(clownface): add missing overloads (#46950)

This commit is contained in:
Tomasz Pluskiewicz 2020-09-22 20:48:14 +02:00 committed by GitHub
parent aab89e77b7
commit 9cb72e2e42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 8 deletions

View File

@ -116,6 +116,9 @@ function testBlankNode() {
let singleBlank: clownface.AnyPointer<BlankNode, Dataset> = cf.blankNode();
singleBlank = cf.blankNode('label');
const multiBlankContext: clownface.AnyPointer<BlankNode[], Dataset> = cf.blankNode([ 'b1', 'b2' ]);
const fromOther: clownface.AnyPointer<BlankNode, Dataset> = cf.blankNode(singleBlank);
const fromMultipleOther: clownface.MultiPointer<BlankNode, Dataset> = cf.blankNode(multiBlankContext);
}
function testDeleteIn() {
@ -244,9 +247,12 @@ function testList() {
function testLiteral() {
const cf: clownface.AnyPointer<undefined, Dataset> = <any> {};
let cfOneLit: clownface.AnyPointer<Literal, Dataset> = cf.literal('foo');
const cfLiterasl: clownface.AnyPointer<Literal[], Dataset> = cf.literal(['foo', 'bar']);
const cfLiterals: clownface.AnyPointer<Literal[], Dataset> = cf.literal(['foo', 'bar']);
cfOneLit = cf.literal('foo', node);
cfOneLit = cf.literal('foo', 'en');
const fromOther: clownface.AnyPointer<Literal, Dataset> = cf.literal(cfOneLit);
const fromMultipleOther: clownface.MultiPointer<Literal, Dataset> = cf.literal(cfLiterals);
}
function testMap() {
@ -264,6 +270,9 @@ function testNamedNode() {
let cfSingleNamed: clownface.AnyPointer<NamedNode, Dataset> = cf.namedNode(node);
cfSingleNamed = cf.namedNode('http://example.com/');
const cfNamedMany: clownface.AnyPointer<NamedNode[], Dataset> = cf.namedNode(['http://example.com/', 'http://example.org/']);
const fromOther: clownface.AnyPointer<NamedNode, Dataset> = cf.namedNode(cfSingleNamed);
const fromMultipleOther: clownface.MultiPointer<NamedNode, Dataset> = cf.namedNode(cfNamedMany);
}
function testNode() {
@ -276,6 +285,11 @@ function testNode() {
const cfBlank: clownface.AnyPointer<BlankNode, Dataset> = cf.node(null, { type: 'BlankNode' });
cfLit = cf.node('example', { datatype: node.value });
cfLit = cf.node('example', { datatype: node });
const fromOtherNode: clownface.MultiPointer<Term, Dataset> = cf.node(singleTerm);
const literalFromOther: clownface.MultiPointer<Literal, Dataset> = cf.node(cfLit);
const literalFromMultipleOther: clownface.MultiPointer<Literal, Dataset> = cf.node(cfLitMany);
}
function testOut() {

View File

@ -57,7 +57,8 @@ declare namespace clownface {
node(value: SingleOrOneElementArray<boolean | string | number>, options?: NodeOptions): AnyPointer<Literal, D>;
node(values: Array<boolean | string | number>, options?: NodeOptions): AnyPointer<Literal[], D>;
node<X extends Term>(value: SingleOrOneElementArray<X>, options?: NodeOptions): AnyPointer<X, D>;
node<X extends Term>(value: SingleOrOneElementArray<X> | AnyPointer<X, D>, options?: NodeOptions): AnyPointer<X, D>;
node<X extends Term>(value: MultiPointer<X, D>, options?: NodeOptions): AnyPointer<X[], D>;
node<X extends Term[]>(values: X, options?: NodeOptions): AnyPointer<X, D>;
node(value: null, options?: NodeOptions): AnyPointer<BlankNode, D>;
@ -65,14 +66,14 @@ declare namespace clownface {
node(values: Array<boolean | string | number | Term | null>, options?: NodeOptions): AnyPointer<Term[], D>;
blankNode(value?: SingleOrOneElementArray<string>): AnyPointer<BlankNode, D>;
blankNode(values: string[]): AnyPointer<BlankNode[], D>;
blankNode(value?: SingleOrOneElementArray<string> | AnyPointer<BlankNode, D>): AnyPointer<BlankNode, D>;
blankNode(values: string[] | MultiPointer<BlankNode, D>): AnyPointer<BlankNode[], D>;
literal(value: SingleOrOneElementArray<boolean | string | number | Term | null>, languageOrDatatype?: string | NamedNode): AnyPointer<Literal, D>;
literal(values: Array<boolean | string | number | Term | null>, languageOrDatatype?: string | NamedNode): AnyPointer<Literal[], D>;
literal(value: SingleOrOneElementArray<boolean | string | number | Term | null> | AnyPointer<Literal, D>, languageOrDatatype?: string | NamedNode): AnyPointer<Literal, D>;
literal(values: Array<boolean | string | number | Term | null> | MultiPointer<Literal, D>, languageOrDatatype?: string | NamedNode): AnyPointer<Literal[], D>;
namedNode(value: SingleOrOneElementArray<string | NamedNode>): AnyPointer<NamedNode, D>;
namedNode(values: Array<string | NamedNode>): AnyPointer<NamedNode[], D>;
namedNode(value: SingleOrOneElementArray<string | NamedNode> | AnyPointer<NamedNode, D>): AnyPointer<NamedNode, D>;
namedNode(values: Array<string | NamedNode> | MultiPointer<NamedNode, D>): AnyPointer<NamedNode[], D>;
in(predicates?: SingleOrArrayOfTerms<Term>): MultiPointer<T extends undefined ? never : NamedNode | BlankNode, D>;
out(predicates?: SingleOrArrayOfTerms<Term>): MultiPointer<T extends undefined ? never : Term, D>;