Skip to content

Overall modernization#22

Closed
SerhiyGreench wants to merge 20 commits into
masterfrom
overall-modernization
Closed

Overall modernization#22
SerhiyGreench wants to merge 20 commits into
masterfrom
overall-modernization

Conversation

@SerhiyGreench

Copy link
Copy Markdown
Contributor

No description provided.

@coveralls

coveralls commented Jul 6, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 28825164886

Warning

No base build found for commit 1f14888 on master.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 88.596%

Details

  • Patch coverage: No coverable lines changed in this PR.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 3165
Covered Lines: 2829
Line Coverage: 89.38%
Relevant Branches: 509
Covered Branches: 426
Branch Coverage: 83.69%
Branches in Coverage %: Yes
Coverage Strength: 21.48 hits per line

💛 - Coveralls

SerhiyGreench and others added 13 commits July 6, 2026 23:40
- Make tsc idempotent: clean compiled artifacts before every build via a
  clean-compiled helper routed through build/prepare/test, fixing TS5055
  ("would overwrite input file") on repeated builds and npm install.
- Drop the `open` dependency; the doc and benchmark flows now print a
  file:// link instead of auto-launching a browser.
- Add typedoc.json (name, excludes, externalSymbolLinkMappings) for a
  zero-warning docs build; the doc script prints a file:// link.
- Remove obsolete @access/@constructor JSDoc tags (redundant with TS
  visibility keywords).
- Add TypeScript-mapped coverage (--enable-source-maps) and a
  test-coverage-html report script that prints a file:// link.
- Remove redundant mocha/nyc/typescript package.json blocks.
- Make isThenable generic so downstream stricter configs compile.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S7M9ZZCRc9SUFAchcuPLw6
- Make @Profile work as both a standard (TC39) and a legacy
  (experimentalDecorators) decorator via runtime mode detection, so
  services that must keep legacy decorators (e.g. sequelize-typescript
  consumers) can still use it alongside @imqueue/rpc's standard decorators.
- Restore the public uuid() helper (src/uuid.ts) and its export, dropped
  during the earlier modernization; downstream services rely on it via
  @imqueue/rpc re-export.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S7M9ZZCRc9SUFAchcuPLw6
Remove the Coveralls coverage-upload step and run `npm test` instead of
`npm run test-lcov`; the workflow is now a simple lint/format + test gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S7M9ZZCRc9SUFAchcuPLw6
@SerhiyGreench
SerhiyGreench requested a review from Mikhus July 8, 2026 08:08

@Mikhus Mikhus left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, trake a look to my comments

* Default time (ms) send() waits for the first cluster server to become
* available before rejecting, when the cluster is still empty.
*/
const SEND_INIT_TIMEOUT = 30000;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would make this configurable via environment variables

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

smth like IMQ_SEND_INIT_TIMEOUT to match the other vars naming pattern

Comment thread src/IMessageQueue.ts
* // ... implementation goes here
* return this;
* }
public async start(): Promise<SomeMQAdapter> {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

formatting looks broken to me here, could you, please verify? I see it is comment section, but, anyway, code indentation looks weird

Comment thread src/profile.ts
* public myMethod() {
* // ...
* }
@profile(true) // forced profiling

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here about indentation formatting

Comment thread src/profile.ts
* }
@profile() // profiling happened only depending on env DEBUG flag
private innerMethod() {
// ...

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here about indentation formatting

Comment thread src/promisify.ts
@@ -1,113 +0,0 @@
/*!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would keep this for backward compatibility for the cases where someone has been using this function from the lib, because even if it is not used in the project internally there might be some uusers exporting and using this for some reason

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or we can remove, but we need to keep it then perfectly stated in documentation

Comment thread src/RedisQueue.ts
'end ' +
'redis.call("zremrangebyscore", KEYS[1], ' +
'"-inf", ARGV[1]) ' +
'while messages[i] do ' +

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would keep readable indentation here as well, just to make human read more easily :)

Comment thread test/uuid.ts
@@ -1,73 +0,0 @@
/*!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would keep the export of native uuid, so keep backward compatibility for thoise who's been exporting this from imq

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here and in other similar places - if we remove, MUST be well documented as migration plan

@SerhiyGreench
SerhiyGreench deleted the overall-modernization branch July 8, 2026 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants