office-addin-dev-settings
Version:
Configure developer settings for Office Add-ins.
306 lines • 13.8 kB
JavaScript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
Object.defineProperty(exports, "__esModule", { value: true });
exports.unregisterAllAddIns = exports.unregisterAddIn = exports.setWebView = exports.setSourceBundleUrl = exports.registerAddIn = exports.isLiveReloadEnabled = exports.isDebuggingEnabled = exports.getWebView = exports.getSourceBundleUrl = exports.getRuntimeLoggingPath = exports.getOpenDevTools = exports.getEnabledDebuggingMethods = exports.getRegisteredAddIns = exports.enableRuntimeLogging = exports.enableLiveReload = exports.enableDebugging = exports.disableRuntimeLogging = exports.disableLiveReload = exports.disableDebugging = exports.clearDevSettings = exports.SourceBundleUrlComponents = exports.RegisteredAddin = exports.WebViewType = exports.DebuggingMethod = exports.toWebViewTypeName = void 0;
const tslib_1 = require("tslib");
const fs_1 = tslib_1.__importDefault(require("fs"));
const office_addin_manifest_1 = require("office-addin-manifest");
const path_1 = tslib_1.__importDefault(require("path"));
const devSettingsMac = tslib_1.__importStar(require("./dev-settings-mac"));
const devSettingsWindows = tslib_1.__importStar(require("./dev-settings-windows"));
const office_addin_usage_data_1 = require("office-addin-usage-data");
/* global process */
const defaultRuntimeLogFileName = "OfficeAddins.log.txt";
var dev_settings_windows_1 = require("./dev-settings-windows");
Object.defineProperty(exports, "toWebViewTypeName", { enumerable: true, get: function () { return dev_settings_windows_1.toWebViewTypeName; } });
var DebuggingMethod;
(function (DebuggingMethod) {
DebuggingMethod[DebuggingMethod["Direct"] = 0] = "Direct";
DebuggingMethod[DebuggingMethod["Proxy"] = 1] = "Proxy";
/** @deprecated use Proxy */
DebuggingMethod[DebuggingMethod["Web"] = 1] = "Web";
})(DebuggingMethod = exports.DebuggingMethod || (exports.DebuggingMethod = {}));
var WebViewType;
(function (WebViewType) {
WebViewType["Default"] = "Default";
WebViewType["IE"] = "IE";
WebViewType["Edge"] = "Edge";
WebViewType["EdgeChromium"] = "Edge Chromium";
})(WebViewType = exports.WebViewType || (exports.WebViewType = {}));
class RegisteredAddin {
constructor(id, manifestPath) {
this.id = id;
this.manifestPath = manifestPath;
}
}
exports.RegisteredAddin = RegisteredAddin;
class SourceBundleUrlComponents {
get url() {
const host = this.host !== undefined ? this.host : "localhost";
const port = this.port !== undefined ? this.port : "8081";
const path = this.path !== undefined ? this.path : "{path}";
const extension = this.extension !== undefined ? this.extension : ".bundle";
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
return `http://${host}${host && port ? ":" : ""}${port}/${path}${extension}`;
}
constructor(host, port, path, extension) {
this.host = host;
this.port = port;
this.path = path;
this.extension = extension;
}
}
exports.SourceBundleUrlComponents = SourceBundleUrlComponents;
function clearDevSettings(addinId) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.clearDevSettings(addinId);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.clearDevSettings = clearDevSettings;
function disableDebugging(addinId) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return enableDebugging(addinId, false);
});
}
exports.disableDebugging = disableDebugging;
function disableLiveReload(addinId) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return enableLiveReload(addinId, false);
});
}
exports.disableLiveReload = disableLiveReload;
function disableRuntimeLogging() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.disableRuntimeLogging();
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.disableRuntimeLogging = disableRuntimeLogging;
function enableDebugging(addinId, enable = true, method = DebuggingMethod.Direct, openDevTools = false) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.enableDebugging(addinId, enable, method, openDevTools);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.enableDebugging = enableDebugging;
function enableLiveReload(addinId, enable = true) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.enableLiveReload(addinId, enable);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.enableLiveReload = enableLiveReload;
function enableRuntimeLogging(path) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32": {
if (!path) {
const tempDir = process.env.TEMP;
if (!tempDir) {
throw new office_addin_usage_data_1.ExpectedError("The TEMP environment variable is not defined.");
}
path = path_1.default.normalize(`${tempDir}/${defaultRuntimeLogFileName}`);
}
const pathExists = fs_1.default.existsSync(path);
if (pathExists) {
const stat = fs_1.default.statSync(path);
if (stat.isDirectory()) {
throw new office_addin_usage_data_1.ExpectedError(`You need to specify the path to a file. This is a directory: "${path}".`);
}
}
try {
const file = fs_1.default.openSync(path, "a+");
fs_1.default.closeSync(file);
}
catch (_a) {
throw new office_addin_usage_data_1.ExpectedError(pathExists
? `You need to specify the path to a writable file. Unable to write to: "${path}".`
: `You need to specify the path where the file can be written. Unable to write to: "${path}".`);
}
yield devSettingsWindows.enableRuntimeLogging(path);
return path;
}
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.enableRuntimeLogging = enableRuntimeLogging;
/**
* Returns the manifest paths for the add-ins that are registered
*/
function getRegisteredAddIns() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "darwin":
return devSettingsMac.getRegisteredAddIns();
case "win32":
return devSettingsWindows.getRegisteredAddIns();
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.getRegisteredAddIns = getRegisteredAddIns;
function getEnabledDebuggingMethods(addinId) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.getEnabledDebuggingMethods(addinId);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.getEnabledDebuggingMethods = getEnabledDebuggingMethods;
function getOpenDevTools(addinId) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.getOpenDevTools(addinId);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.getOpenDevTools = getOpenDevTools;
function getRuntimeLoggingPath() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.getRuntimeLoggingPath();
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.getRuntimeLoggingPath = getRuntimeLoggingPath;
function getSourceBundleUrl(addinId) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.getSourceBundleUrl(addinId);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.getSourceBundleUrl = getSourceBundleUrl;
function getWebView(addinId) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.getWebView(addinId);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.getWebView = getWebView;
function isDebuggingEnabled(addinId) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.isDebuggingEnabled(addinId);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.isDebuggingEnabled = isDebuggingEnabled;
function isLiveReloadEnabled(addinId) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.isLiveReloadEnabled(addinId);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.isLiveReloadEnabled = isLiveReloadEnabled;
function registerAddIn(manifestPath, registration) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32": {
const realManifestPath = fs_1.default.realpathSync(manifestPath);
return devSettingsWindows.registerAddIn(realManifestPath, registration);
}
case "darwin":
return devSettingsMac.registerAddIn(manifestPath);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.registerAddIn = registerAddIn;
function setSourceBundleUrl(addinId, components) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.setSourceBundleUrl(addinId, components);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.setSourceBundleUrl = setSourceBundleUrl;
function setWebView(addinId, webViewType) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "win32":
return devSettingsWindows.setWebView(addinId, webViewType);
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.setWebView = setWebView;
function unregisterAddIn(manifestPath) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const manifest = yield office_addin_manifest_1.OfficeAddinManifest.readManifestFile(manifestPath);
switch (process.platform) {
case "darwin":
return devSettingsMac.unregisterAddIn(manifest.id || "", manifestPath);
case "win32": {
const realManifestPath = fs_1.default.realpathSync(manifestPath);
return devSettingsWindows.unregisterAddIn(manifest.id || "", realManifestPath);
}
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.unregisterAddIn = unregisterAddIn;
function unregisterAllAddIns() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
switch (process.platform) {
case "darwin":
return devSettingsMac.unregisterAllAddIns();
case "win32":
return devSettingsWindows.unregisterAllAddIns();
default:
throw new office_addin_usage_data_1.ExpectedError(`Platform not supported: ${process.platform}.`);
}
});
}
exports.unregisterAllAddIns = unregisterAllAddIns;
//# sourceMappingURL=dev-settings.js.map
;