UNPKG

@keymanapp/models-types

Version:

Type definitions in used in the modeling (lexical model/predictive text) component of Keyman.

69 lines (51 loc) 1.78 kB
`@keymanapp/models-types` ========================= Declares TypeScript types and interfaces required to define **Lexical Models**, **Word breaking functions**, and all things in between. Install ------- > (see below if you are working in the keymanapp/keyman repo!) npm install --save-dev @keymanapp/models-types Usage ----- Say you are creating a **custom lexical model**. Then import this module in your lexical model file! ```Typescript // my-nifty-model.ts import "@keymanapp/models-types"; export class MyNiftyClass implements LexicalModel { configure(capabilities: Capabilities): Configuration { // TODO: implement me! throw new Error("Method not implemented."); } predict(transform: Transform, context: Context): ProbabilityMass<Suggestion>[] { // TODO: implement me! throw new Error("Method not implemented."); } wordbreak(context: Context): string { // TODO: implement me! throw new Error("Method not implemented."); } punctuation?: LexicalModelPunctuation; } ``` If your are creating a **custom word breaker**, you would do the same: ```typescript import "@keymanapp/models-types"; export let myShinyWordBreaker: WordBreakingFunction; myShinyWordBreaker = function (phrase: string): Span[] { // TODO: implement me! throw new Error("Function not implemented") } ``` Look at [index.d.ts](./index.d.ts) for documentation on each and every type! Usage within keymanapp/keyman repo ---------------------------------- To use it in other subprojects within keymanapp/keyman, ensure that this package is linked using `"*"`. Add this dependency to your subproject like so: ```json "dependencies": { "@keymanapp/models-types": "*", } ```