Skip to content

Latest commit

 

History

History
97 lines (79 loc) · 2.83 KB

README.md

File metadata and controls

97 lines (79 loc) · 2.83 KB

salesforce-to-types

A Salesforce CLI plugin to generate typescript types for different Salesforce resources, like sobjects, using the APIs.

$ git clone https://github.com/JoelBrenstrum/salesforce-to-types.git
$ sfdx plugins:link <path to clone>
$ sfdx types:sobject:create -c salesforce-to-types.json 
...

sfdx types:sobject:create

Generates a typescript type for a Salesforce sobject!

USAGE
  $ sfdx types:sobject:create

OPTIONS
  -c, --config=config                             config file
  -o, --outputdir=outputdir                       [default: ./src/types] the output directory to put the generated types
  -s, --sobject=sobject                           the sobject to describe and generate a type for
  -u, --targetusername=targetusername             username or alias for the target org; overrides default target org
  --apiversion=apiversion                         override the api version used for api requests made by this command
  --json                                          format output as json
  --loglevel=(trace|debug|info|warn|error|fatal)  logging level for this command invocation

EXAMPLES
  $ sfdx types:sobject:create --sobject Account
  $ sfdx types:sobject:create --config salesforce-to-types.json
  $ sfdx types:sobject:create --sobject MyCustomObject__c --directory types/ --targetusername [email protected]

EXAMPLE CONFIG
  {
    "sobjects": [
        "Account",
        "Contact",
        "Opportunity"
    ]
  }

EXAMPLE OUTPUT
/**
 * DO NOT MODIFY THIS FILE!
 *
 * This file is generated by the salesforce-to-types plugin and
 * may be regenerated in the future. It is recommended to make
 * changes to that plugin then regenerate these files.
 *
 */

import { SObjectAttribute } from './sobject';
import { ID, ChildRecords, DateString, PhoneString } from './sobjectFieldTypes';

export interface Account extends SObjectAttribute<'Account'> {
  Name: string;
  BillingAddress: string //address;
  Phone: PhoneString;
  LastModifiedDate: DateString | null;
  ChildAccounts: ChildRecords<Account, 'Account'>;
  Cases: ChildRecords<Case, 'Case'>;
  Contacts: ChildRecords<Contact, 'Contact'>;
  ...
};


export interface Contact extends SObjectAttribute<'Contact'> {
  AccountId: ID;
  Account: Account;
  LastName: string;
  FirstName: string;
  Phone: PhoneString;
  Cases: ChildRecords<Case, 'Case'>;
  ...
};


export interface Opportunity extends SObjectAttribute<'Opportunity'> {
  Account: Account;
  Name: string;
  Description: string;
  Amount: number;
  Quotes__r: ChildRecords<Quote__c, 'Quote__c'>;
  ...
};

type Case = any; 
type Quote__c = any; 

See code: src/commands/types/sobject/create.ts