fix: correctly generate require paths

This commit is contained in:
daimond113 2024-07-26 19:16:47 +02:00
parent 7f8b2761ab
commit d8cd78e7e2
No known key found for this signature in database
GPG key ID: 3A8ECE51328B513C
2 changed files with 18 additions and 18 deletions

View file

@ -65,19 +65,19 @@ pub fn generate_lib_linking_module<I: IntoIterator<Item = S>, S: AsRef<str>>(
} }
fn luau_style_path(path: &Path) -> String { fn luau_style_path(path: &Path) -> String {
path.components() let path = path
.enumerate() .components()
.filter_map(|(i, ct)| match ct { .filter_map(|ct| match ct {
Component::ParentDir => Some(if i == 0 { Component::CurDir => Some(".".to_string()),
".".to_string() Component::ParentDir => Some("..".to_string()),
} else {
"..".to_string()
}),
Component::Normal(part) => Some(format!("{}", part.to_string_lossy())), Component::Normal(part) => Some(format!("{}", part.to_string_lossy())),
_ => None, _ => None,
}) })
.collect::<Vec<_>>() .collect::<Vec<_>>()
.join("/") .join("/");
let require = format!("./{path}");
format!("{require:?}")
} }
pub fn get_lib_require_path( pub fn get_lib_require_path(
@ -115,10 +115,10 @@ pub fn get_lib_require_path(
.collect::<Vec<_>>() .collect::<Vec<_>>()
.join(""); .join("");
return format!("script{path}"); return format!("script.Parent{path}");
}; };
format!("{:?}", luau_style_path(&path)) luau_style_path(&path)
} }
pub fn generate_bin_linking_module(path: &str) -> String { pub fn generate_bin_linking_module(path: &str) -> String {
@ -133,5 +133,5 @@ pub fn get_bin_require_path(
let path = pathdiff::diff_paths(destination_dir, base_dir).unwrap(); let path = pathdiff::diff_paths(destination_dir, base_dir).unwrap();
let path = bin_file.to_path(path); let path = bin_file.to_path(path);
format!("{:?}", luau_style_path(&path)) luau_style_path(&path)
} }

View file

@ -122,7 +122,7 @@ impl Project {
let module = generator::generate_lib_linking_module( let module = generator::generate_lib_linking_module(
&generator::get_lib_require_path( &generator::get_lib_require_path(
&node.target.kind(), &node.target.kind(),
&linker_file, &base_folder,
lib_file, lib_file,
&container_folder, &container_folder,
node.node.pkg_ref.use_new_structure(), node.node.pkg_ref.use_new_structure(),
@ -138,7 +138,7 @@ impl Project {
let module = generator::generate_bin_linking_module( let module = generator::generate_bin_linking_module(
&generator::get_bin_require_path( &generator::get_bin_require_path(
&linker_file, &base_folder,
bin_file, bin_file,
&container_folder, &container_folder,
), ),
@ -165,16 +165,16 @@ impl Project {
continue; continue;
}; };
let linker_file = create_and_canonicalize( let linker_folder = create_and_canonicalize(
container_folder container_folder
.join(dependency_node.node.base_folder(node.target.kind(), false)), .join(dependency_node.node.base_folder(node.target.kind(), false)),
)? )?;
.join(format!("{dependency_alias}.luau")); let linker_file = linker_folder.join(format!("{dependency_alias}.luau"));
let module = generator::generate_lib_linking_module( let module = generator::generate_lib_linking_module(
&generator::get_lib_require_path( &generator::get_lib_require_path(
&dependency_node.target.kind(), &dependency_node.target.kind(),
&linker_file, &linker_folder,
lib_file, lib_file,
&dependency_node.node.container_folder( &dependency_node.node.container_folder(
&packages_container_folder, &packages_container_folder,