summaryrefslogtreecommitdiffstats
path: root/scripts/export-data.js
blob: 81f384db75c51bc245a253007eb6ada9a59d02b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var fs = require('fs');
var stringEscape = require('string-escape');
var regenerate = require('regenerate');

var object = {};
var toString = object.toString;
var isArray = function(value) {
	return toString.call(value) == '[object Array]';
};

var readJSON = function(fileName) {
	var contents = fs.readFileSync('data/' + fileName + '.json', 'utf-8');
	var object = JSON.parse(contents);
	if (isArray(object)) {
		return object;
	}
	return stringEscape(object, {
		'compact': true,
		'quotes': 'single'
	});
};

module.exports = {
	'encodeMap': readJSON('encode-map'),
	'encodeSingleSymbols': regenerate.fromCodePoints(readJSON('encode-lone-code-points')),
	'encodeMultipleSymbols': stringEscape(readJSON('encode-paired-symbols').join('|')),
	'decodeOverrides': readJSON('decode-map-overrides'),
	'decodeMap': readJSON('decode-map'),
	'decodeMapLegacy': readJSON('decode-map-legacy'),
	'legacyReferences': readJSON('decode-legacy-named-references').join('|'),
	'astralSymbols': regenerate.fromCodePointRange(0x010000, 0x10FFFF),
	'invalidCodePoints': '[' + readJSON('invalid-code-points').join(',') + ']',
	'version': JSON.parse(fs.readFileSync('package.json', 'utf-8')).version
};