Skip to content

Feature request: JMESPath built-in functions #2206

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
1 of 2 tasks
dreamorosi opened this issue Mar 12, 2024 · 2 comments · Fixed by #2259
Closed
1 of 2 tasks

Feature request: JMESPath built-in functions #2206

dreamorosi opened this issue Mar 12, 2024 · 2 comments · Fixed by #2259
Assignees
Labels
completed This item is complete and has been merged/shipped feature-request This item refers to a feature request for an existing or new utility jmespath This item relates to the JMESPath Utility

Comments

@dreamorosi
Copy link
Contributor

Use case

As part of the JMESPath utility we need to implement the logic needed to support all the built-in functions (i.e. avg, max, min, ceil, etc.) defined in the JMESPath specification.

Solution/User Experience

Customers should be able to use these functions in their expressions like:

const payload = {
  grades: [1, 5, 2, 10],
};

const maxGrade = search('max(grades)', payload); // 10
const minGrade = search('min(grades)', payload); // 1
const avgGrade = search('avg(grades)', payload); // 4.5
const roundedUpAvgGrade = search('ceil(avg(grades))', payload); // 5
const roundedDownAvgGrade = search('floor(avg(grades))', payload); // 4
// ...

All the built-in functions defined in the spec should be supported.

All types, classes, and functions should be documented and exposed to customers via API docs.

Alternative solutions

No response

Acknowledgment

Future readers

Please react with 👍 and your use case to help us understand customer demand.

@dreamorosi dreamorosi added feature-request This item refers to a feature request for an existing or new utility confirmed The scope is clear, ready for implementation jmespath This item relates to the JMESPath Utility labels Mar 12, 2024
@dreamorosi dreamorosi self-assigned this Mar 12, 2024
@dreamorosi dreamorosi moved this from Triage to Backlog in Powertools for AWS Lambda (TypeScript) Mar 12, 2024
@dreamorosi dreamorosi linked a pull request Mar 21, 2024 that will close this issue
9 tasks
@dreamorosi dreamorosi moved this from Backlog to Pending review in Powertools for AWS Lambda (TypeScript) Mar 21, 2024
@github-project-automation github-project-automation bot moved this from Pending review to Coming soon in Powertools for AWS Lambda (TypeScript) Mar 21, 2024
Copy link
Contributor

⚠️ COMMENT VISIBILITY WARNING ⚠️

This issue is now closed. Please be mindful that future comments 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.

@github-actions github-actions bot added pending-release This item has been merged and will be released soon and removed confirmed The scope is clear, ready for implementation labels Mar 21, 2024
Copy link
Contributor

This is now released under v2.0.4 version!

@github-actions github-actions bot added completed This item is complete and has been merged/shipped and removed pending-release This item has been merged and will be released soon labels Apr 10, 2024
@dreamorosi dreamorosi moved this from Coming soon to Shipped in Powertools for AWS Lambda (TypeScript) Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
completed This item is complete and has been merged/shipped feature-request This item refers to a feature request for an existing or new utility jmespath This item relates to the JMESPath Utility
Projects
Development

Successfully merging a pull request may close this issue.

1 participant