cdkdx
Version:
Zero-config CLI for aws cdk development
21 lines • 3.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TemplateFile = void 0;
const file_base_1 = require("./file-base");
class TemplateFile extends file_base_1.FileBase {
constructor(project, filePath, { context, template }) {
super(project, TemplateFile.replacePlaceholders(filePath, context));
this.template = template;
this.context = context;
}
static replacePlaceholders(template, context) {
const keys = Object.keys(context);
const func = Function(...keys, 'return `' + template + '`;');
return func(...keys.map((k) => context[k]));
}
get data() {
return TemplateFile.replacePlaceholders(this.template, this.context);
}
}
exports.TemplateFile = TemplateFile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZXMvdGVtcGxhdGUtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyQ0FBdUM7QUFPdkMsTUFBYSxZQUFhLFNBQVEsb0JBQVE7SUFjeEMsWUFDRSxPQUFnQixFQUNoQixRQUFnQixFQUNoQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQXVCO1FBRTFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXBFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFuQk0sTUFBTSxDQUFDLG1CQUFtQixDQUMvQixRQUFnQixFQUNoQixPQUFnQztRQUVoQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRTdELE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBYUQsSUFBYyxJQUFJO1FBQ2hCLE9BQU8sWUFBWSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7Q0FDRjtBQTVCRCxvQ0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi9wcm9qZWN0JztcbmltcG9ydCB7IEZpbGVCYXNlIH0gZnJvbSAnLi9maWxlLWJhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRmlsZU9wdGlvbnMge1xuICB0ZW1wbGF0ZTogc3RyaW5nO1xuICBjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVwbGFjZVBsYWNlaG9sZGVycyhcbiAgICB0ZW1wbGF0ZTogc3RyaW5nLFxuICAgIGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb250ZXh0KTtcbiAgICBjb25zdCBmdW5jID0gRnVuY3Rpb24oLi4ua2V5cywgJ3JldHVybiBgJyArIHRlbXBsYXRlICsgJ2A7Jyk7XG5cbiAgICByZXR1cm4gZnVuYyguLi5rZXlzLm1hcCgoaykgPT4gY29udGV4dFtrXSkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogUHJvamVjdCxcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxuICAgIHsgY29udGV4dCwgdGVtcGxhdGUgfTogVGVtcGxhdGVGaWxlT3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCwgVGVtcGxhdGVGaWxlLnJlcGxhY2VQbGFjZWhvbGRlcnMoZmlsZVBhdGgsIGNvbnRleHQpKTtcblxuICAgIHRoaXMudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkYXRhKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRlbXBsYXRlRmlsZS5yZXBsYWNlUGxhY2Vob2xkZXJzKHRoaXMudGVtcGxhdGUsIHRoaXMuY29udGV4dCk7XG4gIH1cbn1cbiJdfQ==