mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
feat: @rdfjs/fetch (#42763)
* feat: @rdfjs/fetch * linted * fix: dataset() and quadStream() are async
This commit is contained in:
parent
53c3baddff
commit
a20e6d6ce7
4
types/rdfjs__fetch-lite/index.d.ts
vendored
4
types/rdfjs__fetch-lite/index.d.ts
vendored
@ -17,11 +17,11 @@ declare namespace rdfFetch {
|
||||
}
|
||||
|
||||
interface RdfFetchResponse<Q extends BaseQuad = Quad> extends Response {
|
||||
quadStream(): Stream<Q>;
|
||||
quadStream(): Promise<Stream<Q>>;
|
||||
}
|
||||
|
||||
interface DatasetResponse<D extends DatasetCore<OutQuad, InQuad>, OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad> extends RdfFetchResponse<OutQuad> {
|
||||
dataset(): D;
|
||||
dataset(): Promise<D>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
14
types/rdfjs__fetch/index.d.ts
vendored
Normal file
14
types/rdfjs__fetch/index.d.ts
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
// Type definitions for @rdfjs/fetch 2.0
|
||||
// Project: https://github.com/rdfjs-base/fetch
|
||||
// Definitions by: tpluscode <https://github.com/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<RdfFetchResponse>;
|
||||
declare function rdfFetch <D extends DatasetCore<OutQuad, InQuad>, OutQuad extends BaseQuad = Quad, InQuad extends BaseQuad = OutQuad>(
|
||||
url: string,
|
||||
options: FactoryInit<D, OutQuad, InQuad>): Promise<DatasetResponse<D, OutQuad, InQuad>>;
|
||||
|
||||
export = rdfFetch;
|
||||
37
types/rdfjs__fetch/rdfjs__fetch-tests.ts
Normal file
37
types/rdfjs__fetch/rdfjs__fetch-tests.ts
Normal file
@ -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<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();
|
||||
}
|
||||
38
types/rdfjs__fetch/tsconfig.json
Normal file
38
types/rdfjs__fetch/tsconfig.json
Normal file
@ -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"
|
||||
]
|
||||
}
|
||||
1
types/rdfjs__fetch/tslint.json
Normal file
1
types/rdfjs__fetch/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Loading…
Reference in New Issue
Block a user