UNPKG

@beenotung/tslib

Version:
34 lines (33 loc) 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.splitTags = splitTags; function splitTagBy(tags, separator) { const res = new Set(); tags.forEach(s => s.split(separator).forEach(s => res.add(s))); return res; } function splitTags(stringOrArray, otherTags) { let acc; if (typeof stringOrArray == 'string') { acc = new Set([stringOrArray]); } else if (Array.isArray(stringOrArray)) { acc = new Set(stringOrArray); } else { throw new TypeError('Invalid argument, should be string or array of string'); } if (typeof otherTags == 'string') { acc.add(otherTags); } acc = splitTagBy(acc, ' '); acc = splitTagBy(acc, ','); acc = splitTagBy(acc, '.'); acc = splitTagBy(acc, ','); acc = splitTagBy(acc, '。'); acc = splitTagBy(acc, '#'); acc = splitTagBy(acc, '#'); acc = splitTagBy(acc, '"'); acc = splitTagBy(acc, "'"); return Array.from(acc).filter(s => s.length >= 2); }