Files
react-native/packages/react-native-compatibility-check/src/index.js
T
Tim Yung 84de8a075e RN: Delete @oncall Annotations (#51416)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/51416

Deletes `oncall` annotations from the `facebook/react-native` repository.

Changelog:
[Internal]

Reviewed By: javache

Differential Revision: D74902524

fbshipit-source-id: 32a6a5b2ff27281792d572f151e2b094d9a79029
2025-05-17 16:18:05 -07:00

54 lines
1.3 KiB
JavaScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict-local
* @format
*/
import type {
DiffSummary,
ExportableSchemaDiff,
FormattedDiffSummary,
SchemaDiff,
} from './DiffResults';
import type {SchemaType} from '@react-native/codegen/src/CodegenSchema';
import {schemaDiffExporter} from './DiffResults.js';
import {formatDiffSet} from './ErrorFormatting.js';
import {buildSchemaDiff, summarizeDiffSet} from './VersionDiffing.js';
class CompatCheckResult {
#schemaDiff: Set<SchemaDiff>;
#summary: ?DiffSummary;
constructor(schemaDiff: Set<SchemaDiff>) {
this.#schemaDiff = schemaDiff;
}
getSummary(): DiffSummary {
if (this.#summary == null) {
this.#summary = summarizeDiffSet(this.#schemaDiff);
}
return this.#summary;
}
getErrors(): FormattedDiffSummary {
return formatDiffSet(this.getSummary());
}
getDebugInfo(): Array<ExportableSchemaDiff> {
return Array.from(this.#schemaDiff, schemaDiffExporter);
}
}
export function compareSchemas(
newSchema: SchemaType,
oldSchema: SchemaType,
): CompatCheckResult {
return new CompatCheckResult(buildSchemaDiff(newSchema, oldSchema));
}