From b5719fd0d2db94f6e83de67600a439825158c5bb Mon Sep 17 00:00:00 2001 From: Ruben Taelman Date: Fri, 13 Oct 2017 14:39:57 +0900 Subject: [PATCH] Update n3 writer types --- types/n3/index.d.ts | 105 +++++++++++++++++++++++++++++++------------- 1 file changed, 74 insertions(+), 31 deletions(-) diff --git a/types/n3/index.d.ts b/types/n3/index.d.ts index c83005e9cc..4621336998 100644 --- a/types/n3/index.d.ts +++ b/types/n3/index.d.ts @@ -3,6 +3,7 @@ // Definitions by: Fred Eisele // Ruben Taelman // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 /// @@ -10,19 +11,19 @@ import * as fs from "fs"; import * as stream from "stream"; import * as RDF from "rdf-js"; -export type ErrorCallback = (err: Error, result: any) => void; - export interface Prefixes { [key: string]: string; } export class Term { termType: "NamedNode" | "BlankNode" | "Literal" | "Variable" | "DefaultGraph"; + id: string; constructor(iri: string); toJSON(): string; equals(other: RDF.Term): boolean; subclass(type: any): void; static fromId(id: string): NamedNode | BlankNode | Variable | Literal; + static toId(term: string | null | RDF.Term): string; } export class NamedNode extends Term implements RDF.NamedNode { @@ -81,9 +82,18 @@ export class Quad implements RDF.Quad { export class Triple extends Quad implements RDF.Triple {} +export type ErrorCallback = (err: Error, result: any) => void; +export type QuadCallback = (result: Quad) => void; +export type QuadPredicate = (result: Quad) => boolean; + +export type OTerm = string | null; +export type OIRI = RDF.Term | null; + +export type Logger = (message?: any, ...optionalParams: any[]) => void; + export interface BlankTriple { - predicate: string; - object: string; + predicate: RDF.Term; + object: RDF.Term; } export interface ParserConstructor { @@ -92,12 +102,6 @@ export interface ParserConstructor { } export const Parser: ParserConstructor; -export interface StreamParserConstructor { - new (options?: ParserOptions): N3StreamParser; - (options?: ParserOptions): N3StreamParser; -} -export const StreamParser: StreamParserConstructor; - export interface ParserOptions { format?: string; prefixes?: string[]; @@ -105,16 +109,25 @@ export interface ParserOptions { export type ParseCallback = (error: Error, quad: Quad, prefixes: Prefixes) => void; -export type Logger = (message?: any, ...optionalParams: any[]) => void; - export interface N3Parser { parse(input: string, callback: ParseCallback): void; } +export interface StreamParserConstructor { + new (options?: ParserOptions): N3StreamParser; + (options?: ParserOptions): N3StreamParser; +} +export const StreamParser: StreamParserConstructor; + export interface N3StreamParser extends N3Parser, fs.WriteStream { pipe(consumer: T): T; } +export interface WriterOptions { + format?: string; + prefixes?: Prefixes; +} + export interface WriterConstructor { new (options?: WriterOptions): N3Writer; new (fd: any, options?: WriterOptions): N3Writer; @@ -123,20 +136,16 @@ export interface WriterConstructor { } export const Writer: WriterConstructor; -export interface N3Quad { - subject: string; - predicate: string; - object: string; - graph?: string; -} - export interface N3Writer { - addTriple(subject: string, predicate: string, object: string | string[], graph?: string, done?: () => void): void; - addTriple(quad: N3Quad): void; + tripleToString(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph?: RDF.Term): string; + triplesToString(quads: RDF.Quad[]): string; + addTriple(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term | RDF.Term[], graph?: RDF.Term, done?: () => void): void; + addTriple(quad: RDF.Quad): void; + addTriples(quads: RDF.Quad[]): void; end(err?: ErrorCallback, result?: any): void; - blank(ns: string, name: string): string; - blank(triple: BlankTriple[]): string; - list(triple: string[]): string[]; + blank(predicate: RDF.Term, object: RDF.Term): string; + blank(triple: BlankTriple | RDF.Quad | BlankTriple[] | RDF.Quad[]): string; + list(triple: RDF.Term[]): string[]; } export function StreamWriter(options: WriterOptions): N3StreamWriter; @@ -145,16 +154,50 @@ export interface N3StreamWriter extends N3Writer { pipe(consumer: NodeJS.WritableStream | stream.Writable): void; } -export interface WriterOptions { - format?: string; +export interface N3Store { + size: number; + addTriple(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term | RDF.Term[], graph?: RDF.Term, done?: () => void): void; + addTriple(quad: RDF.Quad): void; + addTriples(quads: RDF.Quad[]): void; + addPrefix(prefix: string, iri: RDF.NamedNode): void; + addPrefixes(prefixes: Prefixes): void; + removeTriple(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term | RDF.Term[], graph?: RDF.Term, done?: () => void): void; + removeTriple(quad: RDF.Quad): void; + removeTriples(quads: RDF.Quad[]): void; + getTriples(subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): Quad[]; + getTriplesByIRI(subject: OIRI, predicate: OIRI, object: OIRI, graph: OIRI): Quad[]; + countTriples(subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): number; + countTriplesByIRI(subject: OIRI, predicate: OIRI, object: OIRI, graph: OIRI): number; + forEach(callback: QuadCallback, subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): void; + forEachByIRI(callback: QuadCallback, subject: OIRI, predicate: OIRI, object: OIRI, graph: OIRI): void; + every(callback: QuadPredicate, subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): boolean; + everyByIRI(callback: QuadPredicate, subject: OIRI, predicate: OIRI, object: OIRI, graph: OIRI): boolean; + some(callback: QuadPredicate, subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): boolean; + someByIRI(callback: QuadPredicate, subject: OIRI, predicate: OIRI, object: OIRI, graph: OIRI): boolean; + getSubjects(predicate: OTerm, object: OTerm, graph: OTerm): RDF.Term[]; + getSubjectsByIRI(predicate: OIRI, object: OIRI, graph: OIRI): RDF.Term[]; + forSubjects(callback: QuadCallback, predicate: OTerm, object: OTerm, graph: OTerm): void; + forSubjectsByIRI(callback: QuadCallback, predicate: OIRI, object: OIRI, graph: OIRI): void; + getPredicates(subject: OTerm, object: OTerm, graph: OTerm): RDF.Term[]; + getPredicatesByIRI(subject: OIRI, object: OIRI, graph: OIRI): RDF.Term[]; + forPredicates(callback: QuadCallback, subject: OTerm, object: OTerm, graph: OTerm): void; + forPredicatesByIRI(callback: QuadCallback, subject: OIRI, object: OIRI, graph: OIRI): void; + getObjects(subject: OTerm, predicate: OTerm, graph: OTerm): RDF.Term[]; + getObjectsByIRI(subject: OIRI, predicate: OIRI, graph: OIRI): RDF.Term[]; + forObjects(callback: QuadCallback, subject: OTerm, predicate: OTerm, graph: OTerm): void; + forObjectsByIRI(callback: QuadCallback, subject: OIRI, predicate: OIRI, graph: OIRI): void; + getGraphs(subject: OTerm, predicate: OTerm, object: OTerm): RDF.Term[]; + getGraphsByIRI(subject: OIRI, predicate: OIRI, object: OIRI): RDF.Term[]; + forGraphs(callback: QuadCallback, subject: OTerm, predicate: OTerm, object: OTerm): void; + forGraphsByIRI(callback: QuadCallback, subject: OIRI, predicate: OIRI, object: OIRI): void; + createBlankNode(suggestedName: string): BlankNode; +} +export function Store(triples?: RDF.Quad[], options?: StoreOptions): N3Store; + +export interface StoreOptions { prefixes?: Prefixes; } -export interface N3StoreWriter extends N3Writer { - find(subject: string, predicate: string | null, object: string | null): N3Quad[]; -} -export function Store(): N3StoreWriter; - export namespace Util { function createLiteral(value: any, type?: string): string;