pcf-scripts
Version:
This package contains a module for building PowerApps Component Framework (PCF) controls. See project homepage how to install.
44 lines (42 loc) • 1.96 kB
JavaScript
;
// Copyright (C) Microsoft Corporation. All rights reserved.
Object.defineProperty(exports, "__esModule", { value: true });
exports.GenerateDesignTypesTask = void 0;
const fs = require("fs-extra");
const path = require("node:path");
const constants = require("../constants");
const designTypesGenerator_1 = require("../designTypesGenerator");
const diagnosticMessages_generated_1 = require("../diagnosticMessages.generated");
const featureManager_1 = require("../featureManager");
const locale_1 = require("../generated/locale");
class GenerateDesignTypesTask {
constructor() {
this._designTypesGenerator = new designTypesGenerator_1.DesignTypesGenerator();
this._options = {};
this._featureManager = new featureManager_1.FeatureManager();
}
getDescription() {
return (0, locale_1.translate)(diagnosticMessages_generated_1.strings.task_generate_design_types.key);
}
setOptions(options) {
this._options = { ...this._options, ...options };
}
run(context) {
if (this._featureManager.isFeatureEnabled("pcfTheming")) {
return context.mapDesignFile((designMaps) => {
return Promise.resolve(this.generateDesignTypes(designMaps));
});
}
return Promise.resolve();
}
// Generates DesignTypes.d.ts file from map.Fluent.xml design maps
generateDesignTypes(context) {
const comment = `/*\n*This is auto generated from the map.Fluent.xml file\n*/\n\n`;
const code = comment + this._designTypesGenerator.generateDesignTypes(context.getParsedDesignMap());
const generatedDir = path.join(context.getPathForDesignTypeFile(), constants.TYPING_FOLDER_NAME);
fs.ensureDirSync(generatedDir);
fs.writeFileSync(path.join(generatedDir, constants.DESIGN_TYPE_FILE_NAME), code);
}
}
exports.GenerateDesignTypesTask = GenerateDesignTypesTask;
//# sourceMappingURL=designTypesTask.js.map