aboutsummaryrefslogtreecommitdiff
path: root/core/http
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2023-07-10 16:26:13 +0200
committerlonkaars <loek@pipeframe.xyz>2023-07-10 16:26:13 +0200
commita3a81530a0a30ba02b5253b762e2ccd77d3b01fc (patch)
treeafad1bae0c2f7cb9d4a11b6c1c56bc8bae2f14e5 /core/http
parente430d8cb4a30640298b7fae3c93bc6329e2a0382 (diff)
small restructuring + all deinflection tests working
Diffstat (limited to 'core/http')
-rw-r--r--core/http/client.ts41
-rw-r--r--core/http/types.ts35
2 files changed, 51 insertions, 25 deletions
diff --git a/core/http/client.ts b/core/http/client.ts
index 6b4e1a3..80f77b3 100644
--- a/core/http/client.ts
+++ b/core/http/client.ts
@@ -1,10 +1,8 @@
-import { InputSentenceProps } from "../../language/types.ts";
import "../../util/array.ts";
-import { DeepPartial } from "../../util/types.ts";
-import Core from "../api.ts";
+import Core, { CoreExport, CoreImport, CoreSearch, CoreUser } from "../api.ts";
import { ConnectionProps, ConnectionPropsDefault } from "./props.ts";
-import { CoreRequest, CoreRequestParseSentence, CoreResponseParseSentence } from "./types.ts";
+import { CoreRequest, CoreRequestSearchSentence, CoreRequestSearchTerms, CoreResponseSearchSentence, CoreResponseSearchTerms } from "./types.ts";
/**
* @summary HTTP Core client
@@ -13,8 +11,9 @@ import { CoreRequest, CoreRequestParseSentence, CoreResponseParseSentence } from
* (de)serialization automatically.
*/
export default class RemoteCoreClient implements Core {
+ public ready: Promise<void> = Promise.resolve();
+
private props: ConnectionProps;
- ready: Promise<void> = Promise.resolve();
constructor(options?: ConnectionProps) {
this.props = { ...ConnectionPropsDefault, ...options };
@@ -32,13 +31,29 @@ export default class RemoteCoreClient implements Core {
return response.json();
}
- async parseSentence(input: string, options?: DeepPartial<InputSentenceProps>) {
- var request: CoreRequestParseSentence = {
- command: "parseSentence",
- options: { input, options, },
- };
- var { response } = await this.request(request) as CoreResponseParseSentence;
- return response;
- }
+ public search: CoreSearch = {
+ terms: async term => {
+ var request: CoreRequestSearchTerms = {
+ command: "search.terms",
+ options: { term, },
+ };
+ var { response } = await this.request(request) as CoreResponseSearchTerms;
+ return response;
+ },
+ sentence: async (sentence, optional?) => {
+ var request: CoreRequestSearchSentence = {
+ command: "search.sentence",
+ options: { sentence, optional, },
+ };
+ var { response } = await this.request(request) as CoreResponseSearchSentence;
+ return response;
+ },
+ };
+
+ public user: CoreUser = {};
+
+ public import: CoreImport = {};
+
+ public export: CoreExport = {};
}
diff --git a/core/http/types.ts b/core/http/types.ts
index 3d55a98..51c221a 100644
--- a/core/http/types.ts
+++ b/core/http/types.ts
@@ -1,4 +1,4 @@
-import { InputSentenceProps, ParseResult } from "../../language/types.ts";
+import { SearchTermResult, SearchSentenceResult, SearchSentenceProps } from "../../search/types.ts";
import { DeepPartial } from "../../util/types.ts";
export interface CoreRequest {
@@ -6,22 +6,33 @@ export interface CoreRequest {
options: any;
};
-export interface CoreRequestParseSentence extends CoreRequest {
- command: "parseSentence";
- options: {
- input: string;
- options?: DeepPartial<InputSentenceProps>;
- };
-};
-
export interface CoreResponse {
command: string;
response: any;
// final: boolean;
};
-export interface CoreResponseParseSentence extends CoreResponse {
- command: "parseSentence";
- response: ParseResult;
+export interface CoreRequestSearchSentence extends CoreRequest {
+ command: "search.sentence";
+ options: {
+ sentence: string;
+ optional?: DeepPartial<SearchSentenceProps>;
+ };
};
+export interface CoreResponseSearchSentence extends CoreResponse {
+ command: "search.sentence";
+ response: SearchSentenceResult;
+};
+
+export interface CoreRequestSearchTerms extends CoreRequest {
+ command: "search.terms";
+ options: {
+ term: string;
+ };
+};
+
+export interface CoreResponseSearchTerms extends CoreResponse {
+ command: "search.terms";
+ response: Array<SearchTermResult>;
+};