Giter VIP home page Giter VIP logo

Comments (8)

TastefulElk avatar TastefulElk commented on September 26, 2024 4

Definitely agree with going the modular approach of separate packages. Whilst there's definitely value in keeping reasonably in line with the python implementation, splitting it up into modules will be more flexible for users and tree shaking won't be a soft requirement as the project grows

from aws-lambda-powertools-typescript.

saragerion avatar saragerion commented on September 26, 2024 2

Hi @dreamorosi, thanks for creating this issue. I am in favour of modularity and keeping utilities separated by splitting each utility in its own package.

from aws-lambda-powertools-typescript.

heitorlessa avatar heitorlessa commented on September 26, 2024 2

For Python Powertools v2, we're exploring modularization as the entire feature set is 1.4M -- however AWS SDK brings 67M alone.

Whether we modularise or not in v2, we'll remove the "utilities" namespace to make it easier to adapt in other runtimes like TS, and .NET in the future -- note that Java does this already cc @pankajagrawal16

@dreamorosi feel free to ping today on this as I still need to create a v2 RFC for Python to include our lessons learned

from aws-lambda-powertools-typescript.

dreamorosi avatar dreamorosi commented on September 26, 2024

@alan-churley @bahrmichael

Would love to hear your opinion as well before changing the issue status to TODO.

from aws-lambda-powertools-typescript.

bahrmichael avatar bahrmichael commented on September 26, 2024

I'm inclined towards splitting up into modules. My reasoning is that while we try to keep things similar to the python powertools for ease of use, imports and module structure are rather language specific.

from aws-lambda-powertools-typescript.

m-radzikowski avatar m-radzikowski commented on September 26, 2024

I too think that modularisation and separate packages is the way to go.

However, I would suggest also creating a meta-package containing all the modules as dependencies. Think about it similarly to lodash - you can install lodash and have everything or install lodash.clonedeep, lodash.merge, etc. and have only the parts you need.

Why create this meta-package? For simplicity of usage if you use tree-shaking when bundling your code. If done correctly, you can add the meta-package to dependencies and then have only the required parts bundled with code, so it does not affect the final Lambda size.

The size of the downloaded package doesn't really matter (either 100 KB or 2 MB), it matters what is bundled and uploaded. CDK devs had to have a similar thought since CDK v2 is a single package - you only use it locally, so it does not harm to download libs for all possible Constructs.

from aws-lambda-powertools-typescript.

saragerion avatar saragerion commented on September 26, 2024

@m-radzikowski would you be so kind to create a separated issue for your proposal? I will close this one as it's been implemented.

from aws-lambda-powertools-typescript.

github-actions avatar github-actions commented on September 26, 2024

⚠️ COMMENT VISIBILITY WARNING ⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

from aws-lambda-powertools-typescript.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.