@lazy-cjk/jp-table-alias
Version:
76 lines • 2.52 kB
JavaScript
;
/**
* Created by user on 2019/7/26.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports._fromA2B = _fromA2B;
exports.jp2zht = jp2zht;
exports.jp2zhs = jp2zhs;
exports.zht2jp = zht2jp;
exports.zhs2jp = zhs2jp;
exports.zh2jp = zh2jp;
exports.jp2zh = jp2zh;
exports.lazyAll = lazyAll;
const array_hyper_unique_1 = require("array-hyper-unique");
const types_1 = require("@lazy-cjk/jp-table-convert/lib/types");
const table_1 = require("@lazy-cjk/jp-table-convert/lib/table");
function _fromA2B(char, from, to, options = {}) {
const _table = options && options.safe ? table_1.TABLE_SAFE : table_1.TABLE;
if (_table[from] && _table[to]) {
let list = [];
if (_table[from][char]) {
if (_table[from][char][to]) {
list.push(_table[from][char][to]);
}
Object.values(_table[to])
.forEach(row => {
if (row[from] === char && row[to]) {
list.push(row[to]);
}
});
if (options && options.includeSelf) {
list.push(char);
}
list = (0, array_hyper_unique_1.array_unique_overwrite)(list);
}
return list;
}
throw new RangeError(`${from}, ${to} is not exists in TABLE`);
}
function jp2zht(char, options) {
return _fromA2B(char, types_1.KEY_JP, types_1.KEY_ZHT, options);
}
function jp2zhs(char, options) {
return _fromA2B(char, types_1.KEY_JP, types_1.KEY_ZHS, options);
}
function zht2jp(char, options) {
return _fromA2B(char, types_1.KEY_ZHT, types_1.KEY_JP, options);
}
function zhs2jp(char, options) {
return _fromA2B(char, types_1.KEY_ZHS, types_1.KEY_JP, options);
}
function zh2jp(char, options) {
let arr = zht2jp(char, options)
.concat(zhs2jp(char, options));
return (0, array_hyper_unique_1.array_unique_overwrite)(arr);
}
function jp2zh(char, options) {
let arr = jp2zht(char, options)
.concat(jp2zhs(char, options));
return (0, array_hyper_unique_1.array_unique_overwrite)(arr);
}
function lazyAll(char, options) {
let arr = zh2jp(char, options)
.reduce((a, b) => {
a.push(b, ...jp2zh(b, options));
return a;
}, [])
.concat(jp2zh(char, options)
.reduce((a, b) => {
a.push(b, ...zh2jp(b, options));
return a;
}, []));
return (0, array_hyper_unique_1.array_unique_overwrite)(arr);
}
exports.default = exports;
//# sourceMappingURL=index.js.map