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
...
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