@radixdlt/atom
Version:
Container for CRUD instructions known as 'Particles' that are sent to the Radix decentralized ledger
31 lines • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParticleGroup = exports.create = void 0;
const _types_1 = require("./_types");
const spunParticleQueryable_1 = require("./particles/spunParticleQueryable");
const data_formats_1 = require("@radixdlt/data-formats");
const neverthrow_1 = require("neverthrow");
const spunParticles_1 = require("./particles/spunParticles");
const data_formats_2 = require("@radixdlt/data-formats");
const _index_1 = require("./particles/_index");
const SERIALIZER = 'radix.particle_group';
const DSON = (spunParticles) => data_formats_2.DSONEncoding(SERIALIZER)({
particles: spunParticles.spunParticles,
});
const JSON = (spunParticles) => data_formats_1.JSONEncoding(SERIALIZER)({
particles: spunParticles_1.isSpunParticles(spunParticles)
? spunParticles.spunParticles
: spunParticles,
});
const jsonDecoding = data_formats_1.JSONDecoding.withDependencies(_index_1.SpunParticle)
.withDecoders(data_formats_1.taggedObjectDecoder(SERIALIZER, _types_1.SERIALIZER_KEY)((input) => neverthrow_1.ok(exports.create(input))))
.create();
const create = (spunParticles) => {
const spunParticles_ = spunParticles_1.isSpunParticles(spunParticles)
? spunParticles
: spunParticles_1.spunParticles(spunParticles);
return Object.assign(Object.assign(Object.assign(Object.assign({}, JSON(spunParticles)), DSON(spunParticles_)), { spunParticles: spunParticles_ }), spunParticleQueryable_1.spunParticlesQueryable(spunParticles_.spunParticles));
};
exports.create = create;
exports.ParticleGroup = Object.assign(Object.assign({ create: exports.create }, jsonDecoding), { SERIALIZER });
//# sourceMappingURL=particleGroup.js.map