@react-native/compatibility-check
Version:
Check a React Native app's boundary between JS and Native for incompatibilities
53 lines (51 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.nativeSpecErrorExporter = nativeSpecErrorExporter;
exports.schemaDiffExporter = schemaDiffExporter;
function diffSetExporter(diffSet) {
return {
newTypes: Array.from(diffSet.newTypes),
deprecatedTypes: Array.from(diffSet.deprecatedTypes),
objectTypeChanges: Array.from(diffSet.objectTypeChanges),
incompatibleChanges: Array.from(diffSet.incompatibleChanges),
};
}
function nativeSpecErrorExporter(nativeSpecError) {
if (nativeSpecError.changeInformation) {
return {
nativeSpecName: nativeSpecError.nativeSpecName,
omitted: nativeSpecError.omitted,
errorCode: nativeSpecError.errorCode,
errorInformation: nativeSpecError.errorInformation,
changeInformation: diffSetExporter(nativeSpecError.changeInformation),
};
}
return {
nativeSpecName: nativeSpecError.nativeSpecName,
omitted: nativeSpecError.omitted,
errorCode: nativeSpecError.errorCode,
errorInformation: nativeSpecError.errorInformation,
};
}
function schemaDiffCategoryExporter(status) {
switch (status) {
case "new":
case "deprecated":
return status;
default:
return {
incompatibleSpecs: status.incompatibleSpecs
? Array.from(status.incompatibleSpecs).map(nativeSpecErrorExporter)
: undefined,
};
}
}
function schemaDiffExporter(schemaDiff) {
return {
name: schemaDiff.name,
framework: schemaDiff.framework,
status: schemaDiffCategoryExporter(schemaDiff.status),
};
}