cameras: fix signal + timeout combined usage

This commit is contained in:
Koushik Dutta
2024-03-27 22:05:05 -07:00
parent 30f9e358b7
commit 3c1801ad01
12 changed files with 19 additions and 20 deletions

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/amcrest",
"version": "0.0.143",
"version": "0.0.144",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@scrypted/amcrest",
"version": "0.0.143",
"version": "0.0.144",
"license": "Apache",
"dependencies": {
"@scrypted/common": "file:../../common",

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/amcrest",
"version": "0.0.143",
"version": "0.0.144",
"description": "Amcrest Plugin for Scrypted",
"author": "Scrypted",
"license": "Apache",

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/hikvision",
"version": "0.0.145",
"version": "0.0.146",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/hikvision",
"version": "0.0.145",
"version": "0.0.146",
"license": "Apache",
"dependencies": {
"@scrypted/common": "file:../../common",

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/hikvision",
"version": "0.0.145",
"version": "0.0.146",
"description": "Hikvision Plugin for Scrypted",
"author": "Scrypted",
"license": "Apache",

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/onvif",
"version": "0.1.12",
"version": "0.1.13",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@scrypted/onvif",
"version": "0.1.12",
"version": "0.1.13",
"license": "Apache",
"dependencies": {
"@scrypted/common": "file:../../common",

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/onvif",
"version": "0.1.12",
"version": "0.1.13",
"description": "ONVIF Camera Plugin for Scrypted",
"author": "Scrypted",
"license": "Apache",

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/reolink",
"version": "0.0.64",
"version": "0.0.65",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@scrypted/reolink",
"version": "0.0.64",
"version": "0.0.65",
"license": "Apache",
"dependencies": {
"@scrypted/common": "file:../../common",

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/reolink",
"version": "0.0.64",
"version": "0.0.65",
"description": "Reolink Plugin for Scrypted",
"author": "Scrypted",
"license": "Apache",

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/snapshot",
"version": "0.2.41",
"version": "0.2.42",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/snapshot",
"version": "0.2.41",
"version": "0.2.42",
"dependencies": {
"@types/node": "^20.10.6",
"sharp": "^0.33.1",

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/snapshot",
"version": "0.2.41",
"version": "0.2.42",
"description": "Snapshot Plugin for Scrypted",
"scripts": {
"scrypted-setup-project": "scrypted-setup-project",

View File

@@ -98,6 +98,8 @@ export async function httpFetch<T extends HttpFetchOptions<Readable>>(options: T
if (options.timeout) {
controller = new AbortController();
timeout = setTimeout(() => controller.abort(), options.timeout);
options.signal?.addEventListener('abort', () => controller.abort('abort'));
}
const request = proto.request(url, {
@@ -109,11 +111,6 @@ export async function httpFetch<T extends HttpFetchOptions<Readable>>(options: T
timeout: options.timeout,
});
if (controller)
options.signal?.addEventListener('abort', () => controller.abort('abort'));
else
options.signal?.addEventListener('abort', () => request.destroy(new Error('abort')));
if (body)
body.pipe(request);
else

View File

@@ -129,6 +129,8 @@ export async function domFetch<T extends HttpFetchOptions<BodyInit>>(options: T)
if (options.timeout) {
controller = new AbortController();
timeout = setTimeout(() => controller.abort(), options.timeout);
options.signal?.addEventListener('abort', () => controller.abort('abort'));
}
try {