electr0lysis
Version:
Simple framework for data serialization and interchange.
21 lines • 912 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("f1ux/array/operator/first");
const construct_1 = require("f1ux/reflect/construct");
const decode_1 = require("./decode");
const getProperties_1 = require("./reflect/getProperties");
function createDecoder(constructor) {
const properties = getProperties_1.default(constructor);
return new class {
decode(type, view, offset, context) {
const parameters = properties
.map(({ name, type }) => ({ type, quantity: 1 }));
const args = decode_1.default(parameters, view, offset, context);
const value = construct_1.default(constructor, args.value.map(element => element.first()));
const size = args.size;
return { value, size };
}
};
}
exports.default = createDecoder;
//# sourceMappingURL=createDecoder.js.map