index.js 1.0 KB

1234567891011121314151617181920212223242526
  1. "use strict";
  2. var regexp_util_1 = require("regexp-util");
  3. function unicode(categories) {
  4. var keys = Object.keys(categories);
  5. if (keys.length === 0) {
  6. throw new Error("Expected at least one category, but received 0.");
  7. }
  8. if (keys.some(function (key) {
  9. var sub_categories = categories[key];
  10. return sub_categories === undefined || sub_categories.length === 0;
  11. })) {
  12. throw new Error("Expected at least one sub category, but received 0.");
  13. }
  14. var charsets = keys.map(function (key) {
  15. var _a;
  16. var sub_categories = categories[key];
  17. var sub_charsets = sub_categories.map(function (x) { return get_charset(key, x); });
  18. return (_a = new regexp_util_1.Charset()).union.apply(_a, sub_charsets);
  19. });
  20. return charsets.reduce(function (a, b) { return a.intersect(b); });
  21. }
  22. function get_charset(category, sub_category) {
  23. var _a;
  24. return (_a = new regexp_util_1.Charset()).union.apply(_a, require("./data.generated/" + category + "/" + sub_category));
  25. }
  26. module.exports = unicode;