UNPKG

@novel-segment/table-dict

Version:
78 lines (72 loc) 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }); var t = require("@novel-segment/loaders/segment/index"), e = require("@lazy-cjk/zh-table-list/list"), s = require("@novel-segment/table-core-abstract"); function notNum(t) { return "number" != typeof t || Number.isNaN(t); } class TableDict extends s.AbstractTableDictCore { exists(t) { return super.exists(t); } __handleInput(t) { let e, s, r, i; if ("string" == typeof t ? e = t : Array.isArray(t) ? [e, s, r, ...i] = t : ({w: e, p: s, f: r} = t), "string" != typeof e || "" === e) throw new TypeError(JSON.stringify(t)); return s = notNum(s) ? 0 : s, r = notNum(r) ? 0 : r, { data: { w: e, p: s, f: r }, plus: i }; } add(t, s) { let r, i, n; { let e = this.__handleInput(t); ({w: r, p: i, f: n} = e.data); } if (s && this.exists(r)) return this; this._add({ w: r, p: i, f: n, s: !0 }); let a = this; return this.options.autoCjk && e.textList(r).forEach((function(t) { t === r || a.exists(t) || a._add({ w: t, p: i, f: n }); })), this; } _add({w: t, p: e, f: s, s: r}) { let i = t.length; this.TABLE[t] = { p: e, f: s, s: r }, this.TABLE2[i] || (this.TABLE2[i] = {}), this.TABLE2[i][t] = this.TABLE[t]; } remove(t) { let {data: e} = this.__handleInput(t); return this._remove(e), this; } _remove({w: t}) { let e = t.length; return delete this.TABLE[t], this.TABLE2[e] && delete this.TABLE2[e][t], this; } stringify(e = "\n") { return Object.entries(this.TABLE).reduce((function(e, [s, {p: r, f: i}]) { let n = t.stringifyLine([ s, r, i ]); return e.push(n), e; }), []).join("string" == typeof e ? e : "\n"); } } exports.TableDict = TableDict, exports.default = TableDict, exports.notNum = notNum; //# sourceMappingURL=index.cjs.production.min.cjs.map