node-darts
Version:
Node.js Native Addon for Darts (Double-ARray Trie System)
109 lines (108 loc) • 3.97 kB
TypeScript
/**
* node-darts: Node.js Native Addon for Darts (Double-ARray Trie System)
*
* This package binds the C++ version of Darts, making .darts dictionary files
* available in Node.js/TypeScript environments.
*
* @packageDocumentation
*/
import Dictionary from './core/dictionary';
import Builder from './core/builder';
import { BuildOptions } from './core/types';
export { default as Dictionary } from './core/dictionary';
export { default as Builder } from './core/builder';
export { default as TextDarts } from './text-darts';
export { TraverseResult, TraverseCallback, BuildOptions, WordReplacer } from './core/types';
export { DartsError, FileNotFoundError, InvalidDictionaryError, BuildError } from './core/errors';
export { fileExists, validateFilePath, ensureDirectoryExists, sortStrings, uniqueArray, sortAndUniqueStrings, } from './core/utils';
/**
* Creates a dictionary
* @returns a new Dictionary object
* @example
* ```typescript
* import { createDictionary } from 'node-darts';
*
* const dict = createDictionary();
* dict.loadSync('/path/to/dictionary.darts');
* const result = dict.exactMatchSearch('hello');
* ```
*/
export declare function createDictionary(): Dictionary;
/**
* Creates a builder
* @returns a new Builder object
* @example
* ```typescript
* import { createBuilder } from 'node-darts';
*
* const builder = createBuilder();
* const keys = ['apple', 'banana', 'orange'];
* const dict = builder.build(keys);
* ```
*/
export declare function createBuilder(): Builder;
/**
* Loads a dictionary file
* @param filePath path to the dictionary file
* @returns the loaded Dictionary object
* @throws {FileNotFoundError} if the file is not found
* @throws {InvalidDictionaryError} if the dictionary file is invalid
* @example
* ```typescript
* import { loadDictionary } from 'node-darts';
*
* const dict = loadDictionary('/path/to/dictionary.darts');
* const result = dict.exactMatchSearch('hello');
* ```
*/
export declare function loadDictionary(filePath: string): Dictionary;
/**
* Builds a dictionary from keys and values
* @param keys array of keys
* @param values array of values (indices are used if omitted)
* @param options build options
* @returns the constructed Dictionary object
* @example
* ```typescript
* import { buildDictionary } from 'node-darts';
*
* const keys = ['apple', 'banana', 'orange'];
* const values = [1, 2, 3];
* const dict = buildDictionary(keys, values);
* ```
*/
export declare function buildDictionary(keys: string[], values?: number[], options?: BuildOptions): Dictionary;
/**
* Builds a dictionary from keys and values and saves it to a file
* @param keys array of keys
* @param filePath destination file path
* @param values array of values (indices are used if omitted)
* @param options build options
* @returns true if successful, false otherwise
* @example
* ```typescript
* import { buildAndSaveDictionary } from 'node-darts';
*
* const keys = ['apple', 'banana', 'orange'];
* const values = [1, 2, 3];
* const result = await buildAndSaveDictionary(keys, '/path/to/output.darts', values);
* ```
*/
export declare function buildAndSaveDictionary(keys: string[], filePath: string, values?: number[], options?: BuildOptions): Promise<boolean>;
/**
* Builds a dictionary from keys and values and saves it to a file synchronously
* @param keys array of keys
* @param filePath destination file path
* @param values array of values (indices are used if omitted)
* @param options build options
* @returns true if successful, false otherwise
* @example
* ```typescript
* import { buildAndSaveDictionarySync } from 'node-darts';
*
* const keys = ['apple', 'banana', 'orange'];
* const values = [1, 2, 3];
* const result = buildAndSaveDictionarySync(keys, '/path/to/output.darts', values);
* ```
*/
export declare function buildAndSaveDictionarySync(keys: string[], filePath: string, values?: number[], options?: BuildOptions): boolean;