npm.io
1.0.9 • Published 6 years ago

remote-action-promise

Licence
ISC
Version
1.0.9
Deps
0
Size
9 kB
Vulns
0
Weekly
0
Stars
3

Promisify Salesforce Remote Actions

This library is used to convert a Salesforce VisualForce remote action into a promise. It is written in typescript and allows you to quickly define types for the resulting function.

Usage

Apex Controller

public class MyController{
  @RemoteAction
  public static String foo(String param1, Integer param2, Boolean param3) {
    return 'hello world';
  }
}
typescript
import { promisifyRemoteAction } from 'remote-action-promise';

//this gets injected on the global scope so we need to declare it if using typescript
declare var MyController: {
  foo: any;
};

// this syntax requires Typescript > 4.0
// can use unnamed tuple instead
type FooParams = [param1: string, param2: number, param3: boolean];

const fooRemoteAction = promisifyRemoteAction<FooParams, string>(MyController.foo);

(async() => {

  try{
    const stringResult = await fooRemoteAction('hello', 42, true);
  }catch(e){
    console.log('error', e);
  }

})()