6989a98d75
- Arkitektur: docs/auth/passwordless-architecture.md - Backend: iom/quixzoom-auth-service/ (FastAPI + Redis) - Webb: quixzoom-market-pages/se/login/ (QR-kod + polling) - App: iom/quixzoom-app/src/features/auth/ (push + deep links) Flöde: QR-kod → app-godkännande → webb-inloggad
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
/**
|
|
* rejection-stream.js: TODO: add file header handler.
|
|
*
|
|
* (C) 2010 Charlie Robbins
|
|
* MIT LICENCE
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
const { Writable } = require('readable-stream');
|
|
|
|
/**
|
|
* TODO: add class description.
|
|
* @type {RejectionStream}
|
|
* @extends {Writable}
|
|
*/
|
|
module.exports = class RejectionStream extends Writable {
|
|
/**
|
|
* Constructor function for the RejectionStream responsible for wrapping a
|
|
* TransportStream; only allowing writes of `info` objects with
|
|
* `info.rejection` set to true.
|
|
* @param {!TransportStream} transport - Stream to filter to rejections
|
|
*/
|
|
constructor(transport) {
|
|
super({ objectMode: true });
|
|
|
|
if (!transport) {
|
|
throw new Error('RejectionStream requires a TransportStream instance.');
|
|
}
|
|
|
|
this.handleRejections = true;
|
|
this.transport = transport;
|
|
}
|
|
|
|
/**
|
|
* Writes the info object to our transport instance if (and only if) the
|
|
* `rejection` property is set on the info.
|
|
* @param {mixed} info - TODO: add param description.
|
|
* @param {mixed} enc - TODO: add param description.
|
|
* @param {mixed} callback - TODO: add param description.
|
|
* @returns {mixed} - TODO: add return description.
|
|
* @private
|
|
*/
|
|
_write(info, enc, callback) {
|
|
if (info.rejection) {
|
|
return this.transport.log(info, callback);
|
|
}
|
|
|
|
callback();
|
|
return true;
|
|
}
|
|
};
|