pcf-scripts
Version:
This package contains a module for building PowerApps Component Framework (PCF) controls. See project homepage how to install.
58 lines (56 loc) • 2.69 kB
JavaScript
;
/*
* Copyright (c) Microsoft Corporation. All rights reserved.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createGlobalTelemetryEnvironment = createGlobalTelemetryEnvironment;
exports.getUserSettingsFromSharedInstall = getUserSettingsFromSharedInstall;
const os = require("node:os");
const path = require("node:path");
const process = require("node:process");
const uuid_1 = require("uuid");
const AppTelemetryUtility_1 = require("./AppTelemetryUtility");
const TelemetryConstants_1 = require("./TelemetryConstants");
const TelemetryUserSettingsFileProvider_1 = require("./TelemetryUserSettingsFileProvider");
function createGlobalTelemetryEnvironment(getEnvironmentVariable = getEnvironmentVariableFromProcess) {
return {
optOut: (0, AppTelemetryUtility_1.parseBooleanEnvironmentVariable)(getEnvironmentVariable(TelemetryConstants_1.EnvironmentVariableNames.PpToolsTelemetryOptOut)),
developerMode: (0, AppTelemetryUtility_1.parseBooleanEnvironmentVariable)(getEnvironmentVariable(TelemetryConstants_1.EnvironmentVariableNames.PpToolsTelemetryDeveloperMode)),
dataBoundary: getEnvironmentVariable(TelemetryConstants_1.EnvironmentVariableNames.PpToolsTelemetryDataBoundary),
automationAgent: getEnvironmentVariable(TelemetryConstants_1.EnvironmentVariableNames.PpToolsAutomationAgent),
};
}
function getEnvironmentVariableFromProcess(name) {
return process.env[name];
}
function getUserSettingsFromSharedInstall(logger) {
const userSettingsPath = path.join(getAppDataPath(), "Microsoft", "PowerAppsCli", "usersettings.json");
const userSettingsProvider = new TelemetryUserSettingsFileProvider_1.TelemetryUserSettingsFileProvider(userSettingsPath);
return getCurrentUserSettingsOrDefault(userSettingsProvider, logger);
}
function getAppDataPath() {
const platform = os.platform();
switch (platform) {
case "darwin":
return "~/Library/";
case "linux":
return `${process.env.HOME}/.config/`;
case "win32":
return process.env.LOCALAPPDATA ?? "";
default:
throw new Error(`Platform "${platform}" is not currently supported`);
}
}
function getCurrentUserSettingsOrDefault(provider, logger) {
try {
return provider.GetCurrent();
}
catch (error) {
logger?.error(`[pp-tooling-telemetry-node]: ITelemetryUserSettingsProvider.GetCurrent threw unexpected error. Returning new user settings. Error: ${error}`);
return {
uniqueId: (0, uuid_1.v4)(),
telemetryEnabled: true,
};
}
}
//# sourceMappingURL=AppTelemetryConfigUtility.js.map