mirror of
https://github.com/strapi/strapi.git
synced 2025-07-23 09:00:19 +00:00
61 lines
1.3 KiB
JavaScript
61 lines
1.3 KiB
JavaScript
![]() |
'use strict';
|
||
|
|
||
|
const os = require('os');
|
||
|
const fetch = require('node-fetch');
|
||
|
|
||
|
function trackEvent(event, body) {
|
||
|
try {
|
||
|
return fetch('https://analytics.strapi.io/track', {
|
||
|
method: 'POST',
|
||
|
body: JSON.stringify({
|
||
|
event,
|
||
|
...body,
|
||
|
}),
|
||
|
timeout: 1000,
|
||
|
headers: { 'Content-Type': 'application/json' },
|
||
|
}).catch(() => {});
|
||
|
} catch (err) {
|
||
|
/** ignore errors*/
|
||
|
return Promise.resolve();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function trackError({ scope, error }) {
|
||
|
try {
|
||
|
return trackEvent('didNotCreateProject', {
|
||
|
uuid: scope.uuid,
|
||
|
deviceId: scope.deviceId,
|
||
|
properties: {
|
||
|
error: typeof error == 'string' ? error : error && error.message,
|
||
|
os: os.type(),
|
||
|
version: scope.strapiVersion,
|
||
|
},
|
||
|
});
|
||
|
} catch (err) {
|
||
|
/** ignore errors*/
|
||
|
return Promise.resolve();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function trackUsage({ event, scope, error }) {
|
||
|
try {
|
||
|
return trackEvent(event, {
|
||
|
uuid: scope.uuid,
|
||
|
deviceId: scope.deviceId,
|
||
|
properties: {
|
||
|
error: typeof error == 'string' ? error : error && error.message,
|
||
|
os: os.type(),
|
||
|
version: scope.strapiVersion,
|
||
|
},
|
||
|
});
|
||
|
} catch (err) {
|
||
|
/** ignore errors*/
|
||
|
return Promise.resolve();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
trackError,
|
||
|
trackUsage,
|
||
|
};
|