molstar
Version:
A comprehensive macromolecular library.
58 lines • 2.31 kB
JavaScript
/**
* Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var cif_1 = require("../mol-io/writer/cif");
var fs = (0, tslib_1.__importStar)(require("fs"));
var category1fields = [
cif_1.CifWriter.Field.str('f1', function (i) { return 'v' + i; }),
cif_1.CifWriter.Field.int('f2', function (i) { return i * i; }),
cif_1.CifWriter.Field.float('f3', function (i) { return Math.random(); }),
];
var category2fields = [
cif_1.CifWriter.Field.str('e1', function (i) { return 'v\n' + i; }),
cif_1.CifWriter.Field.int('e2', function (i) { return i * i; }),
cif_1.CifWriter.Field.float('e3', function (i) { return Math.random(); }),
];
function getCat(name) {
return {
name: name,
instance: function (ctx) {
return { fields: ctx.fields, source: [{ rowCount: ctx.rowCount }] };
}
};
}
function testText() {
var enc = cif_1.CifWriter.createEncoder();
var filter = {
includeCategory: function (cat) { return true; },
includeField: function (cat, field) { return !(cat === 'cat2' && field === 'e2'); }
};
enc.startDataBlock('test');
enc.setFilter(filter);
enc.writeCategory(getCat('cat1'), [{ rowCount: 5, fields: category1fields }]);
enc.writeCategory(getCat('cat2'), [{ rowCount: 1, fields: category2fields }]);
console.log(enc.getData());
}
testText();
function testBinary() {
var enc = cif_1.CifWriter.createEncoder({ binary: true });
var filter = {
includeCategory: function (cat) { return true; },
includeField: function (cat, field) { return !(cat === 'cat2' && field === 'e2'); }
};
enc.startDataBlock('test');
enc.setFilter(filter);
enc.writeCategory(getCat('cat1'), [{ rowCount: 5, fields: category1fields }]);
enc.writeCategory(getCat('cat2'), [{ rowCount: 1, fields: category2fields }]);
enc.encode();
var data = enc.getData();
fs.writeFileSync('e:/test/mol-star/test.bcif', Buffer.from(data));
console.log('written binary');
}
testBinary();
//# sourceMappingURL=cif-encoder.js.map
;