capnpc-ts
Version:
Cap'n Proto schema compiler for TypeScript.
30 lines • 1.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const tap_1 = tslib_1.__importDefault(require("tap"));
const util_1 = require("../util");
const capnp = tslib_1.__importStar(require("capnp-ts"));
const Schema = tslib_1.__importStar(require("capnp-ts/src/std/schema.capnp.js"));
const ast_creators_1 = require("../../src/ast-creators");
const typescript_1 = tslib_1.__importDefault(require("typescript"));
const TEST_REQUEST = util_1.readFileBuffer("test/data/test-request.bin");
void tap_1.default.test("createValueExpression", (t) => {
const m = new capnp.Message(TEST_REQUEST, false);
// Find a node with a default pointer value to play around with.
const node = m
.getRoot(Schema.CodeGeneratorRequest)
.getNodes()
.find((n) => n.getDisplayName().split(":")[1] === "TestDefaults");
if (node === undefined) {
t.fail();
return;
}
const value = node.getStruct().getFields().get(29).getSlot().getDefaultValue();
const printer = typescript_1.default.createPrinter();
const sourceFile = typescript_1.default.createSourceFile("", "", typescript_1.default.ScriptTarget.ES2017);
t.equal(printer.printNode(typescript_1.default.EmitHint.Expression, ast_creators_1.createValueExpression(value), sourceFile), "capnp.readRawPointer(new Uint8Array([0x10, 0x07, 0x11, 0x01, 0x1e, 0x11, 0x09, 0x32, 0x11, 0x09, 0x32, " +
"0x11, 0x09, 0x2a, 0x1f, 0x70, 0x6c, 0x75, 0x67, 0x68, 0x1f, 0x78, 0x79, 0x7a, 0x7a, 0x79, 0x0f, 0x74, 0x68, " +
"0x75, 0x64]).buffer)");
t.end();
});
//# sourceMappingURL=ast-creators.spec.js.map