Skip to content

Commit 74396d7

Browse files
gordyffacebook-github-bot
authored andcommitted
Schema-writing command
Reviewed By: ginfung Differential Revision: D64788051 fbshipit-source-id: aeed1a2eca269db0bad1b69ec6643d5e224e3af6
1 parent 37eb48c commit 74396d7

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

compiler/crates/relay-bin/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ async fn handle_codemod_command(command: CodemodCommand) -> Result<(), Error> {
286286
let mut config = get_config(command.config)?;
287287
set_project_flag(&mut config, command.projects)?;
288288
let (programs, _, config) = get_programs(config, Arc::new(ConsoleLogger)).await;
289+
let programs = programs.values().cloned().collect();
289290

290291
match run_codemod(programs, Arc::clone(&config), command.codemod).await {
291292
Ok(_) => Ok(()),

compiler/crates/relay-compiler/src/get_programs.rs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8+
use std::collections::HashMap;
89
use std::sync::Arc;
910
use std::sync::Mutex;
1011

1112
use common::PerfLogger;
13+
use relay_config::ProjectName;
1214
use relay_transforms::Programs;
1315

1416
use crate::compiler::Compiler;
@@ -24,19 +26,24 @@ use crate::NoopArtifactWriter;
2426
pub async fn get_programs<TPerfLogger: PerfLogger + 'static>(
2527
mut config: Config,
2628
perf_logger: Arc<TPerfLogger>,
27-
) -> (Vec<Arc<Programs>>, CompilerState, Arc<Config>) {
28-
let raw_programs: Arc<Mutex<Vec<Arc<Programs>>>> = Arc::new(Mutex::new(vec![]));
29+
) -> (
30+
HashMap<ProjectName, Arc<Programs>>,
31+
CompilerState,
32+
Arc<Config>,
33+
) {
34+
let raw_programs: Arc<Mutex<HashMap<ProjectName, Arc<Programs>>>> =
35+
Arc::new(Mutex::new(HashMap::new()));
2936
let raw_programs_cloned = raw_programs.clone();
3037

3138
config.compile_everything = true;
3239
config.generate_virtual_id_file_name = None;
3340
config.artifact_writer = Box::new(NoopArtifactWriter);
3441
config.generate_extra_artifacts = Some(Box::new(
35-
move |_config, _project_config, _schema, programs, _artifacts| {
42+
move |_config, project_config, _schema, programs, _artifacts| {
3643
raw_programs_cloned
3744
.lock()
3845
.unwrap()
39-
.push(Arc::new(programs.clone()));
46+
.insert(project_config.name, Arc::new(programs.clone()));
4047
vec![]
4148
},
4249
));

0 commit comments

Comments
 (0)