gristlabs_grist-core/sandbox/install_tz.js
Paul Fitzpatrick b82eec714a (core) move data engine code to core
Summary:
this moves sandbox/grist to core, and adds a requirements.txt
file for reconstructing the content of sandbox/thirdparty.

Test Plan:
existing tests pass.
Tested core functionality manually.  Tested docker build manually.

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2563
2020-07-29 08:57:25 -04:00

32 lines
906 B
JavaScript

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);
});
}