UNPKG

@radixdlt/atom

Version:

Container for CRUD instructions known as 'Particles' that are sent to the Radix decentralized ledger

31 lines 1.73 kB
"use strict"; 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