feat(core): include target architecture in nx report (#27094)

This commit is contained in:
Craigory Coppola 2024-07-25 12:01:58 -04:00 committed by GitHub
parent 173ea84d92
commit 40d39d40a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 57 additions and 22 deletions

View File

@ -64,16 +64,23 @@ export async function reportHandler() {
packageVersionsWeCareAbout,
outOfSyncPackageGroup,
projectGraphError,
nativeTarget,
} = await getReportData();
const bodyLines = [
`Node : ${process.versions.node}`,
`OS : ${process.platform}-${process.arch}`,
`${pm.padEnd(7)}: ${pmVersion}`,
``,
const fields = [
['Node', process.versions.node],
['OS', `${process.platform}-${process.arch}`],
['Native Target', nativeTarget ?? 'Unavailable'],
[pm, pmVersion],
];
let padding = Math.max(...fields.map((f) => f[0].length));
const bodyLines = fields.map(
([field, value]) => `${field.padEnd(padding)} : ${value}`
);
let padding =
bodyLines.push('');
padding =
Math.max(...packageVersionsWeCareAbout.map((x) => x.package.length)) + 1;
packageVersionsWeCareAbout.forEach((p) => {
bodyLines.push(
@ -156,6 +163,7 @@ export interface ReportData {
migrateTarget: string;
};
projectGraphError?: Error | null;
nativeTarget: string | null;
}
export async function getReportData(): Promise<ReportData> {
@ -183,6 +191,8 @@ export async function getReportData(): Promise<ReportData> {
const outOfSyncPackageGroup = findMisalignedPackagesForPackage(nxPackageJson);
const native = isNativeAvailable();
return {
pm,
pmVersion,
@ -192,6 +202,7 @@ export async function getReportData(): Promise<ReportData> {
packageVersionsWeCareAbout,
outOfSyncPackageGroup,
projectGraphError,
nativeTarget: native ? native.getBinaryTarget() : null,
};
}
@ -351,10 +362,9 @@ export function findInstalledPackagesWeCareAbout() {
}));
}
function isNativeAvailable() {
function isNativeAvailable(): typeof import('../../native') | false {
try {
require('../../native');
return true;
return require('../../native');
} catch {
return false;
}

View File

@ -116,6 +116,8 @@ export interface FileSetInput {
export declare export function findImports(projectFileMap: Record<string, Array<string>>): Array<ImportResult>
export declare export function getBinaryTarget(): string
/**
* Expands the given outputs into a list of existing files.
* This is used when hashing outputs

View File

@ -0,0 +1,30 @@
#[napi]
#[cfg(target_arch = "wasm32")]
pub const IS_WASM: bool = true;
#[napi]
#[cfg(not(target_arch = "wasm32"))]
pub const IS_WASM: bool = false;
use std::env::consts;
#[napi]
pub fn get_binary_target() -> String {
let arch = consts::ARCH;
let os = consts::OS;
let mut binary_target = String::new();
if !arch.is_empty() {
binary_target.push_str(&arch);
}
if !os.is_empty() {
if !binary_target.is_empty() {
binary_target.push('-');
}
binary_target.push_str(&os);
}
binary_target
}

View File

@ -2,16 +2,16 @@ pub mod cache;
pub mod glob;
pub mod hasher;
mod logger;
pub mod metadata;
pub mod plugins;
pub mod project_graph;
#[cfg(not(target_arch = "wasm32"))]
pub mod pseudo_terminal;
pub mod tasks;
mod types;
mod utils;
mod walker;
#[cfg(not(target_arch = "wasm32"))]
pub mod watch;
pub mod workspace;
pub mod wasm;
#[cfg(not(target_arch = "wasm32"))]
pub mod pseudo_terminal;
#[cfg(not(target_arch = "wasm32"))]
pub mod watch;

View File

@ -372,6 +372,7 @@ module.exports.copy = nativeBinding.copy
module.exports.EventType = nativeBinding.EventType
module.exports.expandOutputs = nativeBinding.expandOutputs
module.exports.findImports = nativeBinding.findImports
module.exports.getBinaryTarget = nativeBinding.getBinaryTarget
module.exports.getFilesForOutputs = nativeBinding.getFilesForOutputs
module.exports.hashArray = nativeBinding.hashArray
module.exports.hashFile = nativeBinding.hashFile

View File

@ -7,7 +7,6 @@ pub use find_matching_projects::*;
pub use get_mod_time::*;
pub use normalize_trait::Normalize;
#[cfg_attr(not(target_arch = "wasm32"), path = "atomics/default.rs")]
#[cfg_attr(target_arch = "wasm32", path = "atomics/wasm.rs")]
pub mod atomics;

View File

@ -1,7 +0,0 @@
#[napi]
#[cfg(target_arch = "wasm32")]
pub const IS_WASM: bool = true;
#[napi]
#[cfg(not(target_arch = "wasm32"))]
pub const IS_WASM: bool = false;