@report-toolkit/inspector
Version:
See docs at [https://ibm.github.io/report-toolkit](https://ibm.github.io/report-toolkit)
45 lines (41 loc) • 1.01 kB
JavaScript
import ms from 'ms';
export const id = 'long-timeout';
export const meta = {
docs: {
category: 'event-queue',
description: 'Warn about far-future callbacks in timeout queue',
url: 'https://more-information-for-this-rule'
},
schema: {
additionalProperties: false,
properties: {
timeout: {
default: 10000,
minimum: 0,
type: ['integer', 'string']
}
},
type: 'object'
}
};
// @ts-ignore
export const inspect = ({timeout} = {}) => {
timeout = typeof timeout === 'string' ? ms(timeout) : timeout;
return context => {
const {libuv} = context;
return libuv
.filter(
handle =>
handle.type === 'timer' &&
!handle.expired &&
handle.is_referenced &&
handle.firesInMsFromNow >= timeout
)
.map(
handle =>
`libuv handle at address ${
handle.address
} is a timer with future expiry in ${ms(handle.firesInMsFromNow)}`
);
};
};