Formulon
Formulon is a Parser for Salesforce Formulas completely written in ECMA Script 2015.
publish
- Change version in package.js
- npm run build
- npm login
- npm publish
Usage
parse
This method will return a object holding value and its metadata
Examples
// {// type: 'literal',// value: 'True String',// dataType: 'text',// options: { length: 11 }// }
type
: Metadata from the parser (always literal
)
value
: The actual value of the result
dataType
: The type of the return (currently number
, text
, or checkbox
)
options
: different options per data type
Data Types
Currently the following data types are supported (naming is taken from the Salesforce Field Types):
- Number (Integer or Float depending on the options)
- Text
- Checkbox (TRUE or FALSE)
Options
Options depend on the data type:
Number
- Length: Number of digits to the left of the decimal point
- Scale: Number of digits to the right of the decimal point
Text
- Length: Number of characters
Checkbox
no options
Errors
Whenever an error occurs, an according object is returned:
// {// type: 'error',// errorType: 'SyntaxError',// message: 'Incorrect number of parameters for function \'IF()\'. Expected 3, received 1'// }
Identifiers (Variables)
It's possible to specify formulas that contain variables. In that case pass the value of the variable in as a second argument:
// {// type: 'literal',// value: 'True String',// dataType: 'text',// options: { length: 11 }// }
You'll have to provide the variable in the form:
type: 'literal' value: <the actual value as a JS type> dataType: <the salesforce field type specified above> options: <salesforce field options>
parseAndThrowError
Works in the same way as parse
but will throw an exception when an error occurs:
// SyntaxError: Incorrect number of parameters for function 'IF()'. Expected 3, received 1
extract
Utility function that returns a list of used variables
// [ 'Variable__c', 'AnotherVariable__c' ]