Comments (8)
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.
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.
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.
Would love to hear your opinion as well before changing the issue status to TODO.
from aws-lambda-powertools-typescript.
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.
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.
@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.
⚠️ 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)
- Feature request: expand shared type utilities HOT 2
- Feature request: define grammar, errors, and types for JMESPath module HOT 2
- Docs: Describe removing `ContextExamples` in the migration doc HOT 3
- Feature request: support batching of AWS SDK calls with batch processor HOT 2
- Docs: typos in tracer docs HOT 1
- Maintenance: temporarily remove README from jsmespath typedoc HOT 1
- Feature request: add safeParse option HOT 3
- Feature request: JMESPath lexer HOT 1
- Feature request: JMESPath built-in functions HOT 2
- Feature request: JMESPath powertools functions HOT 2
- Feature request: JMESPath expression class and utilities HOT 2
- Feature request: JMESPath tree interpreter HOT 1
- Feature request: JMESPath abstract syntax tree (AST) HOT 2
- Feature request: JMESPath parser HOT 2
- Maintenance: drop support for Node.js 16 HOT 5
- Maintenance: v1 enters maintenance mode, scheduled end-of-life
- Maintenance: update versioning & banner for v2 release HOT 1
- Bug: private class fields transformed incorrectly in ESM HOT 2
- Bug: unable to use Lambda Layer with ESM bundles HOT 2
- Maintenance: remove a dependency to deprecated library `@aws-sdk/util-base64-node` HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aws-lambda-powertools-typescript.