const path = require('path'); require('app-module-path').addPath(path.dirname(__dirname)); require('ts-node').register(); /** * This script converts the timezone data from moment-timezone to marshalled format, for fast * loading by Python. */ const marshal = require('app/common/marshal'); const fse = require('fs-extra'); const moment = require('moment-timezone'); const DEST_FILE = 'sandbox/grist/tzdata.data'; function main() { const zones = moment.tz.names().map((name) => { const z = moment.tz.zone(name); return marshal.wrap('TUPLE', [z.name, z.abbrs, z.offsets, z.untils]); }); const marshaller = new marshal.Marshaller({version: 2}); marshaller.marshal(zones); const contents = marshaller.dumpAsBuffer(); return fse.writeFile(DEST_FILE, contents); } if (require.main === module) { main().catch((e) => { console.log("ERROR", e.message); process.exit(1); }); }