UNPKG

@signalk/streams

Version:

Utilities for handling streams of Signal K data

74 lines (73 loc) 2.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMockApp = createMockApp; exports.collectStreamOutput = collectStreamOutput; exports.noopDebug = noopDebug; exports.createDebugStub = createDebugStub; const events_1 = require("events"); function createMockApp(options = {}) { const emitter = new events_1.EventEmitter(); const signalk = new events_1.EventEmitter(); const providerStatuses = []; const providerErrors = []; const handledMessages = []; const propertyValues = []; const sourceDeltaStore = {}; const app = Object.assign(emitter, { selfContext: options.selfContext ?? 'vessels.urn:mrn:imo:mmsi:000000000', isNmea2000OutAvailable: options.isNmea2000OutAvailable ?? false, deltaCache: { setSourceDelta(key, delta) { sourceDeltaStore[key] = delta; } }, config: { configPath: options.configPath ?? '/tmp/test-config', settings: { loggingDirectory: options.loggingDirectory, keepMostRecentLogsOnly: options.keepMostRecentLogsOnly, logCountToKeep: options.logCountToKeep }, getExternalHostname() { return 'localhost'; }, getExternalPort() { return 3000; } }, setProviderStatus(id, msg) { providerStatuses.push({ id, msg }); }, setProviderError(id, msg) { providerErrors.push({ id, msg }); }, handleMessage(id, delta) { handledMessages.push({ id, delta }); }, emitPropertyValue(name, value) { propertyValues.push({ name, value }); }, signalk, providerStatuses, providerErrors, handledMessages, propertyValues }); return app; } function collectStreamOutput(stream) { return new Promise((resolve, reject) => { const results = []; stream.on('data', (chunk) => results.push(chunk)); stream.on('end', () => resolve(results)); stream.on('error', reject); }); } function noopDebug() { const fn = ((..._args) => { }); fn.enabled = false; return fn; } function createDebugStub() { return () => noopDebug(); }