@metaplex-foundation/umi-serializers
Version:
A comprehensive set of serializers for the Umi framework
1 lines • 2.65 kB
Source Map (JSON)
{"version":3,"file":"bool.mjs","sources":["../../src/bool.ts"],"sourcesContent":["import {\n BaseSerializerOptions,\n DeserializingEmptyBufferError,\n ExpectedFixedSizeSerializerError,\n Serializer,\n} from '@metaplex-foundation/umi-serializers-core';\nimport {\n NumberSerializer,\n u8,\n} from '@metaplex-foundation/umi-serializers-numbers';\n\n/**\n * Defines the options for boolean serializers.\n * @category Serializers\n */\nexport type BoolSerializerOptions = BaseSerializerOptions & {\n /**\n * The number serializer to delegate to.\n * @defaultValue `u8()`\n */\n size?: NumberSerializer;\n};\n\n/**\n * Creates a boolean serializer.\n *\n * @param options - A set of options for the serializer.\n * @category Serializers\n */\nexport function bool(options: BoolSerializerOptions = {}): Serializer<boolean> {\n const size = options.size ?? u8();\n if (size.fixedSize === null) {\n throw new ExpectedFixedSizeSerializerError(\n 'Serializer [bool] requires a fixed size.'\n );\n }\n return {\n description: options.description ?? `bool(${size.description})`,\n fixedSize: size.fixedSize,\n maxSize: size.fixedSize,\n serialize: (value: boolean) => size.serialize(value ? 1 : 0),\n deserialize: (bytes: Uint8Array, offset = 0) => {\n if (bytes.slice(offset).length === 0) {\n throw new DeserializingEmptyBufferError('bool');\n }\n const [value, vOffset] = size.deserialize(bytes, offset);\n return [value === 1, vOffset];\n },\n };\n}\n"],"names":["bool","options","size","u8","fixedSize","ExpectedFixedSizeSerializerError","description","maxSize","serialize","value","deserialize","bytes","offset","slice","length","DeserializingEmptyBufferError","vOffset"],"mappings":";;;AAWA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,IAAI,CAACC,OAA8B,GAAG,EAAE,EAAuB;AAC7E,EAAA,MAAMC,IAAI,GAAGD,OAAO,CAACC,IAAI,IAAIC,EAAE,EAAE,CAAA;AACjC,EAAA,IAAID,IAAI,CAACE,SAAS,KAAK,IAAI,EAAE;AAC3B,IAAA,MAAM,IAAIC,gCAAgC,CACxC,0CAA0C,CAC3C,CAAA;AACH,GAAA;EACA,OAAO;IACLC,WAAW,EAAEL,OAAO,CAACK,WAAW,IAAK,CAAOJ,KAAAA,EAAAA,IAAI,CAACI,WAAY,CAAE,CAAA,CAAA;IAC/DF,SAAS,EAAEF,IAAI,CAACE,SAAS;IACzBG,OAAO,EAAEL,IAAI,CAACE,SAAS;AACvBI,IAAAA,SAAS,EAAGC,KAAc,IAAKP,IAAI,CAACM,SAAS,CAACC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5DC,IAAAA,WAAW,EAAE,CAACC,KAAiB,EAAEC,MAAM,GAAG,CAAC,KAAK;MAC9C,IAAID,KAAK,CAACE,KAAK,CAACD,MAAM,CAAC,CAACE,MAAM,KAAK,CAAC,EAAE;AACpC,QAAA,MAAM,IAAIC,6BAA6B,CAAC,MAAM,CAAC,CAAA;AACjD,OAAA;AACA,MAAA,MAAM,CAACN,KAAK,EAAEO,OAAO,CAAC,GAAGd,IAAI,CAACQ,WAAW,CAACC,KAAK,EAAEC,MAAM,CAAC,CAAA;AACxD,MAAA,OAAO,CAACH,KAAK,KAAK,CAAC,EAAEO,OAAO,CAAC,CAAA;AAC/B,KAAA;GACD,CAAA;AACH;;;;"}