UNPKG

6.49 kBTypeScriptView Raw
1type maybe<T> = (T | null | undefined)
2
3// From
4// https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describesobjects_describesobjectresult.htm
5export interface DescribeSObjectResult {
6 activateable: boolean;
7 actionOverrides?: maybe<ActionOverride[]>;
8 childRelationships: ChildRelationship[];
9 compactLayoutable: boolean;
10 createable: boolean;
11 custom: boolean;
12 customSetting: boolean;
13 deletable: boolean;
14 deprecatedAndHidden: boolean;
15 feedEnabled: boolean;
16 fields: Field[];
17 keyPrefix?: maybe<string>;
18 label: string;
19 labelPlural: string;
20 layoutable: boolean;
21 listviewable?: maybe<boolean>;
22 lookupLayoutable?: maybe<boolean>;
23 mergeable: boolean;
24 mruEnabled: boolean;
25 name: string;
26 namedLayoutInfos: NamedLayoutInfo[];
27 networkScopeFieldName?: maybe<string>;
28 queryable: boolean;
29 recordTypeInfos: RecordTypeInfo[];
30 replicateable: boolean;
31 retrieveable: boolean;
32 searchable: boolean;
33 searchLayoutable: boolean;
34 supportedScopes: ScopeInfo[];
35 triggerable: boolean;
36 undeletable: boolean;
37 updateable: boolean;
38 urlDetail?: string;
39 urlEdit?: string;
40 urlNew?: string;
41 urls: Record<string, string>;
42}
43
44export interface ActionOverride {
45 formFactor: string;
46 isAvailableInTouch: boolean;
47 name: string;
48 pageId: string;
49 url?: maybe<string>;
50}
51
52export interface ChildRelationship {
53 cascadeDelete: boolean;
54 childSObject: string;
55 deprecatedAndHidden: boolean;
56 field: string;
57 junctionIdListNames: string[];
58 junctionReferenceTo: string[];
59 relationshipName?: maybe<string>;
60 restrictedDelete: boolean;
61}
62
63export interface Field {
64 aggregatable: boolean;
65 autonumber: boolean;
66 byteLength: number;
67 calculated: boolean;
68 calculatedFormula?: maybe<string>;
69 cascadeDelete: boolean;
70 caseSensitive: boolean;
71 compoundFieldName?: maybe<string>;
72 controllerName?: maybe<string>;
73 createable: boolean;
74 custom: boolean;
75 defaultValue?: maybe<string | boolean>;
76 defaultValueFormula?: maybe<string>;
77 defaultedOnCreate: boolean;
78 dependentPicklist: boolean;
79 deprecatedAndHidden: boolean;
80 digits?: maybe<number>;
81 displayLocationInDecimal?: maybe<boolean>;
82 encrypted?: maybe<true>;
83 externalId: boolean;
84 extraTypeInfo?: maybe<ExtraTypeInfo>;
85 filterable: boolean;
86 filteredLookupInfo?: maybe<FilteredLookupInfo>;
87 formula?: maybe<string>;
88 groupable: boolean;
89 highScaleNumber?: maybe<boolean>;
90 htmlFormatted :boolean;
91 idLookup: boolean;
92 inlineHelpText?: maybe<string>;
93 label: string;
94 length: number;
95 mask?: maybe<string>;
96 maskType?: maybe<string>;
97 name: string;
98 nameField: boolean;
99 namePointing: boolean;
100 nillable: boolean;
101 permissionable: boolean;
102 picklistValues?: maybe<PicklistEntry[]>;
103 polymorphicForeignKey: boolean;
104 precision?: maybe<number>;
105 queryByDistance: boolean;
106 relationshipName?: maybe<string>;
107 relationshipOrder?: maybe<number>;
108 referenceTargetField?: maybe<string>;
109 referenceTo?: maybe<string[]>;
110 restrictedPicklist: boolean;
111 scale: number;
112 searchPrefilterable: boolean;
113 soapType: SOAPType;
114 sortable: boolean;
115 type: FieldType;
116 unique: boolean;
117 updateable: boolean;
118 writeRequiresMasterRead?: maybe<boolean>;
119}
120
121export type ExtraTypeInfo =
122 | 'imageurl'
123 | 'personname'
124 | 'plaintextarea'
125 | 'richtextarea'
126 | 'switchablepersonname'
127 | 'externallookup'
128 | 'indirectlookup'
129
130export type FieldType =
131 | 'string'
132 | 'boolean'
133 | 'int'
134 | 'double'
135 | 'date'
136 | 'datetime'
137 | 'base64'
138 | 'id'
139 | 'reference'
140 | 'currency'
141 | 'textarea'
142 | 'percent'
143 | 'phone'
144 | 'url'
145 | 'email'
146 | 'combobox'
147 | 'picklist'
148 | 'multipicklist'
149 | 'anyType'
150 | 'location'
151 // the following are not found in official documentation, but still occur when describing an sobject
152 | 'time'
153 | 'encryptedstring'
154 | 'address'
155 | 'complexvalue'
156
157export interface FilteredLookupInfo {
158 controllingFields: string[];
159 dependent: boolean;
160 optionalFilter: boolean;
161}
162
163export type SOAPType =
164 | 'tns:ID'
165 | 'xsd:anyType'
166 | 'xsd:base64Binary'
167 | 'xsd:boolean'
168 | 'xsd:date'
169 | 'xsd:dateTime'
170 | 'xsd:double'
171 | 'xsd:int'
172 | 'xsd:string'
173 // the following are not found in official documentation, but still occur when describing an sobject
174 | 'xsd:time'
175 | 'urn:address'
176 | 'urn:JunctionIdListNames'
177 | 'urn:location'
178 | 'urn:RecordTypesSupported'
179 | 'urn:RelationshipReferenceTo'
180 | 'urn:SearchLayoutButtonsDisplayed'
181 | 'urn:SearchLayoutFieldsDisplayed'
182
183export interface PicklistEntry {
184 active: boolean;
185 validFor?: maybe<string>;
186 defaultValue: boolean;
187 label?: maybe<string>;
188 value: string;
189}
190
191export interface RecordTypeInfo {
192 available: boolean;
193 defaultRecordTypeMapping: boolean;
194 developerName?: maybe<string>;
195 master: boolean;
196 name: string;
197 recordTypeId: string;
198 urls: Record<string, string>;
199}
200
201export interface NamedLayoutInfo {
202 name: string;
203 urls: Record<string, string>;
204}
205
206export interface ScopeInfo {
207 label: string;
208 name: string;
209}
210
211// From
212// https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describeglobal_describeglobalresult.htm#!
213
214export interface DescribeGlobalSObjectResult {
215 activateable: boolean;
216 createable: boolean;
217 custom: boolean;
218 customSetting: boolean;
219 deletable: boolean;
220 deprecatedAndHidden: boolean;
221 feedEnabled: boolean;
222 hasSubtypes: boolean;
223 isSubtype: boolean;
224 keyPrefix: string | null;
225 label: string;
226 labelPlural: string;
227 layoutable: boolean;
228 mergeable: boolean;
229 mruEnabled: boolean;
230 name: string;
231 queryable: boolean;
232 replicateable: boolean;
233 retrieveable: boolean;
234 searchable: boolean;
235 triggerable: boolean;
236 undeletable: boolean;
237 updateable: boolean;
238 urls: Record<string, string>;
239}
240
241export interface DescribeSObjectOptions {
242 type: string;
243 ifModifiedSince?: string;
244}
245
246export interface BatchDescribeSObjectOptions {
247 types: string[];
248 autofetch?: boolean;
249 maxConcurrentRequests?: number;
250}
251
252export interface DescribeGlobalResult {
253 encoding: string;
254 maxBatchSize: number;
255 sobjects: DescribeGlobalSObjectResult[];
256}