UNPKG

@bedrock-apis/nbt

Version:

Solid NBT package, with multiple formats

168 lines (151 loc) 7.11 kB
import { Byte, Double, Float, IDataCursor, Int, Short, TagType } from "@bedrock-apis/nbt-core"; //#region main/readers/reader-like.d.ts interface ReaderLike { readType(cursor: IDataCursor): TagType; readStringLength(cursor: IDataCursor): number; readArrayLength(cursor: IDataCursor): number; [TagType.Byte](cursor: IDataCursor): number; [TagType.Short](cursor: IDataCursor): number; [TagType.Int](cursor: IDataCursor): number; [TagType.Long](cursor: IDataCursor): bigint; [TagType.Float](cursor: IDataCursor): number; [TagType.Double](cursor: IDataCursor): number; [TagType.ByteArray](cursor: IDataCursor): Uint8Array; [TagType.String](cursor: IDataCursor): string; [TagType.IntArray](cursor: IDataCursor): Int32Array; [TagType.LongArray](cursor: IDataCursor): BigInt64Array; [TagType.List](cursor: IDataCursor): unknown[]; [TagType.Compound](cursor: IDataCursor): object; } //#endregion //#region main/readers/general.d.ts declare class GeneralReader implements ReaderLike { readonly littleEndian: boolean; readonly textEncoder: TextDecoder; constructor(littleEndian: boolean, textEncoder: TextDecoder); readType(_: IDataCursor): TagType; readArrayLength(_: IDataCursor): number; readStringLength(_: IDataCursor): number; /** * TagType.byte */ 1(cursor: IDataCursor): number; /** * TagType.Short */ 2(cursor: IDataCursor): number; /** * TagType.Int */ 3(cursor: IDataCursor): number; /** * TagType.Long */ 4(cursor: IDataCursor): bigint; /** * TagType.Float */ 5(cursor: IDataCursor): number; /** * TagType.Double */ 6(cursor: IDataCursor): number; /** * TagType.ByteArray */ 7(cursor: IDataCursor): Uint8Array; /** * TagType.String */ 8(cursor: IDataCursor): string; 11(cursor: IDataCursor): Int32Array; 12(cursor: IDataCursor): BigInt64Array; 9(cursor: IDataCursor): unknown[]; 10(cursor: IDataCursor): object; } declare class GeneralVariantReader extends GeneralReader {} declare const NBT_FORMAT_READER: GeneralReader; declare const NBT_NETWORK_VARIANT_FORMAT_READER: GeneralReader; declare const NBT_BIG_ENDIAN_FORMAT_READER: GeneralReader; declare const NBT_BIG_ENDIAN_NETWORK_VARIANT_FORMAT_READER: GeneralReader; //#endregion //#region main/readers/typed-reader.d.ts declare class TypedReader { static 1(cursor: IDataCursor, format: ReaderLike): Byte; static 2(cursor: IDataCursor, format: ReaderLike): Short; static 3(cursor: IDataCursor, format: ReaderLike): Int; static 5(cursor: IDataCursor, format: ReaderLike): Float; static 6(cursor: IDataCursor, format: ReaderLike): Double; static 4(cursor: IDataCursor, format: ReaderLike): bigint; static 7(cursor: IDataCursor, format: ReaderLike): Uint8Array; static 8(cursor: IDataCursor, format: ReaderLike): string; static 11(cursor: IDataCursor, format: ReaderLike): Int32Array; static 12(cursor: IDataCursor, format: ReaderLike): BigInt64Array; static 10(cursor: IDataCursor, format: ReaderLike): object; static 9(cursor: IDataCursor, format: ReaderLike): unknown[]; static parseRootSync<T>(this: typeof TypedReader, cursor: IDataCursor, format: ReaderLike): T; static parseSync<T>(this: typeof TypedReader, cursor: IDataCursor, format: ReaderLike): T; static parseExplicitSync<T>(this: typeof TypedReader, cursor: IDataCursor, type: TagType, format: ReaderLike): T; } //#endregion //#region main/readers/index.d.ts declare function parseRootSync<T = unknown>(cursor: IDataCursor, format?: ReaderLike): T; declare function parseExplicitSync<T = unknown>(cursor: IDataCursor, type: TagType, format?: ReaderLike): T; declare function parseSync<T = unknown>(cursor: IDataCursor, format?: ReaderLike): T; //#endregion //#region main/writers/writer-like.d.ts interface WriterLike { writeType(cursor: IDataCursor, value: TagType): void; writeStringLength(cursor: IDataCursor, length: number): void; writeArrayLength(cursor: IDataCursor, length: number): void; [TagType.Byte](cursor: IDataCursor, value: number): void; [TagType.Short](cursor: IDataCursor, value: number): void; [TagType.Int](cursor: IDataCursor, value: number): void; [TagType.Long](cursor: IDataCursor, value: bigint): void; [TagType.Float](cursor: IDataCursor, value: number): void; [TagType.Double](cursor: IDataCursor, value: number): void; [TagType.ByteArray](cursor: IDataCursor, value: Uint8Array): void; [TagType.String](cursor: IDataCursor, value: string): void; [TagType.IntArray](cursor: IDataCursor, value: Int32Array): void; [TagType.LongArray](cursor: IDataCursor, value: BigInt64Array): void; [TagType.List](cursor: IDataCursor, value: unknown[]): void; [TagType.Compound](cursor: IDataCursor, value: object): void; determinateType(_: unknown): TagType; } //#endregion //#region main/writers/general.d.ts declare class GeneralWriter implements WriterLike { readonly littleEndian: boolean; readonly textEncoder: TextEncoder; constructor(littleEndian: boolean, textEncoder: TextEncoder); writeType(_cursor: IDataCursor, _: number): void; writeStringLength(_cursor: IDataCursor, _: number): void; writeArrayLength(_cursor: IDataCursor, _: number): void; 1(cursor: IDataCursor, _: number): void; 2(cursor: IDataCursor, _: number): void; 3(cursor: IDataCursor, _: number): void; 4(cursor: IDataCursor, _: bigint): void; 5(cursor: IDataCursor, _: number): void; 6(cursor: IDataCursor, _: number): void; 7(cursor: IDataCursor, _: Uint8Array): void; 8(cursor: IDataCursor, _: string): void; 9(cursor: IDataCursor, _: unknown[]): void; 10(cursor: IDataCursor, _: object): void; 11(cursor: IDataCursor, _: Int32Array): void; 12(cursor: IDataCursor, _: BigInt64Array): void; //NOTE - We could think of prototype based serialization something like // new Byte().serializeNBT(cursor, format); and recursively like that determinateType(_: unknown): TagType; } declare class GeneralVariantWriter extends GeneralWriter {} declare const NBT_FORMAT_WRITER: GeneralWriter; declare const NBT_NETWORK_VARIANT_FORMAT_WRITER: GeneralWriter; declare const NBT_BIG_ENDIAN_FORMAT_WRITER: GeneralWriter; declare const NBT_BIG_ENDIAN_NETWORK_VARIANT_FORMAT_WRITER: GeneralWriter; //#endregion //#region main/writers/index.d.ts declare function writeRootSync(cursor: IDataCursor, value: unknown, format?: WriterLike, root?: string): void; declare function writeExplicitSync(cursor: IDataCursor, value: unknown, type: TagType, format?: WriterLike): void; declare function writeSync(cursor: IDataCursor, value: unknown, format?: WriterLike): void; //#endregion export { GeneralReader, GeneralVariantReader, GeneralVariantWriter, GeneralWriter, NBT_BIG_ENDIAN_FORMAT_READER, NBT_BIG_ENDIAN_FORMAT_WRITER, NBT_BIG_ENDIAN_NETWORK_VARIANT_FORMAT_READER, NBT_BIG_ENDIAN_NETWORK_VARIANT_FORMAT_WRITER, NBT_FORMAT_READER, NBT_FORMAT_WRITER, NBT_NETWORK_VARIANT_FORMAT_READER, NBT_NETWORK_VARIANT_FORMAT_WRITER, ReaderLike, TypedReader, WriterLike, parseExplicitSync, parseRootSync, parseSync, writeExplicitSync, writeRootSync, writeSync };