UNPKG

1.51 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.TableDictLine = void 0;
4const loader_line_1 = require("@novel-segment/loader-line");
5const util_1 = require("../util");
6const core_1 = require("./core");
7/**
8 * 原版 node-segment 的格式
9 */
10class TableDictLine extends core_1.default {
11 exists(data, ...argv) {
12 let w = this._exists(data);
13 let bool = this.TABLE[w];
14 return typeof bool === 'boolean' ? bool : null;
15 }
16 add(word) {
17 let self = this;
18 if (Array.isArray(word)) {
19 word.forEach(v => self._add(v));
20 }
21 else {
22 self._add(word);
23 }
24 return this;
25 }
26 _add(word) {
27 word = word.trim();
28 if (word) {
29 this.TABLE[word] = true;
30 }
31 }
32 remove(word) {
33 let self = this;
34 self._remove(word);
35 return this;
36 }
37 _remove(word) {
38 delete this.TABLE[word];
39 }
40 json() {
41 return util_1.cloneDeep(this.TABLE);
42 }
43 stringify(LF = "\n") {
44 let self = this;
45 return Object.entries(self.TABLE)
46 .reduce(function (a, [w, bool]) {
47 if (bool) {
48 let line = loader_line_1.stringifyLine(w);
49 a.push(line);
50 }
51 return a;
52 }, [])
53 .join(typeof LF === 'string' ? LF : "\n");
54 }
55}
56exports.TableDictLine = TableDictLine;
57exports.default = TableDictLine;
58//# sourceMappingURL=line.js.map
\No newline at end of file