tweedegolf / storage-abstraction

Provides an abstraction layer for interacting with a storage; the storage can be local or in the cloud.
MIT License
106 stars 18 forks source link

Why not making storage adapters peer dependencies? #50

Closed ps73 closed 8 months ago

ps73 commented 8 months ago

First thank you for this great library. I am using it in a prototype currently and I really enjoy the fact that I can quickly move from internal storage to s3 based storage.

I am thinking about why the storage adapter dependencies are not peer dependencies, because currently the backblaze-b2 package has a vulnerability because of one inside an older axios version which this package uses.

I have already created a pull request inside the repo of backblaze-b2 which got merged some weeks ago but was not released yet.

Imho the best would be if every storage adapter would be a peer dependency requiring the users to install the seperate package by their own when they want to use a specific storage adapter. For me the benefit would be that this package does not need to update the dependencies every time when a patch or minor release without breaking change was released and on the other hand there won't be installed any useless package inside a project which only uses one explicit storage adapter.

abudaan commented 8 months ago

Thanks, great idea!

I have already implemented it in version 2.0.0. which I hope to finalize and publish in the coming week.

abudaan commented 8 months ago

Interestingly enough, I originally had the idea to move the adapters in to their own packages. For some reason I left the idea, not sure why. I found some remains of the idea on NPM:

image

ps73 commented 8 months ago

Hi @abudaan, that sounds great!

I am so thankful for your great work. 🎉

abudaan commented 8 months ago

Version 2.0.0 has been published to NPM