diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/api.ts | 4 | ||||
-rw-r--r-- | core/http/client.ts | 4 | ||||
-rw-r--r-- | core/http/server.ts | 1 | ||||
-rw-r--r-- | core/raw/api.ts | 14 |
4 files changed, 10 insertions, 13 deletions
diff --git a/core/api.ts b/core/api.ts index 0891081..017e131 100644 --- a/core/api.ts +++ b/core/api.ts @@ -7,8 +7,8 @@ import { ParseResult } from "../language/types.ts"; * swapped easily. */ export default abstract class API { - /** @summary prepare API client */ - abstract prepare(): Promise<void>; + /** @summary resolved when ready */ + abstract ready: Promise<void>; /** @summary parse sentence */ abstract parseSentence(input: string): Promise<ParseResult>; diff --git a/core/http/client.ts b/core/http/client.ts index a77b616..365aa76 100644 --- a/core/http/client.ts +++ b/core/http/client.ts @@ -1,6 +1,5 @@ import "../../util/array.ts"; -import { ParseResult } from "../../language/types.ts"; import API from "../api.ts"; import { ConnectionProps, ConnectionPropsDefault } from "./props.ts"; import { APIRequest, APIRequestParseSentence, APIResponseParseSentence } from "./types.ts"; @@ -13,13 +12,12 @@ import { APIRequest, APIRequestParseSentence, APIResponseParseSentence } from ". */ export default class YomikunRemoteAPIClient implements API { private props: ConnectionProps; + ready: Promise<void> = Promise.resolve(); constructor(options?: ConnectionProps) { this.props = { ...ConnectionPropsDefault, ...options }; } - async prepare() { } - private async request(details: APIRequest) { var response = await fetch(`http://${this.props.host}:${this.props.port}`, { method: "POST", diff --git a/core/http/server.ts b/core/http/server.ts index b5d6c13..1af8d25 100644 --- a/core/http/server.ts +++ b/core/http/server.ts @@ -2,7 +2,6 @@ import { serve } from "https://deno.land/std@0.192.0/http/server.ts"; import "../../util/string.ts"; -import { ParseResult } from "../../language/types.ts"; import YomikunRAWAPI from "../raw/api.ts"; import { ConnectionProps, ConnectionPropsDefault } from "./props.ts"; import { APIRequest, APIRequestParseSentence, APIResponseParseSentence } from "./types.ts"; diff --git a/core/raw/api.ts b/core/raw/api.ts index 2d29eed..06db022 100644 --- a/core/raw/api.ts +++ b/core/raw/api.ts @@ -5,6 +5,7 @@ import YomikunError from "../../util/error.ts"; /** @summary internal Yomikun API client (DO NOT USE DIRECTLY) */ export default class YomikunRAWAPI implements API { private _parser: Parser; + ready: Promise<void>; constructor() { if (this.constructor === YomikunRAWAPI) { @@ -12,16 +13,15 @@ export default class YomikunRAWAPI implements API { } this._parser = new Parser(); - } - async prepare() { - await Promise.all([ - this._parser.prepare(), - ]); - } + this.ready = new Promise(async resolve => { + await this._parser.ready; + resolve(); + }) + } async parseSentence(input: string) { - return this._parser.parse(input); + return await this._parser.parse(input); } }; |