mirror of
https://github.com/denoland/deno.git
synced 2024-12-11 01:58:05 -05:00
24 lines
777 B
Rust
24 lines
777 B
Rust
|
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
||
|
|
||
|
/// Gets the corresponding @types package for the provided package name.
|
||
|
pub fn types_package_name(package_name: &str) -> String {
|
||
|
debug_assert!(!package_name.starts_with("@types/"));
|
||
|
// Scoped packages will get two underscores for each slash
|
||
|
// https://github.com/DefinitelyTyped/DefinitelyTyped/tree/15f1ece08f7b498f4b9a2147c2a46e94416ca777#what-about-scoped-packages
|
||
|
format!("@types/{}", package_name.replace('/', "__"))
|
||
|
}
|
||
|
|
||
|
#[cfg(test)]
|
||
|
mod test {
|
||
|
use super::types_package_name;
|
||
|
|
||
|
#[test]
|
||
|
fn test_types_package_name() {
|
||
|
assert_eq!(types_package_name("name"), "@types/name");
|
||
|
assert_eq!(
|
||
|
types_package_name("@scoped/package"),
|
||
|
"@types/@scoped__package"
|
||
|
);
|
||
|
}
|
||
|
}
|