diff --git a/types/rdfjs__fetch-lite/index.d.ts b/types/rdfjs__fetch-lite/index.d.ts index b5254f426d..8a5ffcb727 100644 --- a/types/rdfjs__fetch-lite/index.d.ts +++ b/types/rdfjs__fetch-lite/index.d.ts @@ -17,11 +17,11 @@ declare namespace rdfFetch { } interface RdfFetchResponse extends Response { - quadStream(): Stream; + quadStream(): Promise>; } interface DatasetResponse, OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad> extends RdfFetchResponse { - dataset(): D; + dataset(): Promise; } } diff --git a/types/rdfjs__fetch/index.d.ts b/types/rdfjs__fetch/index.d.ts new file mode 100644 index 0000000000..67dfc755a2 --- /dev/null +++ b/types/rdfjs__fetch/index.d.ts @@ -0,0 +1,14 @@ +// Type definitions for @rdfjs/fetch 2.0 +// Project: https://github.com/rdfjs-base/fetch +// Definitions by: tpluscode +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { FormatsInit, RdfFetchResponse, FactoryInit, DatasetResponse } from '@rdfjs/fetch-lite'; +import { DatasetCore, Quad, BaseQuad } from 'rdf-js'; + +declare function rdfFetch(url: string, options: FormatsInit): Promise; +declare function rdfFetch , OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad>( + url: string, + options: FactoryInit): Promise>; + +export = rdfFetch; diff --git a/types/rdfjs__fetch/rdfjs__fetch-tests.ts b/types/rdfjs__fetch/rdfjs__fetch-tests.ts new file mode 100644 index 0000000000..2e8b876bf6 --- /dev/null +++ b/types/rdfjs__fetch/rdfjs__fetch-tests.ts @@ -0,0 +1,37 @@ +import fetch = require('@rdfjs/fetch'); +import { SinkMap } from '@rdfjs/sink-map'; +import { Stream, Dataset, Quad, DatasetCoreFactory } from 'rdf-js'; +import { EventEmitter } from 'events'; + +const formats: { + parsers: SinkMap; +} = {}; + +async function fetchString(): Promise { + const response = await fetch('http://example.com', { formats }); + return response.text(); +} + +async function fetchQuadStream(): Promise { + const response = await fetch('http://example.com', { formats }); + return response.quadStream(); +} + +interface QuadExt extends Quad { + toCanonical(): string; +} + +interface DatasetX extends Dataset { + toCanonical(): string; +} +const factory: DatasetCoreFactory = {}; + +async function fetchDataset(): Promise { + const response = await fetch('http://example.com', { formats, factory }); + return response.dataset(); +} + +async function fetchTypedStream(): Promise> { + const response = await fetch('http://example.com', { formats, factory }); + return response.quadStream(); +} diff --git a/types/rdfjs__fetch/tsconfig.json b/types/rdfjs__fetch/tsconfig.json new file mode 100644 index 0000000000..5cfdec45d2 --- /dev/null +++ b/types/rdfjs__fetch/tsconfig.json @@ -0,0 +1,38 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@rdfjs/fetch": [ + "rdfjs__fetch" + ], + "@rdfjs/fetch-lite": [ + "rdfjs__fetch-lite" + ], + "@rdfjs/formats-common": [ + "rdfjs__formats-common" + ], + "@rdfjs/sink-map": [ + "rdfjs__sink-map" + ] + } + }, + "files": [ + "index.d.ts", + "rdfjs__fetch-tests.ts" + ] +} diff --git a/types/rdfjs__fetch/tslint.json b/types/rdfjs__fetch/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/rdfjs__fetch/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }