Add window webworker checks to Common (Basic SKU) (#712)

* Add window webworker checks to Util

* fix window webworker check

* Reexport dependency types in both SKU

* Change fallback global scope to Microsoft
This commit is contained in:
Mark Wolff 2018-11-12 14:38:46 -08:00 коммит произвёл GitHub
Родитель c853219183
Коммит 5571517180
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
8 изменённых файлов: 92 добавлений и 32 удалений

Просмотреть файл

@ -18,7 +18,6 @@
"rollup-plugin-node-resolve": "^3.4.0",
"rollup-plugin-replace": "^2.1.0",
"rollup-plugin-uglify": "^6.0.0",
"rollup-plugin-visualizer": "^0.9.2",
"source-map-loader": "^0.2.3",
"ts-loader": "^4.4.2",
"typescript": "2.5.3",

Просмотреть файл

@ -1,5 +1,4 @@
import nodeResolve from "rollup-plugin-node-resolve";
import visualizer from "rollup-plugin-visualizer";
import {uglify} from "rollup-plugin-uglify";
import replace from "rollup-plugin-replace";
@ -18,7 +17,7 @@ const browserRollupConfigFactory = (isProduction, libVersion = '1') => {
file: `browser/ai.${libVersion}.js`,
banner: banner,
format: "umd",
name: "aisdk",
name: "Microsoft",
sourcemap: true
},
plugins: [
@ -43,10 +42,6 @@ const browserRollupConfigFactory = (isProduction, libVersion = '1') => {
output: {
preamble: banner
}
}),
visualizer({
filename: "./statistics.html",
sourcemap: true
})
);
}
@ -61,7 +56,7 @@ const nodeUmdRollupConfigFactory = (isProduction) => {
file: `dist/applicationinsights-web.js`,
banner: banner,
format: "umd",
name: "ai",
name: "Microsoft",
sourcemap: true
},
plugins: [

Просмотреть файл

@ -1,13 +1,48 @@
export {
export {
Initialization as ApplicationInsights,
IApplicationInsights,
Snippet
} from './Initialization';
} from "./Initialization";
export { IConfiguration, AppInsightsCore, IAppInsightsCore, LoggingSeverity, _InternalMessageId, ITelemetryItem } from "@microsoft/applicationinsights-core-js";
export { ApplicationInsights as ApplicationAnalytics } from "@microsoft/applicationinsights-analytics-js";
export { Util, IConfig, IDependencyTelemetry, PageViewPerformance, IPageViewPerformanceTelemetry, IPageViewTelemetry, IExceptionTelemetry, IAutoExceptionTelemetry, ITraceTelemetry, IMetricTelemetry, IEventTelemetry, IAppInsights } from "@microsoft/applicationinsights-common";
// Re-exports
export {
IConfiguration,
AppInsightsCore,
IAppInsightsCore,
LoggingSeverity,
_InternalMessageId,
ITelemetryItem
} from "@microsoft/applicationinsights-core-js";
export {
Util,
IConfig,
IDependencyTelemetry,
IPageViewPerformanceTelemetry,
IPageViewTelemetry,
IExceptionTelemetry,
IAutoExceptionTelemetry,
ITraceTelemetry,
IMetricTelemetry,
IEventTelemetry,
IAppInsights,
SeverityLevel,
Event,
Exception,
Metric,
PageView,
PageViewPerformance,
RemoteDependencyData,
Trace
} from "@microsoft/applicationinsights-common";
export { Sender } from "@microsoft/applicationinsights-channel-js";
export { PropertiesPlugin, IPropertiesPlugin } from "@microsoft/applicationinsights-properties-js";
export { AjaxPlugin as DependenciesPlugin, IDependenciesPlugin } from '@microsoft/applicationinsights-dependencies-js';
export {
ApplicationInsights as ApplicationAnalytics
} from "@microsoft/applicationinsights-analytics-js";
export {
PropertiesPlugin,
IPropertiesPlugin
} from "@microsoft/applicationinsights-properties-js";
export {
AjaxPlugin as DependenciesPlugin,
IDependenciesPlugin
} from "@microsoft/applicationinsights-dependencies-js";

Просмотреть файл

@ -1,7 +1,14 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
import { IConfiguration, AppInsightsCore, IAppInsightsCore, LoggingSeverity, _InternalMessageId, CoreUtils, ITelemetryItem } from "@microsoft/applicationinsights-core-js";
import {
IConfiguration,
AppInsightsCore,
IAppInsightsCore,
_InternalMessageId,
CoreUtils,
ITelemetryItem
} from "@microsoft/applicationinsights-core-js";
import { Sender } from "@microsoft/applicationinsights-channel-js";
"use strict";
@ -20,9 +27,11 @@ export class ApplicationInsights {
* @memberof ApplicationInsights
*/
constructor(config: IConfiguration) {
// initialize the queue and config in case they are undefined
if (CoreUtils.isNullOrUndefined(config) || CoreUtils.isNullOrUndefined(config.instrumentationKey)) {
if (
CoreUtils.isNullOrUndefined(config) ||
CoreUtils.isNullOrUndefined(config.instrumentationKey)
) {
throw new Error("Invalid input configuration");
}
this.config = config;
@ -31,12 +40,11 @@ export class ApplicationInsights {
}
/**
* Initialize this instance of ApplicationInsights
* Initialize this instance of ApplicationInsights
*
* @memberof ApplicationInsights
*/
public initialize(): void {
this.core = new AppInsightsCore();
let extensions = [];
let appInsightsChannel: Sender = new Sender();
@ -68,10 +76,29 @@ export class ApplicationInsights {
public flush(async: boolean = true) {
this.core.getTransmissionControls().forEach(controls => {
controls.forEach(plugin => {
async ? (<Sender>plugin).flush() : (<Sender>plugin).triggerSend(async);
async
? (<Sender>plugin).flush()
: (<Sender>plugin).triggerSend(async);
});
});
}
}
export { IConfiguration, AppInsightsCore, IAppInsightsCore, LoggingSeverity, _InternalMessageId, CoreUtils, ITelemetryItem };
export {
IConfiguration,
AppInsightsCore,
IAppInsightsCore,
CoreUtils,
ITelemetryItem
} from "@microsoft/applicationinsights-core-js";
export {
SeverityLevel,
Event,
Exception,
Metric,
PageView,
PageViewPerformance,
RemoteDependencyData,
Trace
} from "@microsoft/applicationinsights-common";
export { Sender } from "@microsoft/applicationinsights-channel-js";

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "@microsoft/applicationinsights-web-basic",
"version": "1.0.0-beta.3",
"version": "1.0.0-beta.5",
"description": "Microsoft Application Insights Javascript SDK core and channel",
"main": "dist/applicationinsights-web-basic.js",
"module": "dist-esm/index.js",
@ -22,7 +22,8 @@
"typescript": "2.5.3"
},
"dependencies": {
"@microsoft/applicationinsights-channel-js": "^1.0.0-beta.2",
"@microsoft/applicationinsights-common": "^1.0.0-beta.5",
"@microsoft/applicationinsights-channel-js": "^1.0.0-beta.4",
"@microsoft/applicationinsights-core-js": "^1.0.0-beta.2"
}
}

Просмотреть файл

@ -17,7 +17,7 @@ const browserRollupConfigFactory = (isProduction, libV = '1') => {
file: `browser/aib.${libV}.js`,
banner: banner,
format: "umd",
name: "aibasic",
name: "Microsoft",
sourcemap: true
},
plugins: [
@ -56,7 +56,7 @@ const nodeUmdRollupConfigFactory = (isProduction) => {
file: `dist/applicationinsights-web-basic.js`,
banner: banner,
format: "umd",
name: "aib",
name: "Microsoft",
sourcemap: true
},
plugins: [

Просмотреть файл

@ -1,11 +1,10 @@
{
"name": "@microsoft/applicationinsights-common",
"version": "1.0.0-beta.3",
"version": "1.0.0-beta.5",
"description": "Microsoft Application Insights Common JavaScript Library",
"main": "./dist/applicationinsights-common.min.js",
"main": "./dist/applicationinsights-common.js",
"module": "./dist-esm/applicationinsights-common.js",
"types": "./types/applicationinsights-common.d.ts",
"browser": "./browser/applicationinsights-common.min.js",
"sideEffects": false,
"repository": {
"type": "git",

Просмотреть файл

@ -52,6 +52,9 @@ export class Util {
var fail: boolean;
var uid;
try {
if (typeof window === 'undefined') {
return null;
}
uid = new Date;
storage = storageType === StorageType.LocalStorage ? window.localStorage : window.sessionStorage;
storage.setItem(uid, uid);
@ -520,7 +523,7 @@ export class Util {
* @return {boolean} - true if the handler was successfully added
*/
public static addEventHandler(eventName: string, callback: any): boolean {
if (!window || typeof eventName !== 'string' || typeof callback !== 'function') {
if (typeof window === 'undefined' || !window || typeof eventName !== 'string' || typeof callback !== 'function') {
return false;
}
@ -688,7 +691,8 @@ export class DateTimeUtils {
/**
* Get the number of milliseconds since 1970/01/01 in local timezone
*/
public static Now = (window && window.performance && window.performance.now && window.performance.timing) ?
public static Now = (typeof window === 'undefined') ? function () { return new Date().getTime(); } :
(window.performance && window.performance.now && window.performance.timing) ?
function () {
return window.performance.now() + window.performance.timing.navigationStart;
}