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
This commit is contained in:
Tomasz Pluskiewicz
2020-01-28 12:04:45 -08:00
committed by Wesley Wigham
parent 0b811831be
commit b1f277e1cd
8 changed files with 160 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
// Type definitions for @rdfjs/fetch-lite 2.0
// Project: https://github.com/rdfjs-base/fetch-lite
// Definitions by: tpluscode <https://github.com/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<typeof formats, 'parsers'>;
fetch?: typeof fetch;
}
interface FactoryInit<D extends DatasetCore<OutQuad, InQuad>, OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad> extends FormatsInit {
factory: DatasetCoreFactory<OutQuad, InQuad, D>;
}
interface RdfFetchResponse<Q extends BaseQuad = Quad> extends Response {
quadStream(): Stream<Q>;
}
interface DatasetResponse<D extends DatasetCore<OutQuad, InQuad>, OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad> extends RdfFetchResponse<OutQuad> {
dataset(): D;
}
}
declare function rdfFetch(url: string, options: rdfFetch.FormatsInit): Promise<rdfFetch.RdfFetchResponse>;
declare function rdfFetch <D extends DatasetCore<OutQuad, InQuad>, OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad>(
url: string,
options: rdfFetch.FactoryInit<D, OutQuad, InQuad>): Promise<rdfFetch.DatasetResponse<D, OutQuad, InQuad>>;
export = rdfFetch;
@@ -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<EventEmitter, Stream>;
} = <any> {};
async function fetchString(): Promise<string> {
const response = await fetch('http://example.com', { formats });
return response.text();
}
async function fetchQuadStream(): Promise<Stream> {
const response = await fetch('http://example.com', { formats });
return response.quadStream();
}
interface QuadExt extends Quad {
toCanonical(): string;
}
interface DatasetX extends Dataset<QuadExt> {
toCanonical(): string;
}
const factory: DatasetCoreFactory<QuadExt, QuadExt, DatasetX> = <any> {};
async function fetchDataset(): Promise<DatasetX> {
const response = await fetch('http://example.com', { formats, factory });
return response.dataset();
}
async function fetchTypedStream(): Promise<Stream<QuadExt>> {
const response = await fetch('http://example.com', { formats, factory });
return response.quadStream();
}
+35
View File
@@ -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"
]
}
+1
View File
@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }
+15
View File
@@ -0,0 +1,15 @@
// Type definitions for @rdfjs/formats-common 2.0
// Project: https://github.com/rdfjs-base/formats-common
// Definitions by: tpluscode <https://github.com/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<EventEmitter, Stream>;
serializers: SinkMap<Stream, EventEmitter>;
};
export = formats;
@@ -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<EventEmitter, Stream> = formats.parsers;
const serializers: SinkMap<Stream, EventEmitter> = formats.serializers;
+31
View File
@@ -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"
]
}
+1
View File
@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }