diff options
author | Mathias Bynens <mathias@qiwi.be> | 2013-06-28 21:23:25 +0200 |
---|---|---|
committer | Mathias Bynens <mathias@qiwi.be> | 2013-06-28 21:56:50 +0200 |
commit | e6071ae764a6c293ed5ff77b975ae02428f23c8b (patch) | |
tree | 1e0056bee8b22b44f4d807e1355be1e3f693d8fb /scripts/export-data.js | |
parent | f4e63e1a4df0fa1fab328acf01d1582565d1e159 (diff) | |
download | he-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.js | 33 |
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 +}; |