You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.2 KiB

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
function _react() {
const data = _interopRequireDefault(require("react"));
_react = function _react() {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = api => {
const GA_KEY = process.env.GA_KEY;
if (!api.userConfig.analytics && !GA_KEY) return;
api.describe({
key: 'analytics',
config: {
schema(joi) {
return joi.object();
}
}
});
const _api$userConfig$analy = api.userConfig.analytics,
analytics = _api$userConfig$analy === void 0 ? {} : _api$userConfig$analy;
const _ref = analytics || {},
_ref$baidu = _ref.baidu,
baidu = _ref$baidu === void 0 ? false : _ref$baidu,
_ref$ga = _ref.ga,
ga = _ref$ga === void 0 ? GA_KEY : _ref$ga;
api.logger.log('insert analytics');
const baiduTpl = code => {
return `
(function() {
var hm = document.createElement('script');
hm.src = 'https://hm.baidu.com/hm.js?${code}';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(hm, s);
})();
`;
};
const gaTpl = code => {
return `
(function(){
if (!location.port) {
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', '${code}', 'auto');
ga('send', 'pageview');
}
})();
`;
};
if (baidu) {
api.addHTMLHeadScripts(() => [{
content: 'var _hmt = _hmt || [];'
}]);
}
if (api.env !== 'development') {
if (baidu) {
api.addHTMLHeadScripts(() => [{
content: baiduTpl(baidu)
}]);
}
if (ga) {
api.addHTMLScripts(() => [{
content: gaTpl(ga)
}]);
}
}
};
exports.default = _default;