@rdfjs/types
Advanced tools
Comparing version 1.1.0-next.0 to 1.1.0-next.1
@@ -9,2 +9,3 @@ { | ||
"friendly-lies-suffer", | ||
"long-files-look", | ||
"seven-shrimps-build", | ||
@@ -11,0 +12,0 @@ "tough-guests-flash" |
# @rdfjs/types | ||
## 1.1.0-next.1 | ||
### Patch Changes | ||
- Make queryable metadata types configurable | ||
## 1.1.0-next.0 | ||
@@ -4,0 +10,0 @@ |
{ | ||
"name": "@rdfjs/types", | ||
"version": "1.1.0-next.0", | ||
"version": "1.1.0-next.1", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "types": "index.d.ts", |
@@ -12,2 +12,3 @@ /* Query Interfaces - Common */ | ||
// TODO: merge this with Stream upon the next major change | ||
/** | ||
@@ -82,10 +83,18 @@ * Custom typings for the RDF/JS ResultStream interface as the current | ||
*/ | ||
interface BaseMetadataQuery<OrderItemsType extends QuadTermName | RDF.Variable, AdditionalMetadataType extends unknown> { | ||
interface BaseMetadataQuery<OrderItemsType extends QuadTermName | RDF.Variable, AdditionalMetadataType extends unknown, SupportedMetadataType> { | ||
/** | ||
* Asynchronously return metadata of the current result. | ||
*/ | ||
metadata<M extends MetadataOpts>(opts?: M): Promise<ConditionalMetadataType<AdditionalMetadataType, M, OrderItemsType>>; | ||
metadata<M extends MetadataOpts<SupportedMetadataType>>(opts?: M): Promise<ConditionalMetadataType<AdditionalMetadataType, M, OrderItemsType>>; | ||
} | ||
export type MetadataOpts = CardinalityMetadataOpts | OrderMetadataOpts | AvailableOrdersMetadataOpts; | ||
export type AllMetadataSupport = CardinalityMetadataSupport & OrderMetadataSupport & AvailableOrdersMetadataSupport; | ||
export type CardinalityMetadataSupport = { cardinality: true }; | ||
export type OrderMetadataSupport = { order: true }; | ||
export type AvailableOrdersMetadataSupport = { availableOrders: true }; | ||
export type MetadataOpts<SupportedMetadataType> = | ||
(SupportedMetadataType extends CardinalityMetadataSupport ? CardinalityMetadataOpts : unknown) | | ||
(SupportedMetadataType extends OrderMetadataSupport ? OrderMetadataOpts : unknown) | | ||
(SupportedMetadataType extends AvailableOrdersMetadataSupport ? AvailableOrdersMetadataOpts : unknown); | ||
export interface CardinalityMetadataOpts { cardinality: 'estimate' | 'exact'; } | ||
@@ -134,3 +143,3 @@ export interface OrderMetadataOpts { order: true; } | ||
*/ | ||
export interface QueryBindings extends BaseQuery, BaseMetadataQuery<RDF.Variable, { variables: RDF.Variable[] }> { | ||
export interface QueryBindings<SupportedMetadataType> extends BaseQuery, BaseMetadataQuery<RDF.Variable, { variables: RDF.Variable[] }, SupportedMetadataType> { | ||
resultType: 'bindings'; | ||
@@ -143,3 +152,3 @@ execute(opts?: QueryExecuteOptions<RDF.Variable>): Promise<ResultStream<Bindings>>; | ||
*/ | ||
export interface QueryQuads extends BaseQuery, BaseMetadataQuery<QuadTermName, unknown> { | ||
export interface QueryQuads<SupportedMetadataType> extends BaseQuery, BaseMetadataQuery<QuadTermName, unknown, SupportedMetadataType> { | ||
resultType: 'quads'; | ||
@@ -168,3 +177,3 @@ execute(opts?: QueryExecuteOptions<QuadTermName>): Promise<ResultStream<RDF.Quad>>; | ||
*/ | ||
export type Query = QueryBindings | QueryBoolean | QueryQuads | QueryVoid; | ||
export type Query<SupportedMetadataType> = QueryBindings<SupportedMetadataType> | QueryBoolean | QueryQuads<SupportedMetadataType> | QueryVoid; | ||
@@ -171,0 +180,0 @@ /** |
@@ -108,3 +108,3 @@ /* Query Interfaces - Filterable */ | ||
*/ | ||
export interface FilterableSource { | ||
export interface FilterableSource<SupportedMetadataType> { | ||
/** | ||
@@ -123,3 +123,3 @@ * May reject given an unsupported expression. | ||
}, | ||
): Promise<QueryQuads>; | ||
): Promise<QueryQuads<SupportedMetadataType>>; | ||
} |
@@ -74,5 +74,8 @@ /* Query Interfaces - Queryable */ | ||
* It allow engines to return any type of result object for any type of query. | ||
* @param QueryFormatType The format of the query, either string or algebra object. | ||
* @param QueryFormatTypesAvailable The format of the query, either string or algebra object. | ||
* @param SourceType The allowed sources over which queries can be executed. | ||
* @param SupportedMetadataType The allowed metadata types. | ||
* @param QueryType The allowed query types. | ||
* @param QueryStringContextType Type of the string-based query context. | ||
* @param QueryAlgebraContextType Type of the algebra-based query context. | ||
*/ | ||
@@ -82,3 +85,4 @@ export interface Queryable< | ||
SourceType, | ||
QueryType extends Query, | ||
SupportedMetadataType, | ||
QueryType extends Query<SupportedMetadataType>, | ||
QueryStringContextType extends QueryStringContext<SourceType>, | ||
@@ -85,0 +89,0 @@ QueryAlgebraContextType extends QueryAlgebraContext<SourceType>, |
@@ -9,2 +9,3 @@ /* Stream Interfaces */ | ||
// TODO: merge this with ResultStream upon the next major change | ||
/** | ||
@@ -11,0 +12,0 @@ * A quad stream. |
67221
24
1543