summaryrefslogtreecommitdiffstats
path: root/scripts/export-data.js
diff options
context:
space:
mode:
authorMathias Bynens <mathias@qiwi.be>2013-06-28 21:23:25 +0200
committerMathias Bynens <mathias@qiwi.be>2013-06-28 21:56:50 +0200
commite6071ae764a6c293ed5ff77b975ae02428f23c8b (patch)
tree1e0056bee8b22b44f4d807e1355be1e3f693d8fb /scripts/export-data.js
parentf4e63e1a4df0fa1fab328acf01d1582565d1e159 (diff)
downloadhe-e6071ae764a6c293ed5ff77b975ae02428f23c8b.zip
he-e6071ae764a6c293ed5ff77b975ae02428f23c8b.tar.gz
he-e6071ae764a6c293ed5ff77b975ae02428f23c8b.tar.bz2
Clean up data processing scripts
Diffstat (limited to 'scripts/export-data.js')
-rw-r--r--scripts/export-data.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/export-data.js b/scripts/export-data.js
new file mode 100644
index 0000000..44e52f4
--- /dev/null
+++ b/scripts/export-data.js
@@ -0,0 +1,33 @@
+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'),
+ 'encodeSingleSymbol': regenerate.fromCodePoints(readJSON('encode-lone-code-points')),
+ 'encodeMultipleSymbols': stringEscape(readJSON('encode-paired-symbols').join('|')),
+ 'decodeTable': readJSON('decode-overrides'),
+ 'decodeMap': readJSON('decode-map'),
+ 'decodeMapLegacy': readJSON('decode-map-legacy'),
+ 'legacyReferences': readJSON('decode-legacy-named-references').join('|'),
+ 'astralSymbols': regenerate.fromCodePointRange(0x010000, 0x10FFFF),
+ 'version': JSON.parse(fs.readFileSync('package.json', 'utf-8')).version
+};