Skip to content

Commit a798c7e

Browse files
committed
Introduce ParsedType alias and refactor type unions
1 parent 7bfac19 commit a798c7e

File tree

3 files changed

+14
-36
lines changed

3 files changed

+14
-36
lines changed

src/core/changelog/generate-change-log.ts

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
import { pipe } from 'fp-ts/function';
1111
import * as TE from 'fp-ts/TaskEither';
1212
import { reflectApexSource } from '../reflection/apex/reflect-apex-source';
13-
import { Changelog, hasChanges, processChangelog, VersionManifest } from './process-changelog';
13+
import { Changelog, hasChanges, ParsedType, processChangelog, VersionManifest } from './process-changelog';
1414
import { convertToRenderableChangelog, RenderableChangelog } from './renderable-changelog';
1515
import { CompilationRequest, Template } from '../template';
1616
import { changelogTemplate } from './templates/changelog-template';
@@ -19,14 +19,9 @@ import { apply } from '#utils/fp';
1919
import { filterScope } from '../reflection/apex/filter-scope';
2020
import { isInSource, isSkip, passThroughHook, skip, toFrontmatterString } from '../shared/utils';
2121
import { reflectCustomFieldsAndObjectsAndMetadataRecords } from '../reflection/sobject/reflectCustomFieldsAndObjectsAndMetadataRecords';
22-
import { CustomObjectMetadata } from '../reflection/sobject/reflect-custom-object-sources';
23-
import { Type } from '@cparra/apex-reflection';
2422
import { filterApexSourceFiles, filterCustomObjectsFieldsAndMetadataRecords } from '#utils/source-bundle-utils';
25-
import { CustomFieldMetadata } from '../reflection/sobject/reflect-custom-field-source';
2623
import { hookableTemplate } from '../markdown/templates/hookable';
2724
import changelogToSourceChangelog from './helpers/changelog-to-source-changelog';
28-
import { CustomMetadataMetadata } from '../reflection/sobject/reflect-custom-metadata-source';
29-
import { TriggerMetadata } from '../reflection/trigger/reflect-trigger-source';
3025
import { reflectTriggerSource } from '../reflection/trigger/reflect-trigger-source';
3126
import { filterTriggerFiles } from '#utils/source-bundle-utils';
3227

@@ -81,7 +76,6 @@ function reflect(bundles: UnparsedSourceBundle[], config: Omit<UserDefinedChange
8176
TE.map((parsedObjectFiles) => [...parsedApexFiles, ...parsedObjectFiles]),
8277
);
8378
}),
84-
// Add trigger reflection
8579
TE.chain((parsedFiles) => {
8680
return pipe(
8781
reflectTriggerSource(filterTriggerFiles(bundles)),
@@ -94,26 +88,14 @@ function reflect(bundles: UnparsedSourceBundle[], config: Omit<UserDefinedChange
9488
function toManifests({ oldVersion, newVersion }: { oldVersion: ParsedFile[]; newVersion: ParsedFile[] }) {
9589
function parsedFilesToManifest(parsedFiles: ParsedFile[]): VersionManifest {
9690
return {
97-
types: parsedFiles.reduce(
98-
(
99-
previousValue: (
100-
| Type
101-
| CustomObjectMetadata
102-
| CustomFieldMetadata
103-
| CustomMetadataMetadata
104-
| TriggerMetadata
105-
)[],
106-
parsedFile: ParsedFile,
107-
) => {
108-
if (!isInSource(parsedFile.source) && parsedFile.type.type_name === 'customobject') {
109-
// When we are dealing with a custom object that was not in the source (for extension fields), we return all
110-
// of its fields.
111-
return [...previousValue, ...parsedFile.type.fields];
112-
}
113-
return [...previousValue, parsedFile.type];
114-
},
115-
[] as (Type | CustomObjectMetadata | CustomFieldMetadata | CustomMetadataMetadata | TriggerMetadata)[],
116-
),
91+
types: parsedFiles.reduce((previousValue: ParsedType[], parsedFile: ParsedFile) => {
92+
if (!isInSource(parsedFile.source) && parsedFile.type.type_name === 'customobject') {
93+
// When we are dealing with a custom object that was not in the source (for extension fields), we return all
94+
// of its fields.
95+
return [...previousValue, ...parsedFile.type.fields];
96+
}
97+
return [...previousValue, parsedFile.type];
98+
}, [] as ParsedType[]),
11799
};
118100
}
119101

src/core/changelog/process-changelog.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ import { CustomFieldMetadata } from '../reflection/sobject/reflect-custom-field-
66
import { CustomMetadataMetadata } from '../reflection/sobject/reflect-custom-metadata-source';
77
import { TriggerMetadata } from '../reflection/trigger/reflect-trigger-source';
88

9+
export type ParsedType = Type | CustomObjectMetadata | CustomFieldMetadata | CustomMetadataMetadata | TriggerMetadata;
10+
911
export type VersionManifest = {
10-
types: (Type | CustomObjectMetadata | CustomFieldMetadata | CustomMetadataMetadata | TriggerMetadata)[];
12+
types: ParsedType[];
1113
};
1214

1315
type ModificationTypes =

src/core/changelog/renderable-changelog.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
import { Changelog, MemberModificationType, NewOrModifiedMember } from './process-changelog';
1+
import { Changelog, MemberModificationType, NewOrModifiedMember, ParsedType } from './process-changelog';
22
import { ClassMirror, EnumMirror, InterfaceMirror, Type } from '@cparra/apex-reflection';
33
import { RenderableContent } from '../renderables/types';
44
import { adaptDescribable } from '../renderables/documentables';
55
import { CustomObjectMetadata } from '../reflection/sobject/reflect-custom-object-sources';
6-
import { CustomFieldMetadata } from '../reflection/sobject/reflect-custom-field-source';
7-
import { CustomMetadataMetadata } from '../reflection/sobject/reflect-custom-metadata-source';
8-
import { TriggerMetadata } from '../reflection/trigger/reflect-trigger-source';
96

107
type NewTypeRenderable = {
118
name: string;
@@ -59,10 +56,7 @@ export type RenderableChangelog = {
5956
removedTriggers: NewOrRemovedTriggerSection | null;
6057
};
6158

62-
export function convertToRenderableChangelog(
63-
changelog: Changelog,
64-
newManifest: (Type | CustomObjectMetadata | CustomFieldMetadata | CustomMetadataMetadata | TriggerMetadata)[],
65-
): RenderableChangelog {
59+
export function convertToRenderableChangelog(changelog: Changelog, newManifest: ParsedType[]): RenderableChangelog {
6660
const allNewTypes = [...changelog.newApexTypes, ...changelog.newCustomObjects].map(
6761
(newType) => newManifest.find((type) => type.name.toLowerCase() === newType.toLowerCase())!,
6862
);

0 commit comments

Comments
 (0)