Skip to content

refactor(kit): simplify kitDomToPng, kitRotationImage, kitChangeEventDisabled + optional peer deps - #8

Merged
rdlabo merged 1 commit into
mainfrom
devin/1782959807-review-fixes
Jul 2, 2026
Merged

refactor(kit): simplify kitDomToPng, kitRotationImage, kitChangeEventDisabled + optional peer deps#8
rdlabo merged 1 commit into
mainfrom
devin/1782959807-review-fixes

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

コミット 4c34b8a のレビューで指摘した4点を修正。

kitDomToPng — void IIFE in Promise constructor → plain loop

- const dataUrl: string = await new Promise((resolve) => {
-   void (async () => {
-     for (let i = 0; i < 10; i++) { ... if (url) { resolve(url); return; } }
-     resolve('');
-   })();
- });
+ let dataUrl = '';
+ for (let i = 0; i < 10; i++) {
+   const url = await domtoimage.toPng(element, { ... });
+   if (url) { dataUrl = url; break; }
+ }

void (async () => { ... })() inside a Promise constructor swallows rejections from domtoimage.toPng(). A plain for loop propagates errors normally.

kitRotationImage — simplify image.onload registration

- const loaded = () => new Promise<void>((resolve) => { image.onload = () => resolve(); });
- setTimeout(() => (image.src = imageData));
- await loaded();
+ const loaded = new Promise<void>((resolve) => { image.onload = () => resolve(); });
+ image.src = imageData;
+ await loaded;

Register onload before setting src (works even for cached images). No setTimeout indirection needed.

kitChangeEventDisabled — direct read instead of update side-effect

- completeEvent.update((event) => { if (event) { event.disabled = disabled; } return event; });
+ const event = completeEvent();
+ if (event) { event.disabled = disabled; }

update() is for transforming the signal value; here the returned reference is unchanged and the DOM mutation is a side-effect. Direct read is clearer.

peerDependenciesMeta — feature-scoped peers marked optional

Adds "optional": true for @capacitor/preferences, @capacitor/status-bar, @capacitor-community/in-app-review, @rdlabo/capacitor-brotherprint, dom-to-image-more so apps that don't use theme/review/printer features won't see npm warnings.

Link to Devin session: https://app.devin.ai/sessions/56d6f0b6efea45b594241ffd5e2ba916

…Disabled + optional peer deps

- kitDomToPng: replace void IIFE inside Promise constructor with a plain
  for-loop — avoids swallowed rejections from domtoimage.toPng().
- kitRotationImage: register image.onload before setting src (simpler,
  no setTimeout indirection).
- kitChangeEventDisabled: read the signal directly instead of abusing
  update() for a DOM side-effect.
- Add peerDependenciesMeta with optional:true for feature-scoped peers
  (preferences, status-bar, in-app-review, brotherprint, dom-to-image-more)
  so apps that don't use those features won't see npm warnings.

Co-Authored-By: rdlabo <sakakibara@rdlabo.jp>
@rdlabo rdlabo self-assigned this Jul 2, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@netlify

netlify Bot commented Jul 2, 2026

Copy link
Copy Markdown

Deploy Preview for rdlabo-ionic-angular-library ready!

Name Link
🔨 Latest commit fae44dc
🔍 Latest deploy log https://app.netlify.com/projects/rdlabo-ionic-angular-library/deploys/6a45cfac89c2670008cedfae
😎 Deploy Preview https://deploy-preview-8--rdlabo-ionic-angular-library.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@rdlabo
rdlabo merged commit d0dddf1 into main Jul 2, 2026
9 checks passed
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.

1 participant