From b1f277e1cda96ada382811ad7658993e55effd27 Mon Sep 17 00:00:00 2001 From: Tomasz Pluskiewicz Date: Tue, 28 Jan 2020 21:04:45 +0100 Subject: [PATCH] add @rdfjs/fetch-lite and @rdfjs/formats-common (#41679) * feat: add @rdfjs/formats-common * feat: add @rdfjs/fetch-lite * combine with PR for formats-common * update to latest rdf-js * update to latest rdf-js --- types/rdfjs__fetch-lite/index.d.ts | 33 +++++++++++++++++ .../rdfjs__fetch-lite-tests.ts | 37 +++++++++++++++++++ types/rdfjs__fetch-lite/tsconfig.json | 35 ++++++++++++++++++ types/rdfjs__fetch-lite/tslint.json | 1 + types/rdfjs__formats-common/index.d.ts | 15 ++++++++ .../rdfjs__formats-common-tests.ts | 7 ++++ types/rdfjs__formats-common/tsconfig.json | 31 ++++++++++++++++ types/rdfjs__formats-common/tslint.json | 1 + 8 files changed, 160 insertions(+) create mode 100644 types/rdfjs__fetch-lite/index.d.ts create mode 100644 types/rdfjs__fetch-lite/rdfjs__fetch-lite-tests.ts create mode 100644 types/rdfjs__fetch-lite/tsconfig.json create mode 100644 types/rdfjs__fetch-lite/tslint.json create mode 100644 types/rdfjs__formats-common/index.d.ts create mode 100644 types/rdfjs__formats-common/rdfjs__formats-common-tests.ts create mode 100644 types/rdfjs__formats-common/tsconfig.json create mode 100644 types/rdfjs__formats-common/tslint.json 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" }