Files
xen-orchestra/@xen-orchestra/backups/_createStreamThrottle.js
Julien Fontanet 1b9cd56e9f feat(backups): implement speed limit at job level (#6728)
Related to #4119

The UI side is still missing.
2023-03-17 17:54:40 +01:00

18 lines
449 B
JavaScript

'use strict'
const { pipeline } = require('node:stream')
const { ThrottleGroup } = require('@kldzj/stream-throttle')
const identity = require('lodash/identity.js')
const noop = Function.prototype
module.exports = function createStreamThrottle(rate) {
if (rate === 0) {
return identity
}
const group = new ThrottleGroup({ rate })
return function throttleStream(stream) {
return pipeline(stream, group.createThrottle(), noop)
}
}