@z0mt3c/f1-telemetry-client
Version:
[](https://github.com/z0mt3c/f1-telemetry-client/actions/workflows/node.js.yml) [ • 3.41 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
const __1 = require("..");
const fs = __importStar(require("fs"));
const client = new __1.F1TelemetryClient({
port: 30500,
bigintEnabled: true,
});
fs.mkdir('./recordings', () => { });
client.on('*', ({ data, id, format, message }) => {
const mHeader = data?.m_header;
const filename = ['data', mHeader?.m_gameYear ?? 'unknown', format, mHeader?.m_sessionUID ?? 'no-session'].filter((n) => n !== null).join('-');
const serializable = JSON.stringify({
time: new Date().toJSON(),
gameYear: mHeader?.m_gameYear ?? 'unknown',
format,
packetID: id,
message,
parsed: data,
}, (key, value) => (typeof value === 'bigint' ? value.toString() : value)) + '\n';
fs.appendFileSync(`./recordings/${filename}-${id}.txt`, serializable);
fs.appendFileSync(`./recordings/${filename}-all.txt`, serializable);
});
client.on('error', ({ cause, context }) => {
try {
const { format, id, year, message, name } = context;
const causeMessage = cause instanceof Error ? cause.message : undefined;
console.log('Error', { format, id, name, year, causeMessage, message });
const filename = ['error', year, format, 'unknown-session'].filter((n) => n !== null).join('-');
const serializable = JSON.stringify({
time: new Date().toJSON(),
gameYear: year ?? 'unknown',
format,
packetID: id,
message,
causeMessage,
cause,
}, (key, value) => (typeof value === 'bigint' ? value.toString() : value)) + '\n';
fs.appendFileSync(`./recordings/${filename}-${id}.txt`, serializable);
}
catch (e) {
console.error('Error writing error log', e);
}
});
client.start();
['exit', 'SIGINT', 'SIGUSR1', 'SIGUSR2', 'uncaughtException', 'SIGTERM'].forEach((eventType) => {
;
process.on(eventType, (e) => {
console.error('stopping', e);
client.stop();
});
});