diff --git a/common/src/read-stream.ts b/common/src/read-stream.ts index cac920d13..52a2ccb45 100644 --- a/common/src/read-stream.ts +++ b/common/src/read-stream.ts @@ -57,33 +57,6 @@ export async function read16BELengthLoop(readable: Readable, options: { throw new Error('stream ended'); } - -async function readLengthRaw(readable: Readable, length: number): Promise { - if (!length) { - return Buffer.alloc(0); - } - - { - const ret = readable.read(length); - if (ret) { - return ret; - } - } - - return new Promise((resolve, reject) => { - const r = () => { - const ret = readable.read(length); - if (ret) { - readable.removeListener('readable', r); - resolve(ret); - } - }; - - - readable.on('readable', r); - }); -} - export class StreamEndError extends Error { constructor() { super() diff --git a/packages/stream-promise/.gitignore b/packages/stream-promise/.gitignore new file mode 100644 index 000000000..08d7241be --- /dev/null +++ b/packages/stream-promise/.gitignore @@ -0,0 +1,11 @@ +node_modules +.DS_Store +.gcloud/ +dist/ +volume +scrypted.db +out +scrypted.db.bak +.exit +.update +.venv diff --git a/packages/stream-promise/.npmignore b/packages/stream-promise/.npmignore new file mode 100644 index 000000000..d73ca1970 --- /dev/null +++ b/packages/stream-promise/.npmignore @@ -0,0 +1,10 @@ +node_modules +.DS_Store +.gcloud/ +volume +scrypted.db +out +scrypted.db.bak +.exit +.update +__pycache__ diff --git a/packages/stream-promise/package-lock.json b/packages/stream-promise/package-lock.json new file mode 100644 index 000000000..65f07d3d7 --- /dev/null +++ b/packages/stream-promise/package-lock.json @@ -0,0 +1,101 @@ +{ + "name": "@scrypted/rpc", + "version": "0.0.2", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@scrypted/rpc", + "version": "0.0.2", + "license": "ISC", + "devDependencies": { + "@types/node": "^18.11.18", + "rimraf": "^4.1.1", + "typescript": "^4.7.4" + } + }, + "../../common": { + "name": "@scrypted/common", + "version": "1.0.1", + "extraneous": true, + "license": "ISC", + "dependencies": { + "@scrypted/sdk": "file:../sdk", + "@scrypted/server": "file:../server", + "http-auth-utils": "^3.0.2", + "node-fetch-commonjs": "^3.1.1", + "typescript": "^4.4.3" + }, + "devDependencies": { + "@types/node": "^16.9.0" + } + }, + "../../sdk/types": { + "name": "@scrypted/types", + "version": "0.0.9", + "extraneous": true, + "license": "ISC", + "devDependencies": {} + }, + "../common": { + "extraneous": true + }, + "../sdk/types": { + "extraneous": true + }, + "node_modules/@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.1.tgz", + "integrity": "sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg==", + "dev": true, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + } + }, + "dependencies": { + "@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, + "rimraf": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.1.tgz", + "integrity": "sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg==", + "dev": true + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + } + } +} diff --git a/packages/stream-promise/package.json b/packages/stream-promise/package.json new file mode 100644 index 000000000..1e92e4daa --- /dev/null +++ b/packages/stream-promise/package.json @@ -0,0 +1,19 @@ +{ + "name": "@scrypted/stream-promise", + "version": "0.0.2", + "description": "", + "main": "dist/index.js", + "scripts": { + "prebuild": "rimraf dist", + "build": "tsc --outDir dist", + "prepublishOnly": "npm run build", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "@types/node": "^18.11.18", + "rimraf": "^4.1.1", + "typescript": "^4.7.4" + } +} diff --git a/packages/stream-promise/src/index.ts b/packages/stream-promise/src/index.ts new file mode 120000 index 000000000..f6f4a3ac0 --- /dev/null +++ b/packages/stream-promise/src/index.ts @@ -0,0 +1 @@ +../../../common/src/read-stream.ts \ No newline at end of file diff --git a/packages/stream-promise/tsconfig.json b/packages/stream-promise/tsconfig.json new file mode 100644 index 000000000..eca6d199b --- /dev/null +++ b/packages/stream-promise/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "ES2019", + "noImplicitAny": true, + "outDir": "./dist", + "esModuleInterop": true, + "sourceMap": true, + "inlineSources": true, + "declaration": true, + "resolveJsonModule": true, + }, + "include": [ + "src/**/*" + ], +} \ No newline at end of file