Skip to content

Commit 6f71e69

Browse files
committed
fix: resolvers
1 parent 5c74fd3 commit 6f71e69

File tree

5 files changed

+26
-10
lines changed

5 files changed

+26
-10
lines changed

src/builder.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,8 @@ export class PackageVersionBuilder implements IPackageVersionBuilder {
277277
version?: string,
278278
packageId?: string,
279279
operationIds?: OperationId[],
280-
includeData = true,
280+
includeData: boolean = true,
281+
operationsCount?: number,
281282
): Promise<ResolvedOperations | null> {
282283
if (!version) {
283284
return null
@@ -301,6 +302,7 @@ export class PackageVersionBuilder implements IPackageVersionBuilder {
301302
packageId,
302303
operationIds,
303304
includeData,
305+
operationsCount,
304306
)
305307

306308
// validate for missing operationData
@@ -398,6 +400,8 @@ export class PackageVersionBuilder implements IPackageVersionBuilder {
398400
async versionResolver(
399401
version: string,
400402
packageId: string,
403+
includeOperations?: boolean,
404+
includeSummary?: boolean,
401405
): Promise<VersionCache | null> {
402406
const compositeKey = getCompositeKey(packageId, version)
403407

@@ -415,7 +419,7 @@ export class PackageVersionBuilder implements IPackageVersionBuilder {
415419
throw new Error('No versionResolver provided')
416420
}
417421

418-
const versionContent = await versionResolver(packageId, version, true)
422+
const versionContent = await versionResolver(packageId, version, includeOperations, includeSummary)
419423

420424
if (!versionContent) {
421425
this.notifications.push({

src/components/compare/compare.operations.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import {
4545
calculateImpactedSummary,
4646
executeInBatches,
4747
getSplittedVersionKey,
48+
IGNORE_PATH_PARAM_UNIFIED_PLACEHOLDER,
4849
removeFirstSlash,
4950
removeObjectDuplicates,
5051
slugify,
@@ -65,8 +66,8 @@ export async function compareVersionsOperations(
6566
const { versionResolver } = ctx
6667

6768
// resolve all version with operation hashes
68-
const prevVersionData = prev && (await versionResolver(...prev) ?? { version: prev?.[0], packageId: prev?.[1] })
69-
const currVersionData = curr && (await versionResolver(...curr) ?? { version: curr?.[0], packageId: curr?.[1] })
69+
const prevVersionData = prev && (await versionResolver(...prev, false, true) ?? { version: prev?.[0], packageId: prev?.[1] })
70+
const currVersionData = curr && (await versionResolver(...curr, false, true) ?? { version: curr?.[0], packageId: curr?.[1] })
7071

7172
// compare operations of each type
7273
for (const apiType of getUniqueApiTypesFromVersions(prevVersionData, currVersionData)) {

src/components/compare/compare.utils.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,15 @@ import {
2828
VersionCache,
2929
} from '../../types'
3030
import { BUILD_TYPE, EMPTY_CHANGE_SUMMARY, MESSAGE_SEVERITY } from '../../consts'
31-
import { convertToSlug, NormalizedPath, PATH_PARAM_UNIFIED_PLACEHOLDER, slugify, takeIfDefined } from '../../utils'
31+
import {
32+
convertToSlug,
33+
IGNORE_PATH_PARAM_UNIFIED_PLACEHOLDER,
34+
NormalizedPath,
35+
slugify,
36+
takeIfDefined,
37+
} from '../../utils'
3238
import { REST_API_TYPE } from '../../apitypes'
3339
import { OpenAPIV3 } from 'openapi-types'
34-
import { CharMap } from 'slug'
3540

3641
export const totalChanges = (changeSummary?: ChangeSummary): number => {
3742
return changeSummary
@@ -91,8 +96,6 @@ export type OperationIdentityMap = Record<OperationIdWithoutGroupPrefix, Operati
9196

9297
type NormalizedOperationId = `${NormalizedPath}-${OpenAPIV3.HttpMethods}`
9398

94-
const IGNORE_PATH_PARAM_UNIFIED_PLACEHOLDER: CharMap = { [PATH_PARAM_UNIFIED_PLACEHOLDER]: PATH_PARAM_UNIFIED_PLACEHOLDER }
95-
9699
export function getOperationsHashMapByApiType(
97100
currentApiType: OperationsApiType,
98101
operations: ResolvedOperation[],

src/types/internal/apiBuilder.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export type TemplateResolver = (
6767
) => Promise<string>
6868

6969
export interface CompareOperationsPairContext {
70-
notifications: NotificationMessage[],
70+
notifications: NotificationMessage[]
7171
versionDeprecatedResolver: VersionDeprecatedResolver
7272
previousVersion: VersionId
7373
currentVersion: VersionId
@@ -99,7 +99,12 @@ export interface ApiBuilder<T = any, O = any, M = any> {
9999
}
100100

101101
// internal
102-
export type _VersionResolver = (packageId: PackageId, version: VersionId) => Promise<VersionCache | null>
102+
export type _VersionResolver = (
103+
packageId: PackageId,
104+
version: VersionId,
105+
includeOperations?: boolean,
106+
includeSummary?: boolean,
107+
) => Promise<VersionCache | null>
103108
export type _VersionReferencesResolver = (packageId: PackageId, version: VersionId) => Promise<BuildConfigRef[]>
104109

105110
export type _ParsedFileResolver = (fileId: string) => Promise<File | null>

src/utils/document.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
import { bundle, Resolver } from 'api-ref-bundler'
3737
import { FILE_FORMAT_JSON, FILE_FORMAT_YAML, MESSAGE_SEVERITY } from '../consts'
3838
import { isNotEmpty } from './arrays'
39+
import { PATH_PARAM_UNIFIED_PLACEHOLDER } from './builder'
3940

4041
export const EXPORT_FORMAT_TO_FILE_FORMAT = new Map<OperationsGroupExportFormat, FileFormat>([
4142
[YAML_EXPORT_GROUP_FORMAT, FILE_FORMAT_YAML],
@@ -100,6 +101,8 @@ export const findSharedPath = (fileIds: string[]): string => {
100101
return first.slice(0, i).join('/') + (i ? '/' : '')
101102
}
102103

104+
export const IGNORE_PATH_PARAM_UNIFIED_PLACEHOLDER: CharMap = { [PATH_PARAM_UNIFIED_PLACEHOLDER]: PATH_PARAM_UNIFIED_PLACEHOLDER }
105+
103106
export const slugify = (text: string, slugs: string[] = [], charMapEntry?: CharMap): string => {
104107
if (!text) {
105108
return ''

0 commit comments

Comments
 (0)