@orbitalhq/orbital-client
Advanced tools
Comparing version 0.1.0-alpha.2 to 0.1.1
@@ -5,2 +5,4 @@ #! /usr/bin/env node | ||
const prettier = require('prettier'); | ||
const filePath = path.join(process.cwd(), 'orbital.config.json'); | ||
@@ -10,5 +12,5 @@ | ||
return new Promise((resolve, reject) => { | ||
console.log(`Reading the taxonomy from the configured schema server in ${config.schemaServerUrl}.`); | ||
const client = require(config.schemaServerUrl.includes('https') ? 'https' : 'http'); | ||
client.get(`${config.schemaServerUrl}api/taxonomy/typescript`, (res) => { | ||
console.log(`Reading the taxonomy from the configured Orbital server in ${config.orbitalServerUrl}.`); | ||
const client = require(config.orbitalServerUrl.includes('https') ? 'https' : 'http'); | ||
client.get(`${config.orbitalServerUrl}api/taxonomy/typescript`, (res) => { | ||
if (res.statusCode !== 200) { | ||
@@ -48,4 +50,14 @@ res.resume(); | ||
).then(taxonomy => { | ||
return new Promise((resolve, reject) => { | ||
fs.writeFile('taxonomy.ts', taxonomy, err => { | ||
// eslint-disable-next-line no-async-promise-executor | ||
return new Promise(async (resolve, reject) => { | ||
const prettifiedTaxonomy = await prettier.format(taxonomy, { | ||
parser: "typescript", | ||
singleQuote: true, | ||
trailingComma: "es5", | ||
semi: true, | ||
tabWidth: 2, | ||
printWidth: 100 | ||
}); | ||
await fs.writeFile('taxonomy.ts', prettifiedTaxonomy, err => { | ||
if (err) { | ||
@@ -52,0 +64,0 @@ reject(err); |
export * from './lib/client'; | ||
export * from './lib/logger'; | ||
export * from './lib/query-client'; |
@@ -0,0 +0,0 @@ "use strict"; |
@@ -1,7 +0,7 @@ | ||
import 'reflect-metadata'; | ||
import { Observable } from 'rxjs'; | ||
import { Observable, Subscription } from 'rxjs'; | ||
export { Subscription }; | ||
import { ComposingCriteriaBuilder, CriteriaElement } from './criteria'; | ||
import { Logger } from './logger'; | ||
import { QueryClient } from './query-client'; | ||
export declare type DatatypeName = string; | ||
import { EventSourceResponse, QueryClient } from './query-client'; | ||
export type DatatypeName = string; | ||
export declare function asArray<Value>(input: DatatypeContainer<Value>): [DatatypeContainer<Value>]; | ||
@@ -12,7 +12,7 @@ export interface DatatypeContainer<Value> { | ||
} | ||
export declare type AnyDatatypeContainer = DatatypeContainer<any>; | ||
declare type DatatypeMapping = { | ||
export type AnyDatatypeContainer = DatatypeContainer<any>; | ||
export type DatatypeMapping = { | ||
[key: string]: DatatypeContainer<any>; | ||
}; | ||
export declare type TaxonomyType<Mapping extends DatatypeMapping> = { | ||
export type TaxonomyType<Mapping extends DatatypeMapping> = { | ||
[key in keyof Mapping]: DatatypeContainer<Mapping[key]['value']>; | ||
@@ -23,58 +23,157 @@ }; | ||
} | ||
declare type FindParam<T, M extends DatatypeContainer<T>> = M | [M]; | ||
export declare function buildClient<TaxonomyMapping extends DatatypeMapping, Taxonomy extends TaxonomyType<TaxonomyMapping>>(taxonomy: Taxonomy, queryClient: QueryClient, options: ClientOptions): { | ||
type FindParam<T, M extends DatatypeContainer<T>> = M | [M]; | ||
export declare function buildClient<TaxonomyMapping extends DatatypeMapping, Taxonomy extends TaxonomyType<TaxonomyMapping>>(taxonomy: Taxonomy, queryClient: QueryClient, options?: ClientOptions): { | ||
given: <K, T extends DatatypeContainer<K>>(type: T, criteria: T["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T>) => CriteriaElement)) => { | ||
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
} & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): { | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
toTaxiQl: () => string; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">; | ||
}; | ||
and: <K_1, T_2 extends DatatypeContainer<K_1>>(type: T_2, criteria: T_2["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T_2>) => CriteriaElement)) => { | ||
and: <K_1, T_1 extends DatatypeContainer<K_1>>(type: T_1, criteria: T_1["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T_1>) => CriteriaElement)) => { | ||
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
} & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): { | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
toTaxiQl: () => string; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">; | ||
}; | ||
and: any; | ||
and: /*elided*/ any; | ||
}; | ||
}; | ||
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
} & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): { | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
toTaxiQl: () => string; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">; | ||
}; | ||
taxiQl: <R>(taxiQl: string) => { | ||
execute: () => Observable<R | { | ||
error: any; | ||
}>; | ||
executeAsPromise: () => Promise<R | { | ||
error: any; | ||
}>; | ||
executeAsEventStream: () => Observable<R>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<R>; | ||
}; | ||
}; | ||
export {}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.buildClient = exports.asArray = void 0; | ||
require("reflect-metadata"); // TODO Does this belong here or to the consumer code? | ||
exports.Subscription = void 0; | ||
exports.asArray = asArray; | ||
exports.buildClient = buildClient; | ||
const nanoid_1 = require("nanoid"); | ||
const rxjs_1 = require("rxjs"); | ||
Object.defineProperty(exports, "Subscription", { enumerable: true, get: function () { return rxjs_1.Subscription; } }); | ||
const criteria_1 = require("./criteria"); | ||
@@ -14,3 +17,2 @@ const logger_1 = require("./logger"); | ||
} | ||
exports.asArray = asArray; | ||
function generateRandomId() { | ||
@@ -22,3 +24,3 @@ return (0, nanoid_1.nanoid)(); | ||
}; | ||
function buildClient(taxonomy, queryClient, options) { | ||
function buildClient(taxonomy, queryClient, options = {}) { | ||
const actualOptions = Object.assign(Object.assign({}, defaultOptions), options); | ||
@@ -36,5 +38,3 @@ function getDatatype(key) { | ||
const givenBlock = Object.entries(criteriaParams) | ||
/* eslint-disable @typescript-eslint/no-non-null-assertion */ | ||
.map(([key, value]) => [getDatatype(key), value.value]) | ||
/* eslint-enable @typescript-eslint/no-non-null-assertion */ | ||
.map(([key, value]) => { | ||
@@ -62,3 +62,3 @@ if (typeof value !== 'function') { | ||
} | ||
function generateQuery(method, givenParams, findParameter, asParameters) { | ||
function generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters) { | ||
const given = generateGiven(givenParams); | ||
@@ -69,36 +69,25 @@ const asBlock = generateAs(asParameters); | ||
: findParameter.name; | ||
const arrayNotifier = isArray(findParameter) ? `[]` : ''; | ||
const arrayNotifier = isArray(findParameter) || taxiQueryMethod === 'stream' ? `[]` : ''; | ||
const asString = asParameters !== null ? `\n${asBlock}${arrayNotifier}` : ''; | ||
return `${given}${method === 'query' ? 'find' : 'stream'} { ${findBlock} }${asString}`; | ||
return `${given}${taxiQueryMethod} { ${findBlock} }${asString}`; | ||
} | ||
function executeQuery(method, givenParams, findParameter, asParameters) { | ||
const query = generateQuery(method, givenParams, findParameter, asParameters); | ||
actualOptions.logger.info(query); | ||
return queryClient[method](query, generateRandomId()); | ||
function generateAndExecuteQuery(taxiQueryMethod, transportMethod, givenParams, findParameter, asParameters) { | ||
const query = generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters); | ||
return executeQuery(query, transportMethod); | ||
} | ||
function buildAs(method, givenParams, findParameter) { | ||
function executeQuery(taxiQl, transportMethod) { | ||
actualOptions.logger.info(taxiQl); | ||
return queryClient[transportMethod](taxiQl, generateRandomId()); | ||
} | ||
function buildAs(taxiQueryMethod, givenParams, findParameter) { | ||
return function as(asParams) { | ||
const asParameters = Object.entries(asParams).map(([key, value]) => [key, getDatatype(value.name)]); | ||
return { | ||
execute: function execute() { | ||
return executeQuery(method, givenParams, findParameter, asParameters); | ||
}, | ||
toTaxiQl: function toTaxiQl() { | ||
return generateQuery(method, givenParams, findParameter, asParameters); | ||
}, | ||
}; | ||
const methods = buildExecutionMethods(taxiQueryMethod, givenParams, findParameter, asParameters); | ||
return methods; | ||
}; | ||
} | ||
function buildFind(method, givenParams) { | ||
function buildFind(taxiQueryMethod, givenParams) { | ||
return function find(findParameter) { | ||
return { | ||
as: buildAs(method, givenParams, findParameter), | ||
// TODO The return type here should be Param extends [Container] ? Type[] : Type but that yields an unknown type | ||
execute: function execute() { | ||
return executeQuery(method, givenParams, findParameter, null); | ||
}, | ||
toTaxiQl: function toTaxiQl() { | ||
return generateQuery(method, givenParams, findParameter, null); | ||
}, | ||
}; | ||
const executionMethods = buildExecutionMethods(taxiQueryMethod, givenParams, findParameter); | ||
return Object.assign({ as: buildAs(taxiQueryMethod, givenParams, findParameter) }, executionMethods); | ||
}; | ||
@@ -109,3 +98,3 @@ } | ||
return { | ||
find: buildFind('query', criteriaParams), | ||
find: buildFind('find', criteriaParams), | ||
stream: buildFind('stream', criteriaParams), | ||
@@ -128,9 +117,45 @@ }; | ||
} | ||
function buildExecutionMethods(taxiQueryMethod, givenParams, findParameter, asParameters = null) { | ||
return { | ||
execute: () => { | ||
return generateAndExecuteQuery(taxiQueryMethod, 'query', givenParams, findParameter, asParameters); | ||
}, | ||
executeAsPromise: () => { | ||
return generateAndExecuteQuery(taxiQueryMethod, 'queryAsPromise', givenParams, findParameter, asParameters); | ||
}, | ||
executeAsEventStream: () => { | ||
return generateAndExecuteQuery(taxiQueryMethod, 'queryEventStream', givenParams, findParameter, asParameters); // TODO: does this need the error prop? | ||
}, | ||
executeAsPromiseBasedEventStream: () => { | ||
return generateAndExecuteQuery(taxiQueryMethod, 'queryEventStreamAsPromise', givenParams, findParameter, asParameters); | ||
}, | ||
toTaxiQl: () => { | ||
return generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters); | ||
}, | ||
}; | ||
} | ||
function taxiQl(taxiQl) { | ||
const executionMethods = { | ||
execute: () => { | ||
return executeQuery(taxiQl, 'query'); | ||
}, | ||
executeAsPromise: () => { | ||
return executeQuery(taxiQl, 'queryAsPromise'); | ||
}, | ||
executeAsEventStream: () => { | ||
return executeQuery(taxiQl, 'queryEventStream'); // TODO: does this need the error prop? | ||
}, | ||
executeAsPromiseBasedEventStream: () => { | ||
return executeQuery(taxiQl, 'queryEventStreamAsPromise'); | ||
}, | ||
}; | ||
return Object.assign({}, executionMethods); | ||
} | ||
return { | ||
given, | ||
find: buildFind('query', null), | ||
find: buildFind('find', null), | ||
stream: buildFind('stream', null), | ||
taxiQl, | ||
}; | ||
} | ||
exports.buildClient = buildClient; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEJBQTBCLENBQUMsc0RBQXNEO0FBQ2pGLG1DQUFnQztBQUdoQyx5Q0FLb0I7QUFDcEIscUNBQThDO0FBRzlDLFNBQVMsT0FBTyxDQUFDLEtBQVU7SUFDekIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFJRCxTQUFnQixPQUFPLENBQ3JCLEtBQStCO0lBRS9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQixDQUFDO0FBSkQsMEJBSUM7QUFlRCxTQUFTLGdCQUFnQjtJQUN2QixPQUFPLElBQUEsZUFBTSxHQUFFLENBQUM7QUFDbEIsQ0FBQztBQU1ELE1BQU0sY0FBYyxHQUE0QjtJQUM5QyxNQUFNLEVBQUUsbUJBQVU7Q0FDbkIsQ0FBQztBQU1GLFNBQWdCLFdBQVcsQ0FHekIsUUFBa0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQ3BFLE1BQU0sYUFBYSxtQ0FBUSxjQUFjLEdBQUssT0FBTyxDQUFFLENBQUM7SUE0QnhELFNBQVMsV0FBVyxDQUFDLEdBQVc7UUFDOUIsTUFBTSxTQUFTLEdBQUcsR0FBRzthQUNsQixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsTUFBTSxDQUNMLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBUSxFQUNqQyxRQUFRLENBQzRCLENBQUM7UUFDekMsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxTQUFTLGFBQWEsQ0FBQyxjQUFxQztRQUMxRCxJQUFJLGNBQWMsS0FBSyxJQUFJLEVBQUU7WUFDM0IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLDBCQUlDO0FBZ0NELGtDQXVVQztBQWhZRCxtQ0FBZ0M7QUFDaEMsK0JBQWdEO0FBR3ZDLDZGQUhZLG1CQUFZLE9BR1o7QUFFckIseUNBS29CO0FBQ3BCLHFDQUE4QztBQUc5QyxTQUFTLE9BQU8sQ0FBQyxLQUFVO0lBQ3pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBSUQsU0FBZ0IsT0FBTyxDQUNyQixLQUErQjtJQUUvQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakIsQ0FBQztBQWVELFNBQVMsZ0JBQWdCO0lBQ3ZCLE9BQU8sSUFBQSxlQUFNLEdBQUUsQ0FBQztBQUNsQixDQUFDO0FBTUQsTUFBTSxjQUFjLEdBQTRCO0lBQzlDLE1BQU0sRUFBRSxtQkFBVTtDQUNuQixDQUFDO0FBT0YsU0FBZ0IsV0FBVyxDQUd6QixRQUFrQixFQUFFLFdBQXdCLEVBQUUsVUFBeUIsRUFBRTtJQUN6RSxNQUFNLGFBQWEsbUNBQVEsY0FBYyxHQUFLLE9BQU8sQ0FBRSxDQUFDO0lBc0R4RCxTQUFTLFdBQVcsQ0FBQyxHQUFXO1FBQzlCLE1BQU0sU0FBUyxHQUFHLEdBQUc7YUFDbEIsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLE1BQU0sQ0FDTCxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQVEsRUFDakMsUUFBUSxDQUM0QixDQUFDO1FBQ3pDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsY0FBcUM7UUFDMUQsSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxV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 |
import { DatatypeContainer } from './client'; | ||
declare type CriteriaPredicateOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'not in' | 'like'; | ||
type CriteriaPredicateOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'not in' | 'like'; | ||
export interface SingleValueCriteriaPredicate { | ||
@@ -11,4 +11,4 @@ operator: CriteriaPredicateOperator; | ||
} | ||
declare type CriteriaPredicate = SingleValueCriteriaPredicate | MultiValueCriteriaPredicate; | ||
export declare type CriteriaElement = CriteriaPredicate | CriteriaComposition; | ||
type CriteriaPredicate = SingleValueCriteriaPredicate | MultiValueCriteriaPredicate; | ||
export type CriteriaElement = CriteriaPredicate | CriteriaComposition; | ||
export interface CriteriaComposition { | ||
@@ -31,5 +31,5 @@ and: CriteriaElement[]; | ||
} | ||
export declare type SimpleCriteriaBuilder<T extends DatatypeContainer<unknown>> = Omit<ComposingCriteriaBuilder<T>, 'and' | 'or'>; | ||
export type SimpleCriteriaBuilder<T extends DatatypeContainer<unknown>> = Omit<ComposingCriteriaBuilder<T>, 'and' | 'or'>; | ||
export declare function generateCriteriaString(datatype: string, criteriaElement: CriteriaElement): string; | ||
export declare function createCriteriaBuilder(): ComposingCriteriaBuilder<any>; | ||
export {}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.createCriteriaBuilder = exports.generateCriteriaString = void 0; | ||
exports.generateCriteriaString = generateCriteriaString; | ||
exports.createCriteriaBuilder = createCriteriaBuilder; | ||
function isSingleValueCriteriaPredicate(input) { | ||
@@ -12,3 +13,6 @@ return input.operator && input.value; | ||
if (isSingleValueCriteriaPredicate(criteriaElement)) { | ||
return `${datatype} ${criteriaElement.operator} "${criteriaElement.value}"`; | ||
const criteriaValue = typeof criteriaElement.value === 'number' | ||
? criteriaElement.value | ||
: `"${criteriaElement.value}"`; | ||
return `${datatype} ${criteriaElement.operator} ${criteriaValue}`; | ||
} | ||
@@ -33,3 +37,2 @@ else if (isMultiValueCriteriaPredicate(criteriaElement)) { | ||
} | ||
exports.generateCriteriaString = generateCriteriaString; | ||
function createCriteriaBuilder() { | ||
@@ -50,3 +53,2 @@ return { | ||
} | ||
exports.createCriteriaBuilder = createCriteriaBuilder; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyaXRlcmlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTJCQSxTQUFTLDhCQUE4QixDQUNyQyxLQUFVO0lBRVYsT0FBTyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQ3BDLEtBQVU7SUFFVixPQUFPLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN4QyxDQUFDO0FBOEJELFNBQWdCLHNCQUFzQixDQUNwQyxRQUFnQixFQUNoQixlQUFnQztJQUVoQyxJQUFJLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ25ELE9BQU8sR0FBRyxRQUFRLElBQUksZUFBZSxDQUFDLFFBQVEsS0FBSyxlQUFlLENBQUMsS0FBSyxHQUFHLENBQUM7S0FDN0U7U0FBTSxJQUFJLDZCQUE2QixDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ3pELE9BQU8sR0FBRyxRQUFRLElBQ2hCLGVBQWUsQ0FBQyxRQUNsQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDL0M7U0FBTTtRQUNMLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxHQUFHO2lCQUN2QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxjQUFjLEdBQUcsQ0FBQztTQUM5QjthQUFNO1lBQ0wsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLEVBQUU7aUJBQ3RDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEIsT0FBTyxJQUFJLGNBQWMsR0FBRyxDQUFDO1NBQzlCO0tBQ0Y7QUFDSCxDQUFDO0FBdkJELHdEQXVCQztBQUVELFNBQWdCLHFCQUFxQjtJQUNuQyxPQUFPO1FBQ0wsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzdDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMzQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDM0MsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM1QyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ25ELElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDOUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDOUQsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7S0FDOUQsQ0FBQztBQUNKLENBQUM7QUFkRCxzREFjQyJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyaXRlcmlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUVBLHdEQTJCQztBQUVELHNEQWNDO0FBbkZELFNBQVMsOEJBQThCLENBQ3JDLEtBQVU7SUFFVixPQUFPLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FDcEMsS0FBVTtJQUVWLE9BQU8sS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ3hDLENBQUM7QUE4QkQsU0FBZ0Isc0JBQXNCLENBQ3BDLFFBQWdCLEVBQ2hCLGVBQWdDO0lBRWhDLElBQUksOEJBQThCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUNwRCxNQUFNLGFBQWEsR0FDakIsT0FBTyxlQUFlLENBQUMsS0FBSyxLQUFLLFFBQVE7WUFDdkMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLO1lBQ3ZCLENBQUMsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUNuQyxPQUFPLEdBQUcsUUFBUSxJQUFJLGVBQWUsQ0FBQyxRQUFRLElBQUksYUFBYSxFQUFFLENBQUM7SUFDcEUsQ0FBQztTQUFNLElBQUksNkJBQTZCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUMxRCxPQUFPLEdBQUcsUUFBUSxJQUNoQixlQUFlLENBQUMsUUFDbEIsTUFBTSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hELENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRztpQkFDdkMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksY0FBYyxHQUFHLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsRUFBRTtpQkFDdEMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQixPQUFPLElBQUksY0FBYyxHQUFHLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IscUJBQXFCO0lBQ25DLE9BQU87UUFDTCxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDN0MsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMzQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzVDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkQsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM5QyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUM5RCxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUM5RCxDQUFDO0FBQ0osQ0FBQyJ9 |
@@ -0,0 +0,0 @@ export interface Logger { |
@@ -0,0 +0,0 @@ "use strict"; |
import { Observable } from 'rxjs'; | ||
export interface QueryClient { | ||
query<T>(query: string, clientQueryId: string): Observable<T>; | ||
stream<T>(query: string, clientQueryId: string): Observable<T>; | ||
query<T>(query: string, clientQueryId?: string): Observable<T>; | ||
queryAsPromise<T>(query: string, clientQueryId?: string): Promise<T>; | ||
queryEventStream<T>(query: string, clientQueryId: string): Observable<T>; | ||
queryEventStreamAsPromise<T>(query: string, clientQueryId: string): Promise<{ | ||
[Symbol.asyncIterator](): AsyncGenerator<Awaited<T>, void, unknown>; | ||
close: () => void; | ||
}>; | ||
} | ||
@@ -9,6 +14,12 @@ export declare class HttpQueryClient implements QueryClient { | ||
constructor(host: string); | ||
query<T>(query: string, clientQueryId?: string): Observable<T>; | ||
queryAsPromise<T>(query: string, clientQueryId?: string): Promise<T>; | ||
queryEventStream<T>(query: string, clientQueryId?: string): Observable<T>; | ||
query<T>(query: string, clientQueryId?: string): Observable<T>; | ||
stream<T>(query: string, clientQueryId?: string): Observable<T>; | ||
private getEventStream; | ||
queryEventStreamAsPromise<T>(query: string, clientQueryId?: string): EventSourceResponse<T>; | ||
private getEventStreamAsPromise; | ||
} | ||
export type EventSourceResponse<T> = Promise<{ | ||
[Symbol.asyncIterator](): AsyncGenerator<Awaited<T>, void, unknown>; | ||
close: () => void; | ||
}>; |
"use strict"; | ||
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } | ||
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) { | ||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); | ||
var g = generator.apply(thisArg, _arguments || []), i, q = []; | ||
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; | ||
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } | ||
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } | ||
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } | ||
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } | ||
function fulfill(value) { resume("next", value); } | ||
function reject(value) { resume("throw", value); } | ||
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
@@ -14,10 +27,5 @@ return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
} | ||
queryEventStream(query, clientQueryId) { | ||
const clientId = clientQueryId || (0, nanoid_1.nanoid)(); | ||
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`; | ||
return this.getEventStream(url); | ||
} | ||
query(query, clientQueryId) { | ||
const clientId = clientQueryId || (0, nanoid_1.nanoid)(); | ||
return (0, rxjs_1.from)(axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, { | ||
const request = axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, { | ||
headers: { | ||
@@ -27,6 +35,7 @@ 'Content-Type': 'text/plain', | ||
}, | ||
})).pipe((0, rxjs_1.map)((response) => response.data), (0, rxjs_1.catchError)((error) => { | ||
}); | ||
return (0, rxjs_1.from)(request).pipe((0, rxjs_1.map)((response) => response.data), (0, rxjs_1.catchError)((error) => { | ||
return error.response | ||
? (0, rxjs_1.of)({ | ||
error: error.response.data, | ||
error: error.response.data ? error.response.data : error.response, | ||
query, | ||
@@ -37,6 +46,5 @@ }) | ||
} | ||
// TODO Implement properly | ||
stream(query, clientQueryId) { | ||
queryAsPromise(query, clientQueryId) { | ||
const clientId = clientQueryId || (0, nanoid_1.nanoid)(); | ||
const obs1 = (0, rxjs_1.from)(axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, { | ||
const request = axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, { | ||
headers: { | ||
@@ -46,25 +54,20 @@ 'Content-Type': 'text/plain', | ||
}, | ||
})).pipe((0, rxjs_1.map)((response) => response.data), (0, rxjs_1.catchError)((error) => { | ||
return error.response | ||
? (0, rxjs_1.of)({ | ||
error: error.response.data, | ||
}); | ||
return request | ||
.then((response) => response.data) | ||
.catch((error) => { | ||
if (error.response) { | ||
return Promise.resolve({ | ||
error: error.response.data ? error.response.data : error.response, | ||
query, | ||
}) | ||
: (0, rxjs_1.of)({ error: 'UNKNOWN_ERROR' }); | ||
})); | ||
const obs2 = (0, rxjs_1.from)(axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientQueryId}`, query, { | ||
headers: { | ||
'Content-Type': 'text/plain', | ||
Accept: 'application/json', | ||
}, | ||
})).pipe((0, rxjs_1.map)((response) => response.data), (0, rxjs_1.catchError)((error) => { | ||
return error.response | ||
? (0, rxjs_1.of)({ | ||
error: error.response.data, | ||
query, | ||
}) | ||
: (0, rxjs_1.of)({ error: 'UNKNOWN_ERROR' }); | ||
})); | ||
return (0, rxjs_1.zip)(obs1, obs2); | ||
}); | ||
} | ||
return Promise.resolve({ error: 'UNKNOWN_ERROR' }); | ||
}); | ||
} | ||
queryEventStream(query, clientQueryId) { | ||
const clientId = clientQueryId || (0, nanoid_1.nanoid)(); | ||
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`; | ||
return this.getEventStream(url); | ||
} | ||
getEventStream(url) { | ||
@@ -74,2 +77,6 @@ return new rxjs_1.Observable((observer) => { | ||
const eventSource = new EventSource(url); | ||
let isOpen = false; | ||
eventSource.onopen = () => { | ||
isOpen = true; | ||
}; | ||
eventSource.onmessage = (event) => { | ||
@@ -81,7 +88,13 @@ // Check for errors: | ||
eventSource.onerror = () => { | ||
// Note: We're now sending errors down as an error message, so | ||
// assume that all onerror signals are just completion. | ||
// if (messageReceived && errorAfterMessageIndicatesClosed) { | ||
console.log('Received error event - treating this as a close signal'); | ||
observer.complete(); | ||
// TODO: how do we actually handle error handling here (other than a connection error, which is already a hack)?? | ||
if (!isOpen) { | ||
observer.error('A connection error occurred'); | ||
} | ||
else { | ||
// Note: We're now sending errors down as an error message, so | ||
// assume that all onerror signals are just completion. | ||
console.log('Received error event - treating this as a close signal'); | ||
observer.complete(); | ||
} | ||
// } else { | ||
@@ -98,4 +111,83 @@ // console.log('Received error event' + JSON.stringify(error)); | ||
} | ||
queryEventStreamAsPromise(query, clientQueryId) { | ||
const clientId = clientQueryId || (0, nanoid_1.nanoid)(); | ||
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`; | ||
return this.getEventStreamAsPromise(url); | ||
} | ||
getEventStreamAsPromise(url) { | ||
let isClosed = null; | ||
let isErrored = false; | ||
const eventQueue = []; | ||
let resolveEventAvailable; | ||
let rejectEventError; | ||
let eventAvailableSignal = new Promise((res, rej) => { | ||
resolveEventAvailable = res; | ||
rejectEventError = rej; | ||
}); | ||
const eventSource = new EventSource(url); | ||
eventSource.onopen = () => { | ||
isClosed = false; | ||
}; | ||
eventSource.onmessage = (event) => { | ||
if (isClosed || isErrored) | ||
return; | ||
try { | ||
const parsedData = JSON.parse(event.data); | ||
eventQueue.push(parsedData); | ||
resolveEventAvailable(parsedData); | ||
eventAvailableSignal = new Promise((res, rej) => { | ||
resolveEventAvailable = res; | ||
rejectEventError = rej; | ||
}); | ||
} | ||
catch (error) { | ||
console.error('Failed to parse message', error); | ||
rejectEventError(error); | ||
} | ||
}; | ||
eventSource.onerror = (event) => { | ||
isErrored = true; | ||
if (isClosed === null) { | ||
console.error('EventSource encountered an error:', event); | ||
rejectEventError(new Error('A connection error occurred')); | ||
} | ||
else { | ||
// Note: We're now sending errors down as an error message, so | ||
// assume that all onerror signals are just completion. | ||
console.log('Received error event - treating this as a close signal'); | ||
} | ||
close(); // Clean up resources on error. | ||
}; | ||
const close = () => { | ||
if (!isClosed || isErrored) { | ||
isClosed = true; | ||
eventSource.close(); | ||
resolveEventAvailable(null); // Signal completion to pending consumers. | ||
} | ||
}; | ||
const asyncIterator = function () { | ||
return __asyncGenerator(this, arguments, function* () { | ||
while (!isClosed && !isErrored) { | ||
while (eventQueue.length > 0) { | ||
yield yield __await(eventQueue.shift()); | ||
} | ||
try { | ||
const nextValue = yield __await(eventAvailableSignal); | ||
if (nextValue === null) | ||
break; | ||
} | ||
catch (error) { | ||
console.error('Error during event iteration:', error); | ||
throw error; | ||
} | ||
} | ||
}); | ||
}; | ||
return Promise.resolve({ | ||
[Symbol.asyncIterator]: asyncIterator, | ||
close, | ||
}); | ||
} | ||
} | ||
exports.HttpQueryClient = HttpQueryClient; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLG1DQUFnQztBQUNoQywrQkFBa0U7QUFRbEUsTUFBYSxlQUFlO0lBQzFCLFlBQTZCLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUcsQ0FBQztJQUU3QyxnQkFBZ0IsQ0FBSSxLQUFhLEVBQUUsYUFBc0I7UUFDdkQsTUFBTSxRQUFRLEdBQUcsYUFBYSxJQUFJLElBQUEsZUFBTSxHQUFFLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsR0FDVixJQUFJLENBQUMsSUFDUCw2QkFBNkIsUUFBUSxVQUFVLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUksS0FBYSxFQUFFLGFBQXNCO1FBQzVDLE1BQU0sUUFBUSxHQUFHLGFBQWEsSUFBSSxJQUFBLGVBQU0sR0FBRSxDQUFDO1FBRTNDLE9BQU8sSUFBQSxXQUFJLEVBQ1QsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLDZCQUE2QixRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUU7WUFDckUsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxZQUFZO2dCQUM1QixNQUFNLEVBQUUsa0JBQWtCO2FBQzNCO1NBQ0YsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUNKLElBQUEsVUFBRyxFQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQ2hDLElBQUEsaUJBQVUsRUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDLFFBQVE7Z0JBQ25CLENBQUMsQ0FBQyxJQUFBLFNBQUUs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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQixtQ0FBZ0M7QUFDaEMsK0JBQTZEO0FBa0I3RCxNQUFhLGVBQWU7SUFDMUIsWUFBNkIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFBRyxDQUFDO0lBRTdDLEtBQUssQ0FBSSxLQUFhLEVBQUUsYUFBc0I7UUFDNUMsTUFBTSxRQUFRLEdBQUcsYUFBYSxJQUFJLElBQUEsZUFBTSxHQUFFLENBQUM7UUFFM0MsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLElBQUksQ0FDeEIsR0FBRyxJQUFJLENBQUMsSUFBSSw2QkFBNkIsUUFBUSxFQUFFLEVBQ25ELEtBQUssRUFDTDtZQUNFLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsWUFBWTtnQkFDNUIsTUFBTSxFQUFFLGtCQUFrQjthQUMzQjtTQUNGLENBQ0YsQ0FBQztRQUVGLE9BQU8sSUFBQSxXQUFJLEVBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN2QixJQUFBLFVBQUcsRUFBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUNoQyxJQUFBLGlCQUFVLEVBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQyxRQUFRO2dCQUNuQixDQUFDLENBQUMsSUFBQSxTQUFFLEVBQUM7b0JBQ0QsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVE7b0JBQ2pFLEtBQUs7aUJBQ04sQ0FBQztnQkFDSixDQUFDLENBQUMsSUFBQSxTQUFFLEVBQUMsRUFBRSxLQUFLLEVBQUUs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 |
export * from './lib/client'; | ||
export * from './lib/logger'; | ||
export * from './lib/query-client'; |
@@ -0,0 +0,0 @@ export * from './lib/client'; |
@@ -1,7 +0,7 @@ | ||
import 'reflect-metadata'; | ||
import { Observable } from 'rxjs'; | ||
import { Observable, Subscription } from 'rxjs'; | ||
export { Subscription }; | ||
import { ComposingCriteriaBuilder, CriteriaElement } from './criteria'; | ||
import { Logger } from './logger'; | ||
import { QueryClient } from './query-client'; | ||
export declare type DatatypeName = string; | ||
import { EventSourceResponse, QueryClient } from './query-client'; | ||
export type DatatypeName = string; | ||
export declare function asArray<Value>(input: DatatypeContainer<Value>): [DatatypeContainer<Value>]; | ||
@@ -12,7 +12,7 @@ export interface DatatypeContainer<Value> { | ||
} | ||
export declare type AnyDatatypeContainer = DatatypeContainer<any>; | ||
declare type DatatypeMapping = { | ||
export type AnyDatatypeContainer = DatatypeContainer<any>; | ||
export type DatatypeMapping = { | ||
[key: string]: DatatypeContainer<any>; | ||
}; | ||
export declare type TaxonomyType<Mapping extends DatatypeMapping> = { | ||
export type TaxonomyType<Mapping extends DatatypeMapping> = { | ||
[key in keyof Mapping]: DatatypeContainer<Mapping[key]['value']>; | ||
@@ -23,58 +23,157 @@ }; | ||
} | ||
declare type FindParam<T, M extends DatatypeContainer<T>> = M | [M]; | ||
export declare function buildClient<TaxonomyMapping extends DatatypeMapping, Taxonomy extends TaxonomyType<TaxonomyMapping>>(taxonomy: Taxonomy, queryClient: QueryClient, options: ClientOptions): { | ||
type FindParam<T, M extends DatatypeContainer<T>> = M | [M]; | ||
export declare function buildClient<TaxonomyMapping extends DatatypeMapping, Taxonomy extends TaxonomyType<TaxonomyMapping>>(taxonomy: Taxonomy, queryClient: QueryClient, options?: ClientOptions): { | ||
given: <K, T extends DatatypeContainer<K>>(type: T, criteria: T["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T>) => CriteriaElement)) => { | ||
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
} & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): { | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
toTaxiQl: () => string; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">; | ||
}; | ||
and: <K_1, T_2 extends DatatypeContainer<K_1>>(type: T_2, criteria: T_2["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T_2>) => CriteriaElement)) => { | ||
and: <K_1, T_1 extends DatatypeContainer<K_1>>(type: T_1, criteria: T_1["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T_1>) => CriteriaElement)) => { | ||
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
} & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): { | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
toTaxiQl: () => string; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">; | ||
}; | ||
and: any; | ||
and: /*elided*/ any; | ||
}; | ||
}; | ||
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
} & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): { | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>; | ||
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => { | ||
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => { | ||
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & { | ||
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{ | ||
execute: () => Observable<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromise: () => Promise<{ | ||
error: any; | ||
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>; | ||
toTaxiQl: () => string; | ||
}; | ||
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>; | ||
toTaxiQl: () => string; | ||
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">; | ||
}; | ||
taxiQl: <R>(taxiQl: string) => { | ||
execute: () => Observable<R | { | ||
error: any; | ||
}>; | ||
executeAsPromise: () => Promise<R | { | ||
error: any; | ||
}>; | ||
executeAsEventStream: () => Observable<R>; | ||
executeAsPromiseBasedEventStream: () => EventSourceResponse<R>; | ||
}; | ||
}; | ||
export {}; |
@@ -1,3 +0,5 @@ | ||
import 'reflect-metadata'; // TODO Does this belong here or to the consumer code? | ||
import { nanoid } from 'nanoid'; | ||
import { Subscription } from 'rxjs'; | ||
// export for consumers of this library | ||
export { Subscription }; | ||
import { createCriteriaBuilder, generateCriteriaString, } from './criteria'; | ||
@@ -17,3 +19,3 @@ import { noopLogger } from './logger'; | ||
}; | ||
export function buildClient(taxonomy, queryClient, options) { | ||
export function buildClient(taxonomy, queryClient, options = {}) { | ||
const actualOptions = { ...defaultOptions, ...options }; | ||
@@ -31,5 +33,3 @@ function getDatatype(key) { | ||
const givenBlock = Object.entries(criteriaParams) | ||
/* eslint-disable @typescript-eslint/no-non-null-assertion */ | ||
.map(([key, value]) => [getDatatype(key), value.value]) | ||
/* eslint-enable @typescript-eslint/no-non-null-assertion */ | ||
.map(([key, value]) => { | ||
@@ -57,3 +57,3 @@ if (typeof value !== 'function') { | ||
} | ||
function generateQuery(method, givenParams, findParameter, asParameters) { | ||
function generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters) { | ||
const given = generateGiven(givenParams); | ||
@@ -64,35 +64,27 @@ const asBlock = generateAs(asParameters); | ||
: findParameter.name; | ||
const arrayNotifier = isArray(findParameter) ? `[]` : ''; | ||
const arrayNotifier = isArray(findParameter) || taxiQueryMethod === 'stream' ? `[]` : ''; | ||
const asString = asParameters !== null ? `\n${asBlock}${arrayNotifier}` : ''; | ||
return `${given}${method === 'query' ? 'find' : 'stream'} { ${findBlock} }${asString}`; | ||
return `${given}${taxiQueryMethod} { ${findBlock} }${asString}`; | ||
} | ||
function executeQuery(method, givenParams, findParameter, asParameters) { | ||
const query = generateQuery(method, givenParams, findParameter, asParameters); | ||
actualOptions.logger.info(query); | ||
return queryClient[method](query, generateRandomId()); | ||
function generateAndExecuteQuery(taxiQueryMethod, transportMethod, givenParams, findParameter, asParameters) { | ||
const query = generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters); | ||
return executeQuery(query, transportMethod); | ||
} | ||
function buildAs(method, givenParams, findParameter) { | ||
function executeQuery(taxiQl, transportMethod) { | ||
actualOptions.logger.info(taxiQl); | ||
return queryClient[transportMethod](taxiQl, generateRandomId()); | ||
} | ||
function buildAs(taxiQueryMethod, givenParams, findParameter) { | ||
return function as(asParams) { | ||
const asParameters = Object.entries(asParams).map(([key, value]) => [key, getDatatype(value.name)]); | ||
return { | ||
execute: function execute() { | ||
return executeQuery(method, givenParams, findParameter, asParameters); | ||
}, | ||
toTaxiQl: function toTaxiQl() { | ||
return generateQuery(method, givenParams, findParameter, asParameters); | ||
}, | ||
}; | ||
const methods = buildExecutionMethods(taxiQueryMethod, givenParams, findParameter, asParameters); | ||
return methods; | ||
}; | ||
} | ||
function buildFind(method, givenParams) { | ||
function buildFind(taxiQueryMethod, givenParams) { | ||
return function find(findParameter) { | ||
const executionMethods = buildExecutionMethods(taxiQueryMethod, givenParams, findParameter); | ||
return { | ||
as: buildAs(method, givenParams, findParameter), | ||
// TODO The return type here should be Param extends [Container] ? Type[] : Type but that yields an unknown type | ||
execute: function execute() { | ||
return executeQuery(method, givenParams, findParameter, null); | ||
}, | ||
toTaxiQl: function toTaxiQl() { | ||
return generateQuery(method, givenParams, findParameter, null); | ||
}, | ||
as: buildAs(taxiQueryMethod, givenParams, findParameter), | ||
...executionMethods, | ||
}; | ||
@@ -104,3 +96,3 @@ }; | ||
return { | ||
find: buildFind('query', criteriaParams), | ||
find: buildFind('find', criteriaParams), | ||
stream: buildFind('stream', criteriaParams), | ||
@@ -132,8 +124,47 @@ }; | ||
} | ||
function buildExecutionMethods(taxiQueryMethod, givenParams, findParameter, asParameters = null) { | ||
return { | ||
execute: () => { | ||
return generateAndExecuteQuery(taxiQueryMethod, 'query', givenParams, findParameter, asParameters); | ||
}, | ||
executeAsPromise: () => { | ||
return generateAndExecuteQuery(taxiQueryMethod, 'queryAsPromise', givenParams, findParameter, asParameters); | ||
}, | ||
executeAsEventStream: () => { | ||
return generateAndExecuteQuery(taxiQueryMethod, 'queryEventStream', givenParams, findParameter, asParameters); // TODO: does this need the error prop? | ||
}, | ||
executeAsPromiseBasedEventStream: () => { | ||
return generateAndExecuteQuery(taxiQueryMethod, 'queryEventStreamAsPromise', givenParams, findParameter, asParameters); | ||
}, | ||
toTaxiQl: () => { | ||
return generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters); | ||
}, | ||
}; | ||
} | ||
function taxiQl(taxiQl) { | ||
const executionMethods = { | ||
execute: () => { | ||
return executeQuery(taxiQl, 'query'); | ||
}, | ||
executeAsPromise: () => { | ||
return executeQuery(taxiQl, 'queryAsPromise'); | ||
}, | ||
executeAsEventStream: () => { | ||
return executeQuery(taxiQl, 'queryEventStream'); // TODO: does this need the error prop? | ||
}, | ||
executeAsPromiseBasedEventStream: () => { | ||
return executeQuery(taxiQl, 'queryEventStreamAsPromise'); | ||
}, | ||
}; | ||
return { | ||
...executionMethods, | ||
}; | ||
} | ||
return { | ||
given, | ||
find: buildFind('query', null), | ||
find: buildFind('find', null), | ||
stream: buildFind('stream', null), | ||
taxiQl, | ||
}; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLHNEQUFzRDtBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR2hDLE9BQU8sRUFFTCxxQkFBcUIsRUFFckIsc0JBQXNCLEdBQ3ZCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHOUMsU0FBUyxPQUFPLENBQUMsS0FBVTtJQUN6QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUlELE1BQU0sVUFBVSxPQUFPLENBQ3JCLEtBQStCO0lBRS9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQixDQUFDO0FBZUQsU0FBUyxnQkFBZ0I7SUFDdkIsT0FBTyxNQUFNLEVBQUUsQ0FBQztBQUNsQixDQUFDO0FBTUQsTUFBTSxjQUFjLEdBQTRCO0lBQzlDLE1BQU0sRUFBRSxVQUFVO0NBQ25CLENBQUM7QUFNRixNQUFNLFVBQVUsV0FBVyxDQUd6QixRQUFrQixFQUFFLFdBQXdCLEVBQUUsT0FBc0I7SUFDcEUsTUFBTSxhQUFhLEdBQUcsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBNEJ4RCxTQUFTLFdBQVcsQ0FBQyxHQUFXO1FBQzlCLE1BQU0sU0FBUyxHQUFHLEdBQUc7YUFDbEIsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLE1BQU0sQ0FDTCxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQVEsRUFDakMsUUFBUSxDQUM0QixDQUFDO1FBQ3pDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsY0FB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELHVDQUF1QztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFFeEIsT0FBTyxFQUVMLHFCQUFxQixFQUVyQixzQkFBc0IsR0FDdkIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUc5QyxTQUFTLE9BQU8sQ0FBQyxLQUFVO0lBQ3pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBSUQsTUFBTSxVQUFVLE9BQU8sQ0FDckIsS0FBK0I7SUFFL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pCLENBQUM7QUFlRCxTQUFTLGdCQUFnQjtJQUN2QixPQUFPLE1BQU0sRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFNRCxNQUFNLGNBQWMsR0FBNEI7SUFDOUMsTUFBTSxFQUFFLFVBQVU7Q0FDbkIsQ0FBQztBQU9GLE1BQU0sVUFBVSxXQUFXLENBR3pCLFFBQWtCLEVBQUUsV0FBd0IsRUFBRSxVQUF5QixFQUFFO0lBQ3pFLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQXNEeEQsU0FBUyxXQUFXLENBQUMsR0FBVztRQUM5QixNQUFNLFNBQVMsR0FBRyxHQUFHO2FBQ2xCLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixNQUFNLENBQ0wsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFRLEVBQ2pDLFFBQVEsQ0FDNEIsQ0FBQztRQUN6QyxPQUFP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 |
import { DatatypeContainer } from './client'; | ||
declare type CriteriaPredicateOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'not in' | 'like'; | ||
type CriteriaPredicateOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'not in' | 'like'; | ||
export interface SingleValueCriteriaPredicate { | ||
@@ -11,4 +11,4 @@ operator: CriteriaPredicateOperator; | ||
} | ||
declare type CriteriaPredicate = SingleValueCriteriaPredicate | MultiValueCriteriaPredicate; | ||
export declare type CriteriaElement = CriteriaPredicate | CriteriaComposition; | ||
type CriteriaPredicate = SingleValueCriteriaPredicate | MultiValueCriteriaPredicate; | ||
export type CriteriaElement = CriteriaPredicate | CriteriaComposition; | ||
export interface CriteriaComposition { | ||
@@ -31,5 +31,5 @@ and: CriteriaElement[]; | ||
} | ||
export declare type SimpleCriteriaBuilder<T extends DatatypeContainer<unknown>> = Omit<ComposingCriteriaBuilder<T>, 'and' | 'or'>; | ||
export type SimpleCriteriaBuilder<T extends DatatypeContainer<unknown>> = Omit<ComposingCriteriaBuilder<T>, 'and' | 'or'>; | ||
export declare function generateCriteriaString(datatype: string, criteriaElement: CriteriaElement): string; | ||
export declare function createCriteriaBuilder(): ComposingCriteriaBuilder<any>; | ||
export {}; |
@@ -9,3 +9,6 @@ function isSingleValueCriteriaPredicate(input) { | ||
if (isSingleValueCriteriaPredicate(criteriaElement)) { | ||
return `${datatype} ${criteriaElement.operator} "${criteriaElement.value}"`; | ||
const criteriaValue = typeof criteriaElement.value === 'number' | ||
? criteriaElement.value | ||
: `"${criteriaElement.value}"`; | ||
return `${datatype} ${criteriaElement.operator} ${criteriaValue}`; | ||
} | ||
@@ -45,2 +48,2 @@ else if (isMultiValueCriteriaPredicate(criteriaElement)) { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyaXRlcmlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCQSxTQUFTLDhCQUE4QixDQUNyQyxLQUFVO0lBRVYsT0FBTyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQ3BDLEtBQVU7SUFFVixPQUFPLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN4QyxDQUFDO0FBOEJELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsUUFBZ0IsRUFDaEIsZUFBZ0M7SUFFaEMsSUFBSSw4QkFBOEIsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNuRCxPQUFPLEdBQUcsUUFBUSxJQUFJLGVBQWUsQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLEtBQUssR0FBRyxDQUFDO0tBQzdFO1NBQU0sSUFBSSw2QkFBNkIsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUN6RCxPQUFPLEdBQUcsUUFBUSxJQUNoQixlQUFlLENBQUMsUUFDbEIsTUFBTSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0tBQy9DO1NBQU07UUFDTCxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRztpQkFDdkMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksY0FBYyxHQUFHLENBQUM7U0FDOUI7YUFBTTtZQUNMLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxFQUFFO2lCQUN0QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxjQUFjLEdBQUcsQ0FBQztTQUM5QjtLQUNGO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsT0FBTztRQUNMLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM3QyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDM0MsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDNUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNuRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzlDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBd0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzlELEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBd0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQzlELENBQUM7QUFDSixDQUFDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyaXRlcmlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCQSxTQUFTLDhCQUE4QixDQUNyQyxLQUFVO0lBRVYsT0FBTyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQ3BDLEtBQVU7SUFFVixPQUFPLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN4QyxDQUFDO0FBOEJELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsUUFBZ0IsRUFDaEIsZUFBZ0M7SUFFaEMsSUFBSSw4QkFBOEIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3BELE1BQU0sYUFBYSxHQUNqQixPQUFPLGVBQWUsQ0FBQyxLQUFLLEtBQUssUUFBUTtZQUN2QyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUs7WUFDdkIsQ0FBQyxDQUFDLElBQUksZUFBZSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxRQUFRLElBQUksZUFBZSxDQUFDLFFBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNwRSxDQUFDO1NBQU0sSUFBSSw2QkFBNkIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sR0FBRyxRQUFRLElBQ2hCLGVBQWUsQ0FBQyxRQUNsQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEQsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxHQUFHO2lCQUN2QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxjQUFjLEdBQUcsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxFQUFFO2lCQUN0QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxjQUFjLEdBQUcsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU87UUFDTCxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDN0MsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMzQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzVDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkQsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM5QyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUM5RCxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUM5RCxDQUFDO0FBQ0osQ0FBQyJ9 |
@@ -0,0 +0,0 @@ export interface Logger { |
@@ -0,0 +0,0 @@ /* eslint @typescript-eslint/no-empty-function: "off" */ |
import { Observable } from 'rxjs'; | ||
export interface QueryClient { | ||
query<T>(query: string, clientQueryId: string): Observable<T>; | ||
stream<T>(query: string, clientQueryId: string): Observable<T>; | ||
query<T>(query: string, clientQueryId?: string): Observable<T>; | ||
queryAsPromise<T>(query: string, clientQueryId?: string): Promise<T>; | ||
queryEventStream<T>(query: string, clientQueryId: string): Observable<T>; | ||
queryEventStreamAsPromise<T>(query: string, clientQueryId: string): Promise<{ | ||
[Symbol.asyncIterator](): AsyncGenerator<Awaited<T>, void, unknown>; | ||
close: () => void; | ||
}>; | ||
} | ||
@@ -9,6 +14,12 @@ export declare class HttpQueryClient implements QueryClient { | ||
constructor(host: string); | ||
query<T>(query: string, clientQueryId?: string): Observable<T>; | ||
queryAsPromise<T>(query: string, clientQueryId?: string): Promise<T>; | ||
queryEventStream<T>(query: string, clientQueryId?: string): Observable<T>; | ||
query<T>(query: string, clientQueryId?: string): Observable<T>; | ||
stream<T>(query: string, clientQueryId?: string): Observable<T>; | ||
private getEventStream; | ||
queryEventStreamAsPromise<T>(query: string, clientQueryId?: string): EventSourceResponse<T>; | ||
private getEventStreamAsPromise; | ||
} | ||
export type EventSourceResponse<T> = Promise<{ | ||
[Symbol.asyncIterator](): AsyncGenerator<Awaited<T>, void, unknown>; | ||
close: () => void; | ||
}>; |
import axios from 'axios'; | ||
import { nanoid } from 'nanoid'; | ||
import { catchError, from, map, Observable, of, zip } from 'rxjs'; | ||
import { catchError, from, map, Observable, of } from 'rxjs'; | ||
export class HttpQueryClient { | ||
@@ -9,10 +9,5 @@ host; | ||
} | ||
queryEventStream(query, clientQueryId) { | ||
const clientId = clientQueryId || nanoid(); | ||
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`; | ||
return this.getEventStream(url); | ||
} | ||
query(query, clientQueryId) { | ||
const clientId = clientQueryId || nanoid(); | ||
return from(axios.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, { | ||
const request = axios.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, { | ||
headers: { | ||
@@ -22,6 +17,7 @@ 'Content-Type': 'text/plain', | ||
}, | ||
})).pipe(map((response) => response.data), catchError((error) => { | ||
}); | ||
return from(request).pipe(map((response) => response.data), catchError((error) => { | ||
return error.response | ||
? of({ | ||
error: error.response.data, | ||
error: error.response.data ? error.response.data : error.response, | ||
query, | ||
@@ -32,6 +28,5 @@ }) | ||
} | ||
// TODO Implement properly | ||
stream(query, clientQueryId) { | ||
queryAsPromise(query, clientQueryId) { | ||
const clientId = clientQueryId || nanoid(); | ||
const obs1 = from(axios.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, { | ||
const request = axios.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, { | ||
headers: { | ||
@@ -41,25 +36,20 @@ 'Content-Type': 'text/plain', | ||
}, | ||
})).pipe(map((response) => response.data), catchError((error) => { | ||
return error.response | ||
? of({ | ||
error: error.response.data, | ||
}); | ||
return request | ||
.then((response) => response.data) | ||
.catch((error) => { | ||
if (error.response) { | ||
return Promise.resolve({ | ||
error: error.response.data ? error.response.data : error.response, | ||
query, | ||
}) | ||
: of({ error: 'UNKNOWN_ERROR' }); | ||
})); | ||
const obs2 = from(axios.post(`${this.host}/api/taxiql?clientQueryId=${clientQueryId}`, query, { | ||
headers: { | ||
'Content-Type': 'text/plain', | ||
Accept: 'application/json', | ||
}, | ||
})).pipe(map((response) => response.data), catchError((error) => { | ||
return error.response | ||
? of({ | ||
error: error.response.data, | ||
query, | ||
}) | ||
: of({ error: 'UNKNOWN_ERROR' }); | ||
})); | ||
return zip(obs1, obs2); | ||
}); | ||
} | ||
return Promise.resolve({ error: 'UNKNOWN_ERROR' }); | ||
}); | ||
} | ||
queryEventStream(query, clientQueryId) { | ||
const clientId = clientQueryId || nanoid(); | ||
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`; | ||
return this.getEventStream(url); | ||
} | ||
getEventStream(url) { | ||
@@ -69,2 +59,6 @@ return new Observable((observer) => { | ||
const eventSource = new EventSource(url); | ||
let isOpen = false; | ||
eventSource.onopen = () => { | ||
isOpen = true; | ||
}; | ||
eventSource.onmessage = (event) => { | ||
@@ -76,7 +70,13 @@ // Check for errors: | ||
eventSource.onerror = () => { | ||
// Note: We're now sending errors down as an error message, so | ||
// assume that all onerror signals are just completion. | ||
// if (messageReceived && errorAfterMessageIndicatesClosed) { | ||
console.log('Received error event - treating this as a close signal'); | ||
observer.complete(); | ||
// TODO: how do we actually handle error handling here (other than a connection error, which is already a hack)?? | ||
if (!isOpen) { | ||
observer.error('A connection error occurred'); | ||
} | ||
else { | ||
// Note: We're now sending errors down as an error message, so | ||
// assume that all onerror signals are just completion. | ||
console.log('Received error event - treating this as a close signal'); | ||
observer.complete(); | ||
} | ||
// } else { | ||
@@ -93,3 +93,80 @@ // console.log('Received error event' + JSON.stringify(error)); | ||
} | ||
queryEventStreamAsPromise(query, clientQueryId) { | ||
const clientId = clientQueryId || nanoid(); | ||
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`; | ||
return this.getEventStreamAsPromise(url); | ||
} | ||
getEventStreamAsPromise(url) { | ||
let isClosed = null; | ||
let isErrored = false; | ||
const eventQueue = []; | ||
let resolveEventAvailable; | ||
let rejectEventError; | ||
let eventAvailableSignal = new Promise((res, rej) => { | ||
resolveEventAvailable = res; | ||
rejectEventError = rej; | ||
}); | ||
const eventSource = new EventSource(url); | ||
eventSource.onopen = () => { | ||
isClosed = false; | ||
}; | ||
eventSource.onmessage = (event) => { | ||
if (isClosed || isErrored) | ||
return; | ||
try { | ||
const parsedData = JSON.parse(event.data); | ||
eventQueue.push(parsedData); | ||
resolveEventAvailable(parsedData); | ||
eventAvailableSignal = new Promise((res, rej) => { | ||
resolveEventAvailable = res; | ||
rejectEventError = rej; | ||
}); | ||
} | ||
catch (error) { | ||
console.error('Failed to parse message', error); | ||
rejectEventError(error); | ||
} | ||
}; | ||
eventSource.onerror = (event) => { | ||
isErrored = true; | ||
if (isClosed === null) { | ||
console.error('EventSource encountered an error:', event); | ||
rejectEventError(new Error('A connection error occurred')); | ||
} | ||
else { | ||
// Note: We're now sending errors down as an error message, so | ||
// assume that all onerror signals are just completion. | ||
console.log('Received error event - treating this as a close signal'); | ||
} | ||
close(); // Clean up resources on error. | ||
}; | ||
const close = () => { | ||
if (!isClosed || isErrored) { | ||
isClosed = true; | ||
eventSource.close(); | ||
resolveEventAvailable(null); // Signal completion to pending consumers. | ||
} | ||
}; | ||
const asyncIterator = async function* () { | ||
while (!isClosed && !isErrored) { | ||
while (eventQueue.length > 0) { | ||
yield eventQueue.shift(); | ||
} | ||
try { | ||
const nextValue = await eventAvailableSignal; | ||
if (nextValue === null) | ||
break; | ||
} | ||
catch (error) { | ||
console.error('Error during event iteration:', error); | ||
throw error; | ||
} | ||
} | ||
}; | ||
return Promise.resolve({ | ||
[Symbol.asyncIterator]: asyncIterator, | ||
close, | ||
}); | ||
} | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUWxFLE1BQU0sT0FBTyxlQUFlO0lBQ0c7SUFBN0IsWUFBNkIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFBRyxDQUFDO0lBRTdDLGdCQUFnQixDQUFJLEtBQWEsRUFBRSxhQUFzQjtRQUN2RCxNQUFNLFFBQVEsR0FBRyxhQUFhLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsR0FDVixJQUFJLENBQUMsSUFDUCw2QkFBNkIsUUFBUSxVQUFVLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUksS0FBYSxFQUFFLGFBQXNCO1FBQzVDLE1BQU0sUUFBUSxHQUFHLGFBQWEsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUUzQyxPQUFPLElBQUksQ0FDVCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksNkJBQTZCLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRTtZQUNyRSxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLFlBQVk7Z0JBQzVCLE1BQU0sRUFBRSxrQkFBa0I7YUFDM0I7U0FDRixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFrQjdELE1BQU0sT0FBTyxlQUFlO0lBQ0c7SUFBN0IsWUFBNkIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFBRyxDQUFDO0lBRTdDLEtBQUssQ0FBSSxLQUFhLEVBQUUsYUFBc0I7UUFDNUMsTUFBTSxRQUFRLEdBQUcsYUFBYSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBRTNDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQ3hCLEdBQUcsSUFBSSxDQUFDLElBQUksNkJBQTZCLFFBQVEsRUFBRSxFQUNuRCxLQUFLLEVBQ0w7WUFDRSxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLFlBQVk7Z0JBQzVCLE1BQU0sRUFBRSxrQkFBa0I7YUFDM0I7U0FDRixDQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUNoQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQyxRQUFRO2dCQUNuQixDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNELEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUss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 |
@@ -5,2 +5,18 @@ # Changelog | ||
### [0.1.1](https://github.com/orbitalapi/typescript-client/compare/v0.1.0...v0.1.1) (2025-01-14) | ||
## 0.1.0 (2025-01-14) | ||
### Features | ||
* Add EventStream and Promise based transport methods ([47c2d3e](https://github.com/orbitalapi/typescript-client/commit/47c2d3e43f6193cac0852256a1dbc82fee4a7eed)) | ||
* Add taxiQl string based query execution ([f818867](https://github.com/orbitalapi/typescript-client/commit/f81886716cba8480bc4822ac668e8fbc8d54c41f)) | ||
* React SDK example ([61fc53a](https://github.com/orbitalapi/typescript-client/commit/61fc53abd8cc3cba29871cb70345a2dfa203ce06)) | ||
### Bug Fixes | ||
* **client:** ensure streams with projections are returned as arrays ([1e6a8b8](https://github.com/orbitalapi/typescript-client/commit/1e6a8b880545818c3ef0445b6a8cbf76671107ef)) | ||
## 0.1.0 (2023-03-15) |
{ | ||
"name": "@orbitalhq/orbital-client", | ||
"version": "0.1.0-alpha.2", | ||
"version": "0.1.1", | ||
"description": "A library to execute TaxiQL queries against an Orbital query server", | ||
@@ -8,3 +8,4 @@ "main": "build/main/index.js", | ||
"module": "build/module/index.js", | ||
"repository": "https://github.com/orbital-api/typescript-client", | ||
"homepage": "https://orbitalhq.com", | ||
"repository": "https://github.com/orbitalapi/typescript-client", | ||
"license": "MIT", | ||
@@ -16,3 +17,3 @@ "keywords": [ | ||
"build": "run-p build:*", | ||
"build:main": "mkdir -p build && cp -r bin/ build/bin && tsc -p tsconfig.json", | ||
"build:main": "shx mkdir -p build/bin && shx cp -r bin/ build/bin && tsc -p tsconfig.json", | ||
"build:module": "tsc -p tsconfig.module.json", | ||
@@ -23,4 +24,4 @@ "fix": "run-s fix:*", | ||
"test": "run-s build test:*", | ||
"test:lint": "eslint src --ext .ts", | ||
"test:prettier": "prettier \"src/**/*.ts\" --list-different", | ||
"test:lint": "eslint", | ||
"test:prettier": "prettier \"src/**/*.ts\" --write", | ||
"check-cli": "run-s test diff-integration-tests check-integration-tests", | ||
@@ -42,32 +43,34 @@ "check-integration-tests": "run-s check-integration-test:*", | ||
}, | ||
"dependencies": {}, | ||
"peerDependencies": { | ||
"axios": "^0.27.2", | ||
"nanoid": "^3.3.4", | ||
"rxjs": "^7.x", | ||
"reflect-metadata": "^0.1.13" | ||
"axios": "^1.7.9", | ||
"nanoid": "^5.0.9", | ||
"rxjs": "^7.x" | ||
}, | ||
"devDependencies": { | ||
"reflect-metadata": "^0.1.13", | ||
"@ava/typescript": "^3.0.1", | ||
"@istanbuljs/nyc-config-typescript": "^1.0.1", | ||
"@typescript-eslint/eslint-plugin": "^5.21.0", | ||
"@typescript-eslint/parser": "^5.21.0", | ||
"ava": "^4.2.0", | ||
"codecov": "^3.5.0", | ||
"@ava/typescript": "^5.0.0", | ||
"@eslint/compat": "^1.2.5", | ||
"@eslint/eslintrc": "^3.2.0", | ||
"@eslint/js": "^9.18.0", | ||
"@istanbuljs/nyc-config-typescript": "^1.0.2", | ||
"@typescript-eslint/eslint-plugin": "^8.18.0", | ||
"@typescript-eslint/parser": "^8.18.0", | ||
"ava": "^6.2.0", | ||
"codecov": "^3.8.3", | ||
"cz-conventional-changelog": "^3.3.0", | ||
"eslint": "^8.14.0", | ||
"eslint-config-prettier": "^8.5.0", | ||
"eslint": "^9.16.0", | ||
"eslint-config-prettier": "^9.1.0", | ||
"eslint-plugin-eslint-comments": "^3.2.0", | ||
"eslint-plugin-functional": "^4.2.1", | ||
"eslint-plugin-import": "^2.22.0", | ||
"gh-pages": "^3.1.0", | ||
"eslint-plugin-functional": "^7.1.0", | ||
"eslint-plugin-import": "^2.31.0", | ||
"gh-pages": "^6.2.0", | ||
"globals": "^15.14.0", | ||
"npm-run-all": "^4.1.5", | ||
"nyc": "^15.1.0", | ||
"open-cli": "^7.0.1", | ||
"prettier": "^2.1.1", | ||
"standard-version": "^9.0.0", | ||
"ts-node": "^10.7.0", | ||
"typedoc": "^0.22.15", | ||
"typescript": "^4.6.3" | ||
"nyc": "^17.1.0", | ||
"open-cli": "^8.0.0", | ||
"prettier": "^3.4.2", | ||
"shx": "^0.3.4", | ||
"standard-version": "^9.5.0", | ||
"ts-node": "^10.9.2", | ||
"typedoc": "^0.27.4", | ||
"typescript": "^5.7.2" | ||
}, | ||
@@ -74,0 +77,0 @@ "files": [ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
108740
3
24
1368
1
26
2