@types/jsforce
Version:
TypeScript definitions for jsforce
264 lines (246 loc) • 7.42 kB
TypeScript
type maybe<T> = T | null | undefined;
// From
// https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describesobjects_describesobjectresult.htm
export interface DescribeSObjectResult {
activateable: boolean;
actionOverrides?: maybe<ActionOverride[]> | undefined;
childRelationships: ChildRelationship[];
compactLayoutable: boolean;
createable: boolean;
custom: boolean;
customSetting: boolean;
deletable: boolean;
deprecatedAndHidden: boolean;
feedEnabled: boolean;
fields: Field[];
keyPrefix?: maybe<string> | undefined;
label: string;
labelPlural: string;
layoutable: boolean;
listviewable?: maybe<boolean> | undefined;
lookupLayoutable?: maybe<boolean> | undefined;
mergeable: boolean;
mruEnabled: boolean;
name: string;
namedLayoutInfos: NamedLayoutInfo[];
networkScopeFieldName?: maybe<string> | undefined;
queryable: boolean;
recordTypeInfos: RecordTypeInfo[];
replicateable: boolean;
retrieveable: boolean;
searchable: boolean;
searchLayoutable: boolean;
supportedScopes: ScopeInfo[];
triggerable: boolean;
undeletable: boolean;
updateable: boolean;
urlDetail?: string | undefined;
urlEdit?: string | undefined;
urlNew?: string | undefined;
urls: Record<string, string>;
}
export interface ActionOverride {
formFactor: string;
isAvailableInTouch: boolean;
name: string;
pageId: string;
url?: maybe<string> | undefined;
}
export interface ChildRelationship {
cascadeDelete: boolean;
childSObject: string;
deprecatedAndHidden: boolean;
field: string;
junctionIdListNames: string[];
junctionReferenceTo: string[];
relationshipName?: maybe<string> | undefined;
restrictedDelete: boolean;
}
export interface Field {
aggregatable: boolean;
// Not in documentation, but exists in data
aiPredictionField?: maybe<boolean> | undefined;
// Salesforce documentation is wrong, they show `autonumber` but true data returned is `autoNumber`
autoNumber: boolean;
byteLength: number;
calculated: boolean;
calculatedFormula?: maybe<string> | undefined;
cascadeDelete: boolean;
caseSensitive: boolean;
compoundFieldName?: maybe<string> | undefined;
controllerName?: maybe<string> | undefined;
createable: boolean;
custom: boolean;
defaultValue?: maybe<string | boolean> | undefined;
defaultValueFormula?: maybe<string> | undefined;
defaultedOnCreate: boolean;
dependentPicklist: boolean;
deprecatedAndHidden: boolean;
digits?: maybe<number> | undefined;
displayLocationInDecimal?: maybe<boolean> | undefined;
encrypted?: maybe<boolean> | undefined;
externalId: boolean;
extraTypeInfo?: maybe<ExtraTypeInfo> | undefined;
filterable: boolean;
filteredLookupInfo?: maybe<FilteredLookupInfo> | undefined;
// Salesforce documentation is wrong, this field does not exist, calculatedFormula is correct
formula?: maybe<string> | undefined;
// Not in documentation, but exists in data
formulaTreatNullNumberAsZero?: maybe<boolean> | undefined;
groupable: boolean;
highScaleNumber?: maybe<boolean> | undefined;
htmlFormatted: boolean;
idLookup: boolean;
inlineHelpText?: maybe<string> | undefined;
label: string;
length: number;
mask?: maybe<string> | undefined;
maskType?: maybe<string> | undefined;
name: string;
nameField: boolean;
namePointing: boolean;
nillable: boolean;
permissionable: boolean;
picklistValues?: maybe<PicklistEntry[]> | undefined;
polymorphicForeignKey: boolean;
precision?: maybe<number> | undefined;
queryByDistance: boolean;
referenceTargetField?: maybe<string> | undefined;
referenceTo?: maybe<string[]> | undefined;
relationshipName?: maybe<string> | undefined;
relationshipOrder?: maybe<number> | undefined;
restrictedDelete?: maybe<boolean> | undefined;
restrictedPicklist: boolean;
scale: number;
searchPrefilterable: boolean;
soapType: SOAPType;
sortable: boolean;
type: FieldType;
unique: boolean;
updateable: boolean;
writeRequiresMasterRead?: maybe<boolean> | undefined;
}
export type ExtraTypeInfo =
| "imageurl"
| "personname"
| "plaintextarea"
| "richtextarea"
| "switchablepersonname"
| "externallookup"
| "indirectlookup";
export type FieldType =
| "string"
| "boolean"
| "int"
| "double"
| "date"
| "datetime"
| "base64"
| "id"
| "reference"
| "currency"
| "textarea"
| "percent"
| "phone"
| "url"
| "email"
| "combobox"
| "picklist"
| "multipicklist"
| "anyType"
| "location"
// the following are not found in official documentation, but still occur when describing an sobject
| "time"
| "encryptedstring"
| "address"
| "complexvalue";
export interface FilteredLookupInfo {
controllingFields: string[];
dependent: boolean;
optionalFilter: boolean;
}
export type SOAPType =
| "tns:ID"
| "xsd:anyType"
| "xsd:base64Binary"
| "xsd:boolean"
| "xsd:date"
| "xsd:dateTime"
| "xsd:double"
| "xsd:int"
| "xsd:string"
// the following are not found in official documentation, but still occur when describing an sobject
| "xsd:time"
| "urn:address"
| "urn:JunctionIdListNames"
| "urn:location"
| "urn:RecordTypesSupported"
| "urn:RelationshipReferenceTo"
| "urn:SearchLayoutButtonsDisplayed"
| "urn:SearchLayoutFieldsDisplayed";
export interface PicklistEntry {
active: boolean;
validFor?: maybe<string> | undefined;
defaultValue: boolean;
label?: maybe<string> | undefined;
value: string;
}
export interface RecordTypeInfo {
available: boolean;
defaultRecordTypeMapping: boolean;
developerName?: maybe<string> | undefined;
master: boolean;
name: string;
recordTypeId: string;
urls: Record<string, string>;
}
export interface NamedLayoutInfo {
name: string;
urls: Record<string, string>;
}
export interface ScopeInfo {
label: string;
name: string;
}
// From
// https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describeglobal_describeglobalresult.htm#!
export interface DescribeGlobalSObjectResult {
activateable: boolean;
createable: boolean;
custom: boolean;
customSetting: boolean;
deletable: boolean;
deprecatedAndHidden: boolean;
feedEnabled: boolean;
hasSubtypes: boolean;
isSubtype: boolean;
keyPrefix: string | null;
label: string;
labelPlural: string;
layoutable: boolean;
mergeable: boolean;
mruEnabled: boolean;
name: string;
queryable: boolean;
replicateable: boolean;
retrieveable: boolean;
searchable: boolean;
triggerable: boolean;
undeletable: boolean;
updateable: boolean;
urls: Record<string, string>;
}
export interface DescribeSObjectOptions {
type: string;
ifModifiedSince?: string | undefined;
}
export interface BatchDescribeSObjectOptions {
types: string[];
autofetch?: boolean | undefined;
maxConcurrentRequests?: number | undefined;
}
export interface DescribeGlobalResult {
encoding: string;
maxBatchSize: number;
sobjects: DescribeGlobalSObjectResult[];
}