{"version":3,"file":"parsable_file.js","sourceRoot":"","sources":["../src/parsable_file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA4B;AAE5B;IAA+C,iCAAI;IAAnD;;IAgCA,CAAC;IA/BC,sBAAI,wCAAa;aAAjB;YAAA,iBAIC;YAHC,OAAO,CAAC;;;;;4BACC,KAAA,IAAI,CAAC,KAAK,CAAA;4BAAC,qBAAM,IAAI,CAAC,OAAO,EAAA;gCAApC,sBAAO,SAAA,IAAI,GAAO,SAAkB,EAAC,EAAC;;;iBACvC,CAAC,EAAE,CAAC;QACP,CAAC;;;OAAA;IACD,iCAAS,GAAT,UAAU,OAAW;QACnB,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,6BAAK,GAAL,UAAM,OAAe;QACnB,OAAQ,OAAwB,CAAC;IACnC,CAAC;IACD,2BAA2B;IAC3B,gCAAQ,GAAR,UAAS,OAAU,EAAE,UAAkB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACK,6BAAK,GAAX,UAAY,OAAW;;;;;;wBACrB,IAAI,CAAC,aAAa,CAAC;wBACZ,KAAA,IAAI,CAAC,KAAK,CAAA;wBAAC,qBAAM,iBAAM,eAAe,YAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAA;4BAAtE,sBAAO,SAAA,IAAI,GAAO,SAAoD,EAAC,EAAC;;;;KACzE;IACK,8BAAM,GAAZ,UAAa,OAAW;;;;;;wBACtB,IAAI,CAAC,aAAa,CAAC;wBACZ,KAAA,IAAI,CAAC,KAAK,CAAA;wBAAC,qBAAM,iBAAM,gBAAgB,YAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAA;4BAAvE,sBAAO,SAAA,IAAI,GAAO,SAAqD,EAAC,EAAC;;;;KAC1E;IACK,8BAAM,GAAZ,UAAa,OAAW;;;;;;wBACtB,IAAI,CAAC,aAAa,CAAC;wBACZ,KAAA,IAAI,CAAC,KAAK,CAAA;wBAAC,qBAAM,iBAAM,gBAAgB,YAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAA;4BAAvE,sBAAO,SAAA,IAAI,GAAO,SAAqD,EAAC,EAAC;;;;KAC1E;IACK,8BAAM,GAAZ,UAAa,OAAU;;;;;;wBACd,KAAA,IAAI,CAAC,KAAK,CAAA;wBAAO,KAAA,IAAI,CAAC,eAAe,CAAA;wBAAC,KAAA,IAAI,CAAC,QAAQ,CAAA;8BAAC,OAAO;wBAAE,qBAAM,IAAI,CAAC,OAAO,EAAA;4BAApE,qBAAM,SAAA,IAAI,GAAiB,SAAA,IAAI,aAAmB,SAAkB,GAAC,EAAC,EAAA;4BAAxF,sBAAO,SAAA,IAAI,GAAO,SAAsE,EAAC,EAAC;;;;KAC3F;IACH,oBAAC;AAAD,CAAC,AAhCD,CAA+C,WAAI,GAgClD;AAhCY,sCAAa","sourcesContent":["import {File} from './file';\n\nexport class ParseableFile extends File {\n get parsedContent(): Promise {\n return (async () => {\n return this.parse(await this.content);\n })();\n }\n stringify(content?: T): string {\n if (typeof content === 'string') return content;\n throw new Error('Unimplemented default stringify.');\n }\n parse(content: string): T {\n return (content as unknown) as T;\n }\n // eslint-disable-next-line\n finalize(content: T, rawContent: string): string {\n return this.stringify(content);\n }\n async write(content?: T): Promise {\n this.readonlyError;\n return this.parse(await super.writeFromString(this.stringify(content)));\n }\n async create(content?: T): Promise {\n this.readonlyError;\n return this.parse(await super.createFromString(this.stringify(content)));\n }\n async upsert(content?: T): Promise {\n this.readonlyError;\n return this.parse(await super.upsertFromString(this.stringify(content)));\n }\n async update(content: T): Promise {\n return this.parse(await this.writeFromString(this.finalize(content, await this.content)));\n }\n}\n"]}