schoero / swissqrbill

Swiss QR Bill generation in Node.js and browsers
MIT License
155 stars 29 forks source link

External class / Next #388

Closed danielpanero closed 10 months ago

danielpanero commented 1 year ago

Voila, sorry for the delay... I dislocated my shoulder while mountain climbing so I have only one hand to code :rofl:

I changed one last thing... I merged class PDF and PDF_ as in my opinion, it's cleaner implementation and use of streams, furthermore, now there is no need to differentiate between browser and node.

We should also merge PDF_ and ExtendedPDF, but we will see...

Before updating how-to-create-a-complete-bill.md and the examples let me know what you think :punch:

schoero commented 1 year ago

I'm also sorry for the delay @danielpanero. I did a quick review and I'm not sure if we should remove the overloads completely and just provide an API with streams. I think streams can be scary for beginners and I want to provide an easy to use solution for those users.

Other than that, I found a few small things that could be improved, but overall I think your changes improve the library quite a bit.

Before we proceed, I'd like to play around with the new API and see how it feels.

It will be another few days before I get to it, but I'll keep you updated.

danielpanero commented 1 year ago

Hi, I was too very busy with university work, but finally, I have some time for my projects. Did you by any chance had time to review it?

danielpanero commented 1 year ago

?

schoero commented 1 year ago

Hi Daniel

I'm really sorry for letting you wait for such a long time and recently not replying.

I have started reviewing your pull request and noticed some issues with the documentation.

The reason it takes me so long is that I am actually working on another project to autogenerate the documentation from the source code. I have started that project a while ago and I thought instead of fixing the documentation manually I could just finish my other project and use the generated documentation instead.

Well, as it turns out, it is much more complex to autogenerate documentation and therefore it took me much longer than I anticipated.

Somewhere I have mentioned initially that I wanted to have the same set of tools across all my projects. That being testing, documentation, code style, automatic releases etc. As some of those things require code changes, I wanted everything in one major release.

I have made some progress on the v4 branch where I have implemented some parts of that, but in hindsight, I should not have "waited" for the documentation part.

That being said, I think I am getting close to the point where it all comes together and I can finally release v4 with your improvements.

I really don't want to be the person who creates a library and then abandons it.

You can expect me to get back to you soon.

skch-17 commented 1 year ago

Any news?

I as well would like this feature. Because currently I do not have any possibility to pass the Options Object to the PDFKit Constructor.

As well would it be possible to export the pdfkit for the browser bundle? Because otherwise it's not nice for the browser pre built version if you need the full pdfkit.

import PDFDocument from "pdfkit"
...

const SwissQRBill = {
  utils: utils,
 ....
  PDFDocument: PDFDocument
};

Currently i have to build it by myself.

danielpanero commented 1 year ago

Hi, did you manage to sort out the problems with the documentation?

danielpanero commented 11 months ago

?

schoero commented 11 months ago

Hi @danielpanero

Sorry again for the silence. Yes I made progress with my other tasks. SwissQRBill is now my primary focus.

@skch-17 I will try to address your suggestion, as well as all other suggestions, that have come up in the meantime with the next major version.

schoero commented 10 months ago

I have now integrated your changes into the v4 branch and loosened additional rules to make it even more flexible.

The progress can be tracked in issue #414 or in the pull request #415.

Thank you very much for your contribution and patience @danielpanero.