"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
/*
 * Copyright (c) 2019, salesforce.com, inc.
 * All rights reserved.
 * Licensed under the BSD 3-Clause license.
 * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
 */
const path = require("path");
const i18n_1 = require("../i18n");
const utils_1 = require("../utils");
const baseGenerator_1 = require("./baseGenerator");
class LightningEventGenerator extends baseGenerator_1.BaseGenerator {
    validateOptions() {
        utils_1.CreateUtil.checkInputs(this.options.eventname);
        utils_1.CreateUtil.checkInputs(this.options.template);
        const fileparts = path.resolve(this.outputdir).split(path.sep);
        if (!this.options.internal && !fileparts.includes('aura')) {
            throw new Error(i18n_1.nls.localize('MissingAuraDir'));
        }
    }
    generate() {
        return tslib_1.__awaiter(this, void 0, void 0, function* () {
            const { template, eventname, internal } = this.options;
            this.sourceRootWithPartialPath('lightningevent');
            if (!internal) {
                yield this.render(this.templatePath('_auradefinitionbundle.evt-meta.xml'), this.destinationPath(path.join(this.outputdir, eventname, `${eventname}.evt-meta.xml`)), {
                    eventname,
                    apiVersion: this.apiversion,
                    description: i18n_1.nls.localize('LightningEventBundle'),
                });
            }
            yield this.render(this.templatePath(`${template}.evt`), this.destinationPath(path.join(this.outputdir, eventname, `${eventname}.evt`)), {});
        });
    }
}
exports.default = LightningEventGenerator;
//# sourceMappingURL=lightningEventGenerator.js.map