Skip to content

Commit d456407

Browse files
authored
Merge pull request #209 from cesarParra/parse-objects-with-inline-fields
Parse objects with inline fields
2 parents 7ae3a1b + 88a7e45 commit d456407

File tree

17 files changed

+469
-86
lines changed

17 files changed

+469
-86
lines changed

examples/vitepress/docs/.vitepress/sidebar.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@
7070
"text": "Product__c",
7171
"link": "custom-objects/Product__c.md"
7272
},
73+
{
74+
"text": "Product_Inline_Fields__c",
75+
"link": "custom-objects/Product_Inline_Fields__c.md"
76+
},
7377
{
7478
"text": "Product_Price_Component__c",
7579
"link": "custom-objects/Product_Price_Component__c.md"

examples/vitepress/docs/changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ These custom objects are new.
5151
Represents an event that people can register for.
5252
### Price_Component__c
5353

54+
### Product_Inline_Fields__c
55+
56+
Products
5457
### Product_Price_Component__c
5558

5659
### Product__c
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
title: Product_Inline_Fields__c
3+
---
4+
5+
# Products
6+
7+
Products
8+
9+
## API Name
10+
`apexdocs__Product_Inline_Fields__c`
11+
12+
## Fields
13+
### DiscontinuedDate
14+
15+
The date the product got discontinued
16+
17+
**API Name**
18+
19+
`apexdocs__DiscontinuedDate__c`
20+
21+
**Type**
22+
23+
*DateTime*

examples/vitepress/docs/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ Represents an event that people can register for.
2929

3030
Product that is sold or available for sale.
3131

32+
### [Product_Inline_Fields__c](custom-objects/Product_Inline_Fields__c)
33+
34+
Products
35+
3236
### [Product_Price_Component__c](custom-objects/Product_Price_Component__c)
3337

3438
### [Sales_Order__c](custom-objects/Sales_Order__c)
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
3+
<actionOverrides>
4+
<actionName>CancelEdit</actionName>
5+
<type>Default</type>
6+
</actionOverrides>
7+
<actionOverrides>
8+
<actionName>Delete</actionName>
9+
<type>Default</type>
10+
</actionOverrides>
11+
<actionOverrides>
12+
<actionName>Edit</actionName>
13+
<type>Default</type>
14+
</actionOverrides>
15+
<actionOverrides>
16+
<actionName>Follow</actionName>
17+
<type>Default</type>
18+
</actionOverrides>
19+
<actionOverrides>
20+
<actionName>List</actionName>
21+
<type>Default</type>
22+
</actionOverrides>
23+
<actionOverrides>
24+
<actionName>New</actionName>
25+
<type>Default</type>
26+
</actionOverrides>
27+
<actionOverrides>
28+
<actionName>SaveEdit</actionName>
29+
<type>Default</type>
30+
</actionOverrides>
31+
<actionOverrides>
32+
<actionName>Tab</actionName>
33+
<type>Default</type>
34+
</actionOverrides>
35+
<actionOverrides>
36+
<actionName>View</actionName>
37+
<type>Default</type>
38+
</actionOverrides>
39+
<deploymentStatus>Deployed</deploymentStatus>
40+
<description>Products</description>
41+
<enableFeeds>false</enableFeeds>
42+
<externalDataSource>OData</externalDataSource>
43+
<externalIndexAvailable>false</externalIndexAvailable>
44+
<externalName>Products</externalName>
45+
<fields>
46+
<fullName>DiscontinuedDate__c</fullName>
47+
<description>The date the product got discontinued</description>
48+
<externalDeveloperName>DiscontinuedDate</externalDeveloperName>
49+
<externalId>false</externalId>
50+
<isFilteringDisabled>false</isFilteringDisabled>
51+
<isNameField>false</isNameField>
52+
<isSortingDisabled>false</isSortingDisabled>
53+
<label>DiscontinuedDate</label>
54+
<required>false</required>
55+
<type>DateTime</type>
56+
</fields>
57+
<fields>
58+
<fullName>ID__c</fullName>
59+
<externalDeveloperName>ID</externalDeveloperName>
60+
<externalId>false</externalId>
61+
<isFilteringDisabled>false</isFilteringDisabled>
62+
<isNameField>false</isNameField>
63+
<isSortingDisabled>false</isSortingDisabled>
64+
<label>ID</label>
65+
<precision>18</precision>
66+
<required>false</required>
67+
<scale>0</scale>
68+
<type>Number</type>
69+
<unique>false</unique>
70+
</fields>
71+
<fields>
72+
<fullName>Name__c</fullName>
73+
<description>Product name</description>
74+
<externalDeveloperName>Name</externalDeveloperName>
75+
<externalId>false</externalId>
76+
<isFilteringDisabled>false</isFilteringDisabled>
77+
<isNameField>false</isNameField>
78+
<isSortingDisabled>false</isSortingDisabled>
79+
<label>Name</label>
80+
<length>128</length>
81+
<required>false</required>
82+
<type>Text</type>
83+
<unique>false</unique>
84+
</fields>
85+
<fields>
86+
<fullName>Price__c</fullName>
87+
<description>Product price in the default currency</description>
88+
<externalDeveloperName>Price</externalDeveloperName>
89+
<externalId>false</externalId>
90+
<isFilteringDisabled>false</isFilteringDisabled>
91+
<isNameField>false</isNameField>
92+
<isSortingDisabled>false</isSortingDisabled>
93+
<label>Price</label>
94+
<precision>16</precision>
95+
<required>false</required>
96+
<scale>2</scale>
97+
<type>Number</type>
98+
<unique>false</unique>
99+
</fields>
100+
<fields>
101+
<fullName>Products__c</fullName>
102+
<externalDeveloperName>Products</externalDeveloperName>
103+
<externalId>false</externalId>
104+
<isFilteringDisabled>false</isFilteringDisabled>
105+
<isNameField>false</isNameField>
106+
<isSortingDisabled>false</isSortingDisabled>
107+
<label>Products</label>
108+
<length>20</length>
109+
<referenceTo>Products__x</referenceTo>
110+
<relationshipLabel>Products</relationshipLabel>
111+
<relationshipName>Products</relationshipName>
112+
<type>ExternalLookup</type>
113+
</fields>
114+
<fields>
115+
<fullName>Rating__c</fullName>
116+
<description>Rating</description>
117+
<externalDeveloperName>Rating</externalDeveloperName>
118+
<externalId>false</externalId>
119+
<isFilteringDisabled>false</isFilteringDisabled>
120+
<isNameField>false</isNameField>
121+
<isSortingDisabled>false</isSortingDisabled>
122+
<label>Rating</label>
123+
<precision>18</precision>
124+
<required>false</required>
125+
<scale>0</scale>
126+
<type>Number</type>
127+
<unique>false</unique>
128+
</fields>
129+
<fields>
130+
<fullName>ReleaseDate__c</fullName>
131+
<description>ReleaseDate</description>
132+
<externalDeveloperName>ReleaseDate</externalDeveloperName>
133+
<externalId>false</externalId>
134+
<isFilteringDisabled>false</isFilteringDisabled>
135+
<isNameField>false</isNameField>
136+
<isSortingDisabled>false</isSortingDisabled>
137+
<label>ReleaseDate</label>
138+
<required>false</required>
139+
<type>DateTime</type>
140+
</fields>
141+
<fields>
142+
<fullName>Type__c</fullName>
143+
<externalId>false</externalId>
144+
<label>Type</label>
145+
<required>true</required>
146+
<trackTrending>false</trackTrending>
147+
<type>Picklist</type>
148+
<valueSet>
149+
<restricted>true</restricted>
150+
<valueSetDefinition>
151+
<sorted>false</sorted>
152+
<value>
153+
<fullName>Merchandise</fullName>
154+
<default>false</default>
155+
<label>List Price</label>
156+
</value>
157+
<value>
158+
<fullName>Bundle</fullName>
159+
<default>false</default>
160+
<label>Discount</label>
161+
</value>
162+
</valueSetDefinition>
163+
</valueSet>
164+
</fields>
165+
<label>Products</label>
166+
<pluralLabel>Products</pluralLabel>
167+
<searchLayouts>
168+
<customTabListAdditionalFields>ExternalId</customTabListAdditionalFields>
169+
<lookupDialogsAdditionalFields>ExternalId</lookupDialogsAdditionalFields>
170+
<lookupPhoneDialogsAdditionalFields>ExternalId</lookupPhoneDialogsAdditionalFields>
171+
<searchResultsAdditionalFields>ExternalId</searchResultsAdditionalFields>
172+
<searchResultsAdditionalFields>DisplayUrl</searchResultsAdditionalFields>
173+
<searchResultsAdditionalFields>ID__c</searchResultsAdditionalFields>
174+
</searchLayouts>
175+
</CustomObject>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@cparra/apexdocs",
3-
"version": "3.5.0",
3+
"version": "3.5.1",
44
"description": "Library with CLI capabilities to generate documentation for Salesforce Apex classes.",
55
"keywords": [
66
"apex",

src/core/changelog/__test__/generating-change-log.spec.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import { UnparsedApexBundle, UnparsedCustomObjectBundle, UnparsedSourceBundle }
22
import { ChangeLogPageData, generateChangeLog } from '../generate-change-log';
33
import { assertEither } from '../../test-helpers/assert-either';
44
import { isSkip } from '../../shared/utils';
5-
import { customObjectGenerator, unparsedFieldBundleFromRawString } from '../../test-helpers/test-data-builders';
5+
import { unparsedFieldBundleFromRawString } from '../../test-helpers/test-data-builders';
6+
import { CustomObjectXmlBuilder } from '../../test-helpers/test-data-builders/custom-object-xml-builder';
67

78
const config = {
89
fileName: 'changelog',
@@ -186,7 +187,7 @@ describe('when generating a changelog', () => {
186187

187188
describe('that include new custom objects', () => {
188189
it('should include a section for new custom objects', async () => {
189-
const newObjectSource = customObjectGenerator();
190+
const newObjectSource = new CustomObjectXmlBuilder().build();
190191

191192
const oldBundle: UnparsedCustomObjectBundle[] = [];
192193
const newBundle: UnparsedCustomObjectBundle[] = [
@@ -244,7 +245,7 @@ describe('when generating a changelog', () => {
244245

245246
describe('that includes removed custom objects', () => {
246247
it('should include a section for removed custom objects', async () => {
247-
const oldObjectSource = customObjectGenerator();
248+
const oldObjectSource = new CustomObjectXmlBuilder().build();
248249

249250
const oldBundle: UnparsedCustomObjectBundle[] = [
250251
{ type: 'customobject', name: 'MyTestObject', content: oldObjectSource, filePath: 'MyTestObject.object' },
@@ -259,7 +260,7 @@ describe('when generating a changelog', () => {
259260
});
260261

261262
it('should include the removed custom object name', async () => {
262-
const oldObjectSource = customObjectGenerator();
263+
const oldObjectSource = new CustomObjectXmlBuilder().build();
263264

264265
const oldBundle: UnparsedCustomObjectBundle[] = [
265266
{ type: 'customobject', name: 'MyTestObject', content: oldObjectSource, filePath: 'MyTestObject.object' },
@@ -329,8 +330,8 @@ describe('when generating a changelog', () => {
329330

330331
describe('that includes modifications to custom fields', () => {
331332
it('should include a section for new or removed custom fields', async () => {
332-
const oldObjectSource = customObjectGenerator();
333-
const newObjectSource = customObjectGenerator();
333+
const oldObjectSource = new CustomObjectXmlBuilder().build();
334+
const newObjectSource = new CustomObjectXmlBuilder().build();
334335

335336
const oldBundle: UnparsedSourceBundle[] = [
336337
{ type: 'customobject', name: 'MyTestObject', content: oldObjectSource, filePath: 'MyTestObject.object' },
@@ -351,8 +352,8 @@ describe('when generating a changelog', () => {
351352
});
352353

353354
it('should include new custom field names', async () => {
354-
const oldObjectSource = customObjectGenerator();
355-
const newObjectSource = customObjectGenerator();
355+
const oldObjectSource = new CustomObjectXmlBuilder().build();
356+
const newObjectSource = new CustomObjectXmlBuilder().build();
356357

357358
const oldBundle: UnparsedSourceBundle[] = [
358359
{ type: 'customobject', name: 'MyTestObject', content: oldObjectSource, filePath: 'MyTestObject.object' },
@@ -371,8 +372,8 @@ describe('when generating a changelog', () => {
371372
});
372373

373374
it('should include removed custom field names', async () => {
374-
const oldObjectSource = customObjectGenerator();
375-
const newObjectSource = customObjectGenerator();
375+
const oldObjectSource = new CustomObjectXmlBuilder().build();
376+
const newObjectSource = new CustomObjectXmlBuilder().build();
376377

377378
const oldBundle: UnparsedSourceBundle[] = [
378379
{ type: 'customobject', name: 'MyTestObject', content: oldObjectSource, filePath: 'MyTestObject.object' },

0 commit comments

Comments
 (0)