{"version":3,"file":"writable_file.js","sourceRoot":"","sources":["../src/writable_file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA+B;AAC/B,iDAA6C;AAE7C;IAAkC,gCAAY;IAA9C;;IAqBA,CAAC;IAnBO,sCAAe,GAArB,UAAsB,OAAgB;;;;;wBACpC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;wBACxB,qBAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAA;;wBAA7B,SAA6B,CAAC;wBAC9B,qBAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;wBACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;wBAC5B,sBAAO,IAAI,CAAC,OAAO,EAAC;;;;KACrB;IACK,uCAAgB,GAAtB,UAAuB,OAAgB;;;;;wBACrC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;wBACpB,qBAAM,IAAI,CAAC,MAAM,EAAA;;wBAArB,IAAI,SAAiB;4BAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;wBAC7E,sBAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAC;;;;KACtC;IACK,uCAAgB,GAAtB,UAAuB,OAAgB;;;;;wBACrC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;wBAClB,qBAAM,IAAI,CAAC,MAAM,EAAA;;6BAAnB,CAAC,CAAC,SAAiB,CAAC,EAApB,wBAAoB;wBACtB,qBAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAA;;wBAApC,SAAoC,CAAC;;4BAEvC,sBAAO,IAAI,CAAC,OAAO,EAAC;;;;KACrB;IACH,mBAAC;AAAD,CAAC,AArBD,CAAkC,4BAAY,GAqB7C;AArBY,oCAAY","sourcesContent":["import * as fs from 'fs-extra';\nimport {ReadableFile} from './readable_file';\n\nexport class WritableFile extends ReadableFile {\n props?: ConstructorParameters[0];\n async writeFromString(content?: string) {\n content = content ?? '';\n await fs.mkdirp(this.dirname);\n await fs.writeFile(this.path, content);\n this.cacheContent = content;\n return this.content;\n }\n async createFromString(content?: string) {\n content = content ?? '';\n if (await this.exists) throw new Error('cannot create file, already exists');\n return this.writeFromString(content);\n }\n async upsertFromString(content?: string) {\n content = content ?? '';\n if (!(await this.exists)) {\n await this.createFromString(content);\n }\n return this.content;\n }\n}\n"]}