-
Notifications
You must be signed in to change notification settings - Fork 273
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(generator): create a toolbox #8295
base: master
Are you sure you want to change the base?
Conversation
e040772
to
e1f9db6
Compare
cd49201
to
6d281b3
Compare
6d281b3
to
6e0a61b
Compare
const next = this.#source.next().catch(async error => { | ||
const e = new Error(`Error in the source generator ${error.message}`) | ||
// @todo : why can't I set the cause ? | ||
// e.cause = error |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't let commented code if you don't have a solution at the moment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you know of can I set the cause of an error in typescript ? this looks like a standard property for me https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
throw new Error("Action failed.", { cause: err }); ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Expected 0-1 arguments, but got 2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it may be my IDE that is misconfigured
} else { | ||
speed = this.#bytesPerSecond | ||
} | ||
assert.ok(speed > 0, `speed must be greate than zero, ${speed} computed`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
great -> greater
assert.ok(speed > 0, `speed must be greate than zero, ${speed} computed`) | ||
return speed | ||
} | ||
constructor(speed: number | (() => number)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you should set a default speed or force minimal speed, as speed must be greater than zero.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a positive speed is already enforced through assert. How would you do it ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
speed: number = 1234
yield value | ||
} | ||
} finally { | ||
// in case of error : cleanup the timeout |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In finally it will happen in case or error or success.
I think you could completely remove this comment, it doesn't bring anything to comment the clearTimeout() just after.
assert.strictEqual(Math.round((end - start) / 1000), 2) | ||
}) | ||
test('multiple generator test', async () => { | ||
const generator = makeGenerator(1024 * 1024, 10) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couldn't you put it in a beforeEach() ?
export class Timeout<T> implements AsyncGenerator { | ||
#source: AsyncGenerator<T> | ||
#timeout: number | ||
constructor(source, timeout: number) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you should set a default timeout value or allow min/max range.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think timeout value is very context dependent, and not setting one should force the user to use something sane in his context
I could force it to be a positive number though
{ | ||
"name": "@vates/generator-toolbox", | ||
"version": "0.0.0", | ||
"main": "src/index.mts", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is not supposed to be dist/index.mjs
?
"version": "0.0.0", | ||
"main": "src/index.mts", | ||
"license": "MIT", | ||
"private": true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you set "private": true in your package.json, then npm will refuse to publish it.
https://docs.npmjs.com/cli/v11/configuring-npm/package-json#private
Why?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I want to be sure this is not published for now . But I will have to remove this flag before merge
"@tsconfig/node-lts": "^20.1.3", | ||
"@tsconfig/recommended": "^1.0.7", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you add theses dependencies, then you need to extends your tsconfig.json
See: https://www.npmjs.com/package/@tsconfig/recommended
Are these packages really necessary?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tryed to follow : https://typescript-eslint.io/getting-started/
"url": "https://vates.fr" | ||
}, | ||
"engines": { | ||
"node": ">=8.10" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe node: >=22.3.0
?
To match your @types/node
version. No?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI is still on 20.x
eslint didn't block this incomplete commit
4fdcfb0
to
90ebbc5
Compare
90ebbc5
to
af16bee
Compare
Description
Code written with the goal of being compatible with node 23.6+, no enum nor protected
Review in order :
Checklist
Fixes #007
,See xoa-support#42
,See https://...
)Introduced by
CHANGELOG.unreleased.md
Review process
Notes: