Get heap analytics id from ENV variable
This commit is contained in:
@@ -16,9 +16,7 @@ export const BUY_QUOTE_UPDATE_INTERVAL_TIME_MS = ONE_SECOND_MS * 15;
|
||||
export const DEFAULT_GAS_PRICE = GWEI_IN_WEI.mul(6);
|
||||
export const DEFAULT_ESTIMATED_TRANSACTION_TIME_MS = ONE_MINUTE_MS * 2;
|
||||
export const ETH_GAS_STATION_API_BASE_URL = 'https://ethgasstation.info';
|
||||
export const ANALYTICS_ENABLED = process.env.NODE_ENV === 'production' || process.env.ENABLE_HEAP;
|
||||
export const HEAP_ANALYTICS_DEVELOPMENT_APP_ID = '507265531';
|
||||
export const HEAP_ANALYTICS_PRODUCTION_APP_ID = '2323640988';
|
||||
export const HEAP_ANALYTICS_ID = process.env.HEAP_ANALYTICS_ID;
|
||||
export const COINBASE_API_BASE_URL = 'https://api.coinbase.com/v2';
|
||||
export const PROGRESS_STALL_AT_WIDTH = '95%';
|
||||
export const PROGRESS_FINISH_ANIMATION_TIME_MS = 200;
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { ObjectMap } from '@0x/types';
|
||||
import { logUtils } from '@0x/utils';
|
||||
import * as _ from 'lodash';
|
||||
|
||||
import { ANALYTICS_ENABLED, HEAP_ANALYTICS_DEVELOPMENT_APP_ID, HEAP_ANALYTICS_PRODUCTION_APP_ID } from '../constants';
|
||||
import { HEAP_ANALYTICS_ID } from '../constants';
|
||||
|
||||
import { AnalyticsEventOptions, AnalyticsUserOptions } from './analytics';
|
||||
|
||||
@@ -24,14 +25,11 @@ const getWindow = (): ModifiedWindow => {
|
||||
return window as ModifiedWindow;
|
||||
};
|
||||
|
||||
const getHeapAppId = (): string => {
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
return HEAP_ANALYTICS_PRODUCTION_APP_ID;
|
||||
}
|
||||
return HEAP_ANALYTICS_DEVELOPMENT_APP_ID;
|
||||
};
|
||||
|
||||
const setupZeroExInstantHeap = () => {
|
||||
if (_.isUndefined(HEAP_ANALYTICS_ID)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const curWindow = getWindow();
|
||||
// Set property to specify that this is zeroEx's heap
|
||||
curWindow.zeroExInstantLoadedHeap = true;
|
||||
@@ -71,7 +69,7 @@ const setupZeroExInstantHeap = () => {
|
||||
)
|
||||
(window as any).heap[p[c]] = o(p[c]);
|
||||
});
|
||||
(window as any).heap.load(getHeapAppId());
|
||||
(window as any).heap.load(HEAP_ANALYTICS_ID);
|
||||
/* tslint:enable */
|
||||
|
||||
return curWindow.heap as HeapAnalytics;
|
||||
@@ -93,14 +91,14 @@ export const heapUtil = {
|
||||
return setupZeroExInstantHeap();
|
||||
},
|
||||
evaluateHeapCall: (heapFunctionCall: (heap: HeapAnalytics) => void): void => {
|
||||
if (!ANALYTICS_ENABLED) {
|
||||
if (_.isUndefined(HEAP_ANALYTICS_ID)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const curHeap = heapUtil.getHeap();
|
||||
if (curHeap) {
|
||||
try {
|
||||
if (curHeap.appid !== getHeapAppId()) {
|
||||
if (curHeap.appid !== HEAP_ANALYTICS_ID) {
|
||||
// Integrator has included heap after us and reset the app id
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -11,50 +11,70 @@ const GIT_SHA = childProcess
|
||||
.toString()
|
||||
.trim();
|
||||
|
||||
const outputPath = process.env.WEBPACK_OUTPUT_PATH || 'umd';
|
||||
const config = {
|
||||
entry: {
|
||||
instant: './src/index.umd.ts',
|
||||
},
|
||||
output: {
|
||||
filename: '[name].js',
|
||||
path: path.resolve(__dirname, outputPath),
|
||||
library: 'zeroExInstant',
|
||||
libraryTarget: 'umd',
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': {
|
||||
GIT_SHA: JSON.stringify(GIT_SHA),
|
||||
ENABLE_HEAP: JSON.stringify(process.env.ENABLE_HEAP),
|
||||
NPM_PACKAGE_VERSION: JSON.stringify(process.env.npm_package_version),
|
||||
},
|
||||
}),
|
||||
],
|
||||
devtool: 'source-map',
|
||||
resolve: {
|
||||
extensions: ['.js', '.json', '.ts', '.tsx'],
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.(ts|tsx)$/,
|
||||
loader: 'awesome-typescript-loader',
|
||||
},
|
||||
],
|
||||
},
|
||||
devServer: {
|
||||
contentBase: path.join(__dirname, 'public'),
|
||||
port: 5000,
|
||||
host: '0.0.0.0',
|
||||
after: () => {
|
||||
if (config.devServer.host === '0.0.0.0') {
|
||||
console.log(
|
||||
`webpack-dev-server can be accessed externally at: http://${ip.address()}:${config.devServer.port}`,
|
||||
);
|
||||
}
|
||||
},
|
||||
},
|
||||
const HEAP_PRODUCTION_ENV_VAR_NAME = 'INSTANT_HEAP_ANALYTICS_ID_PRODUCTION';
|
||||
const HEAP_DEVELOPMENT_ENV_VAR_NAME = 'INSTANT_HEAP_ANALYTICS_ID_DEVELOPMENT';
|
||||
const getHeapAnalyticsId = modeName => {
|
||||
if (modeName === 'production') {
|
||||
if (process.env[HEAP_PRODUCTION_ENV_VAR_NAME]) {
|
||||
return process.env[HEAP_PRODUCTION_ENV_VAR_NAME];
|
||||
}
|
||||
throw new Error(`Must have ${HEAP_PRODUCTION_ENV_VAR_NAME} set`);
|
||||
}
|
||||
|
||||
if (modeName === 'development') {
|
||||
return process.env[HEAP_DEVELOPMENT_ENV_VAR_NAME];
|
||||
}
|
||||
|
||||
return undefined;
|
||||
};
|
||||
|
||||
module.exports = config;
|
||||
module.exports = (env, argv) => {
|
||||
const outputPath = process.env.WEBPACK_OUTPUT_PATH || 'umd';
|
||||
const config = {
|
||||
entry: {
|
||||
instant: './src/index.umd.ts',
|
||||
},
|
||||
output: {
|
||||
filename: '[name].js',
|
||||
path: path.resolve(__dirname, outputPath),
|
||||
library: 'zeroExInstant',
|
||||
libraryTarget: 'umd',
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': {
|
||||
GIT_SHA: JSON.stringify(GIT_SHA),
|
||||
HEAP_ANALYTICS_ID: getHeapAnalyticsId(argv.mode),
|
||||
NPM_PACKAGE_VERSION: JSON.stringify(process.env.npm_package_version),
|
||||
},
|
||||
}),
|
||||
],
|
||||
devtool: 'source-map',
|
||||
resolve: {
|
||||
extensions: ['.js', '.json', '.ts', '.tsx'],
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.(ts|tsx)$/,
|
||||
loader: 'awesome-typescript-loader',
|
||||
},
|
||||
],
|
||||
},
|
||||
devServer: {
|
||||
contentBase: path.join(__dirname, 'public'),
|
||||
port: 5000,
|
||||
host: '0.0.0.0',
|
||||
after: () => {
|
||||
if (config.devServer.host === '0.0.0.0') {
|
||||
console.log(
|
||||
`webpack-dev-server can be accessed externally at: http://${ip.address()}:${
|
||||
config.devServer.port
|
||||
}`,
|
||||
);
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
return config;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user