diff --git a/types/rdfjs__fetch-lite/index.d.ts b/types/rdfjs__fetch-lite/index.d.ts new file mode 100644 index 0000000000..b5254f426d --- /dev/null +++ b/types/rdfjs__fetch-lite/index.d.ts @@ -0,0 +1,33 @@ +// Type definitions for @rdfjs/fetch-lite 2.0 +// Project: https://github.com/rdfjs-base/fetch-lite +// Definitions by: tpluscode +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { DatasetCoreFactory, DatasetCore, Quad, Stream, BaseQuad } from 'rdf-js'; +import formats = require('@rdfjs/formats-common'); + +declare namespace rdfFetch { + interface FormatsInit extends RequestInit { + formats: Pick; + fetch?: typeof fetch; + } + + interface FactoryInit, OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad> extends FormatsInit { + factory: DatasetCoreFactory; + } + + interface RdfFetchResponse extends Response { + quadStream(): Stream; + } + + interface DatasetResponse, OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad> extends RdfFetchResponse { + dataset(): D; + } +} + +declare function rdfFetch(url: string, options: rdfFetch.FormatsInit): Promise; +declare function rdfFetch , OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad>( + url: string, + options: rdfFetch.FactoryInit): Promise>; + +export = rdfFetch; diff --git a/types/rdfjs__fetch-lite/rdfjs__fetch-lite-tests.ts b/types/rdfjs__fetch-lite/rdfjs__fetch-lite-tests.ts new file mode 100644 index 0000000000..13b9aa67ab --- /dev/null +++ b/types/rdfjs__fetch-lite/rdfjs__fetch-lite-tests.ts @@ -0,0 +1,37 @@ +import fetch = require('@rdfjs/fetch-lite'); +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-lite/tsconfig.json b/types/rdfjs__fetch-lite/tsconfig.json new file mode 100644 index 0000000000..0de85aa88e --- /dev/null +++ b/types/rdfjs__fetch-lite/tsconfig.json @@ -0,0 +1,35 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": false, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@rdfjs/fetch-lite": [ + "rdfjs__fetch-lite" + ], + "@rdfjs/formats-common": [ + "rdfjs__formats-common" + ], + "@rdfjs/sink-map": [ + "rdfjs__sink-map" + ] + } + }, + "files": [ + "index.d.ts", + "rdfjs__fetch-lite-tests.ts" + ] +} diff --git a/types/rdfjs__fetch-lite/tslint.json b/types/rdfjs__fetch-lite/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/rdfjs__fetch-lite/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/rdfjs__formats-common/index.d.ts b/types/rdfjs__formats-common/index.d.ts new file mode 100644 index 0000000000..62ae7eb667 --- /dev/null +++ b/types/rdfjs__formats-common/index.d.ts @@ -0,0 +1,15 @@ +// Type definitions for @rdfjs/formats-common 2.0 +// Project: https://github.com/rdfjs-base/formats-common +// Definitions by: tpluscode +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { SinkMap } from '@rdfjs/sink-map'; +import { Stream } from 'rdf-js'; +import { EventEmitter } from 'events'; + +declare const formats: { + parsers: SinkMap; + serializers: SinkMap; +}; + +export = formats; diff --git a/types/rdfjs__formats-common/rdfjs__formats-common-tests.ts b/types/rdfjs__formats-common/rdfjs__formats-common-tests.ts new file mode 100644 index 0000000000..98d0e633dc --- /dev/null +++ b/types/rdfjs__formats-common/rdfjs__formats-common-tests.ts @@ -0,0 +1,7 @@ +import formats = require('@rdfjs/formats-common'); +import { Stream } from 'rdf-js'; +import { SinkMap } from '@rdfjs/sink-map'; +import { EventEmitter } from 'events'; + +const parsers: SinkMap = formats.parsers; +const serializers: SinkMap = formats.serializers; diff --git a/types/rdfjs__formats-common/tsconfig.json b/types/rdfjs__formats-common/tsconfig.json new file mode 100644 index 0000000000..618f9481f2 --- /dev/null +++ b/types/rdfjs__formats-common/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@rdfjs/sink-map": [ + "rdfjs__sink-map" + ], + "@rdfjs/formats-common": [ + "rdfjs__formats-common" + ] + } + }, + "files": [ + "index.d.ts", + "rdfjs__formats-common-tests.ts" + ] +} diff --git a/types/rdfjs__formats-common/tslint.json b/types/rdfjs__formats-common/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/rdfjs__formats-common/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }