UNPKG

pcf-scripts

Version:

This package contains a module for building PowerApps Component Framework (PCF) controls. See project homepage how to install.

83 lines (81 loc) 3.87 kB
#!/usr/bin/env node "use strict"; // Copyright (C) Microsoft Corporation. All rights reserved. Object.defineProperty(exports, "__esModule", { value: true }); const yargs_1 = require("yargs"); const constants_1 = require("../constants"); const taskRunner_1 = require("../taskRunner"); const taskGroup_1 = require("../taskGroup"); const PackageVersionUtils_1 = require("../generated/PackageVersionUtils"); const apptelemetryclient_1 = require("../generated/telemetry/apptelemetryclient"); const pp_tooling_telemetry_node_1 = require("../generated/pp-tooling-telemetry-node"); const buildConfig_1 = require("../buildConfig"); // eslint-disable-next-line @typescript-eslint/no-floating-promises RunAsync(); async function RunAsync() { const telemetryEnv = pp_tooling_telemetry_node_1.AppTelemetryConfigUtility.createGlobalTelemetryEnvironment(); const version = (0, PackageVersionUtils_1.getPackageVersion)(constants_1.PCF_SCRIPTS_PACKAGE_NAME, process.cwd()) ?? "0.0.1"; const telemetryClient = (0, apptelemetryclient_1.setupAppInsightsAndClient)(constants_1.PCF_SCRIPTS_PACKAGE_NAME, version, telemetryEnv); let result = {}; let resultCode = 0; const startTime = Date.now(); let buildSource; if (yargs_1.argv.buildSource === apptelemetryclient_1.BuildSource[apptelemetryclient_1.BuildSource.VisualStudio]) { buildSource = apptelemetryclient_1.BuildSource.VisualStudio; } else if (yargs_1.argv.buildSource === apptelemetryclient_1.BuildSource[apptelemetryclient_1.BuildSource.MSBuild]) { buildSource = apptelemetryclient_1.BuildSource.MSBuild; } else { buildSource = apptelemetryclient_1.BuildSource.NPM; } const sessionStartProperties = { taskGroup: yargs_1.argv._[0], buildSource: apptelemetryclient_1.BuildSource[buildSource], ...pp_tooling_telemetry_node_1.AppTelemetryUtility.createCommonAppStartProperties(telemetryEnv), }; try { telemetryClient.trackEvent({ name: apptelemetryclient_1.TelemetryEvent[apptelemetryclient_1.TelemetryEvent.Start], properties: { ...sessionStartProperties }, }); if (!yargs_1.argv?._?.length || !Object.keys(taskGroup_1.standardTaskGroups).includes(yargs_1.argv._[0].toString())) { printUsage(); resultCode = 400; return; } const taskRunner = new taskRunner_1.TaskRunner(yargs_1.argv, (0, buildConfig_1.getBuildConfig)()); result = (await taskRunner.run(taskGroup_1.standardTaskGroups)); resultCode = 200; } catch (e) { resultCode = 500; console.error(`[${constants_1.PCF_SCRIPTS_PACKAGE_NAME}] [Error] encountered unexpected error:\n${e}`); telemetryClient.trackException({ exception: e, properties: { trackedAtMemberName: "RunAsync" } }); } finally { const isSuccessful = resultCode === 200; process.exitCode = isSuccessful ? 0 : 1; const customMeasurement = {}; if (isSuccessful && !!result?.compileTime) { customMeasurement.compileTimeMs = result.compileTime; } telemetryClient.trackEvent({ name: apptelemetryclient_1.TelemetryEvent[apptelemetryclient_1.TelemetryEvent.End], measurements: customMeasurement }); telemetryClient.trackRequest({ name: "Session", url: "", duration: Date.now() - startTime, resultCode: resultCode, success: isSuccessful, properties: { ...sessionStartProperties }, }); telemetryClient.flush(); } } function printUsage() { console.log("Unsupported command"); console.log(`Usage: ${constants_1.PCF_SCRIPTS_PACKAGE_NAME} ${Object.keys(taskGroup_1.standardTaskGroups) .map((verb) => "[" + verb + "]") .join(" ")}`); } //# sourceMappingURL=pcf-scripts.js.map