1{"version":3,"file":"TemplateFile.js","sourceRoot":"","sources":["../src/TemplateFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,+BAA4B;AAE5B,mCAAmC;AACnC,yCAAsC;AAStC,MAAa,YAAY;IAEd;IACA;IACA;IAHT,YACS,QAAgB,EAChB,WAAqB,mBAAQ,CAAC,IAAI,EAClC,oBAA6B,KAAK;QAFlC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAA0B;QAClC,sBAAiB,GAAjB,iBAAiB,CAAiB;IACxC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,UAAkB;QAChD,OAAO,EAAE,CAAC,IAAI,CACZ,IAAA,WAAI,EAAC,gBAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EACtD,IAAA,WAAI,EAAC,WAAW,EAAE,UAAU,CAAC,EAC7B;YACE,SAAS,EAAE,IAAI;SAChB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,WAAmB,EACnB,QAAgB,EAChB,SAA4B;QAE5B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,SAAS,CAAC,gBAAgB,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;SAChE;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AA5BD,oCA4BC;AAED,MAAa,QAAQ;IAEV;IACA;IACA;IAHT,YACS,YAAoB,EACpB,WAAqB,mBAAQ,CAAC,IAAI,EAClC,oBAA6B,KAAK;QAFlC,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAA0B;QAClC,sBAAiB,GAAjB,iBAAiB,CAAiB;IACxC,CAAC;IAEJ,IAAI,CAAC,WAAmB,EAAE,UAAkB;QAC1C,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAA,WAAI,EAAC,WAAW,EAAE,UAAU,CAAC,EAAE;YAC/D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,WAAmB,EAAE,QAAgB,EAAE,SAAc;QAC5D,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,SAAS,CAAC,gBAAgB,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;SAChE;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AApBD,4BAoBC;AAED,MAAa,oBAAoB;IACX;IAApB,YAAoB,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAExC,IAAI,CAAC,oBAA6B,KAAK;QACrC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC3E,CAAC;IAED,WAAW,CAAC,oBAA6B,KAAK;QAC5C,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,CAAC,oBAA6B,KAAK;QACxC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC1E,CAAC;CACF;AAdD,oDAcC","sourcesContent":["import * as fs from 'fs-extra';\nimport { join } from 'path';\n\nimport { SelfPath } from './Paths';\nimport { Platform } from './Platform';\nimport TemplateEvaluator from './TemplateEvaluator';\n\nexport interface ProjectFile {\n platform: Platform;\n copy(projectPath: string, outputPath: string): Promise<void>;\n evaluate(projectPath: string, filePath: string, evaluator: TemplateEvaluator): Promise<void>;\n}\n\nexport class TemplateFile implements ProjectFile {\n constructor(\n public template: string,\n public platform: Platform = Platform.Both,\n public shouldBeEvaluated: boolean = false\n ) {}\n\n async copy(projectPath: string, outputPath: string): Promise<void> {\n return fs.copy(\n join(SelfPath, 'templates', this.template, outputPath),\n join(projectPath, outputPath),\n {\n recursive: true,\n }\n );\n }\n\n async evaluate(\n projectPath: string,\n filePath: string,\n evaluator: TemplateEvaluator\n ): Promise<void> {\n if (this.shouldBeEvaluated) {\n return evaluator.compileFileAsync(join(projectPath, filePath));\n }\n\n return Promise.resolve();\n }\n}\n\nexport class UserFile implements ProjectFile {\n constructor(\n public userFilePath: string,\n public platform: Platform = Platform.Both,\n public shouldBeEvaluated: boolean = false\n ) {}\n\n copy(projectPath: string, outputPath: string): Promise<void> {\n return fs.copy(this.userFilePath, join(projectPath, outputPath), {\n recursive: true,\n });\n }\n\n evaluate(projectPath: string, filePath: string, evaluator: any): Promise<void> {\n if (this.shouldBeEvaluated) {\n return evaluator.compileFileAsync(join(projectPath, filePath));\n }\n\n return Promise.resolve();\n }\n}\n\nexport class TemplateFilesFactory {\n constructor(private template: string) {}\n\n file(shouldBeEvaluated: boolean = false): TemplateFile {\n return new TemplateFile(this.template, Platform.Both, shouldBeEvaluated);\n }\n\n androidFile(shouldBeEvaluated: boolean = false): TemplateFile {\n return new TemplateFile(this.template, Platform.Android, shouldBeEvaluated);\n }\n\n iosFile(shouldBeEvaluated: boolean = false): TemplateFile {\n return new TemplateFile(this.template, Platform.iOS, shouldBeEvaluated);\n }\n}\n"]}