Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/ipavlic/apex-fp

Functional programming for Salesforce Apex
https://github.com/ipavlic/apex-fp

apex forcedotcom functional-programming salesforce salesforce-api salesforce-developers salesforcedx

Last synced: 20 days ago
JSON representation

Functional programming for Salesforce Apex

Lists

README

        

# Apex FP

![CI workflow](https://github.com/ipavlic/apex-fp/actions/workflows/ci.yml/badge.svg)
[![codecov](https://codecov.io/gh/ipavlic/apex-fp/branch/master/graph/badge.svg)](https://codecov.io/gh/ipavlic/apex-fp)

Apex FP provides functional constructs for `SObject` collections!

## Examples

Transform `SObjects` with a simple declarative API.

```apex
List largeOpportunities = SObjectCollection.of(opportunities)
.filter(Fn.Match
.field(Opportunity.Amount).greaterThan(150000)
.also(Opportunity.AccountId).equals(accountId))
.asList();
```

```apex
List prospectingTasks = SObjectCollection.of(Trigger.new)
.filter(Fn.Match.recordFields(new Opportunity(Stage = 'Prospecting')))
.mapAll(Fn.MapTo(Task.SObjectType)
.setField(Task.Subject, 'Follow up')
.mapField(Task.WhatId, Opportunity.Id))
.asList();
```

```apex
Map> accountsByParentId = SObjectCollection.of(accounts).groupByIds(Account.ParentId);
```

```apex
Decimal averageOpportunityValue = SObjectCollection.of(opportunities).mapToDecimal(Opportunity.Amount).average();
```
Find more examples in the documentation.

## Deploy to Salesforce


Deploy to Salesforce

## Read the documentation

Apex FP documentation