{"version":3,"file":"file.mjs","names":["#reader"],"sources":["../../src/files/file.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LocalReader } from './readers/local.js';\n\nexport interface FileReader {\n\tgetIdentifier(): Promise<string | null>;\n\tgetTags(): Promise<Record<string, string>>;\n\tgetBytes(): Promise<Uint8Array>;\n}\n\nexport class WalrusFile {\n\t#reader: FileReader;\n\n\tstatic from(options: {\n\t\tcontents: Uint8Array | Blob;\n\t\tidentifier: string;\n\t\ttags?: Record<string, string>;\n\t}) {\n\t\treturn new WalrusFile({\n\t\t\treader: new LocalReader(options),\n\t\t});\n\t}\n\n\tconstructor({ reader }: { reader: FileReader }) {\n\t\tthis.#reader = reader;\n\t}\n\n\tgetIdentifier() {\n\t\treturn this.#reader.getIdentifier();\n\t}\n\tgetTags() {\n\t\treturn this.#reader.getTags();\n\t}\n\n\tbytes() {\n\t\treturn this.#reader.getBytes();\n\t}\n\n\tasync text() {\n\t\tconst bytes = await this.bytes();\n\n\t\treturn new TextDecoder().decode(bytes);\n\t}\n\n\tasync json() {\n\t\treturn JSON.parse(await this.text());\n\t}\n}\n"],"mappings":";;;AAWA,IAAa,aAAb,MAAa,WAAW;CACvB;CAEA,OAAO,KAAK,SAIT;AACF,SAAO,IAAI,WAAW,EACrB,QAAQ,IAAI,YAAY,QAAQ,EAChC,CAAC;;CAGH,YAAY,EAAE,UAAkC;AAC/C,QAAKA,SAAU;;CAGhB,gBAAgB;AACf,SAAO,MAAKA,OAAQ,eAAe;;CAEpC,UAAU;AACT,SAAO,MAAKA,OAAQ,SAAS;;CAG9B,QAAQ;AACP,SAAO,MAAKA,OAAQ,UAAU;;CAG/B,MAAM,OAAO;EACZ,MAAM,QAAQ,MAAM,KAAK,OAAO;AAEhC,SAAO,IAAI,aAAa,CAAC,OAAO,MAAM;;CAGvC,MAAM,OAAO;AACZ,SAAO,KAAK,MAAM,MAAM,KAAK,MAAM,CAAC"}