Skip to content

Commit 73aa3ef

Browse files
authored
Merge pull request #22 from bvanjoi/next
release: 0.0.17
2 parents f805209 + de8fa68 commit 73aa3ef

File tree

5 files changed

+25
-9
lines changed

5 files changed

+25
-9
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ crate-type = ["cdylib"]
1212
[dependencies]
1313
napi = "2"
1414
napi-derive = "2"
15-
nodejs-resolver = "0.0.25"
15+
nodejs-resolver = "0.0.26"
1616
serde = { version = "1.0.137", features = ["derive"] }
1717

1818
[build-dependencies]

index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,5 @@ export interface ResolverInternal {
3232

3333
}
3434
export function create(options: RawResolverOptions): ExternalObject<ResolverInternal>
35+
export function createResolverAndInheritUnsafeCacheFromAnother(options: RawResolverOptions, another: ExternalObject<Resolver>): ExternalObject<ResolverInternal>
3536
export function resolve(resolver: ExternalObject<ResolverInternal>, base_dir: string, id: string): string

index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,8 @@ if (!nativeBinding) {
218218
throw new Error(`Failed to load native binding`)
219219
}
220220

221-
const { create, resolve } = nativeBinding
221+
const { create, createResolverAndInheritUnsafeCacheFromAnother, resolve } = nativeBinding
222222

223223
module.exports.create = create
224+
module.exports.createResolverAndInheritUnsafeCacheFromAnother = createResolverAndInheritUnsafeCacheFromAnother
224225
module.exports.resolve = resolve

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nodejs-resolver",
3-
"version": "0.0.16",
3+
"version": "0.0.17",
44
"description": "node binding for nodejs-resolver",
55
"main": "index.js",
66
"license": "MIT",

src/lib.rs

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
use napi::bindgen_prelude::External;
22
use napi_derive::napi;
3-
use nodejs_resolver::{AliasMap, Resolver, ResolverOptions};
3+
use nodejs_resolver::{AliasMap, Resolver, ResolverOptions, ResolverUnsafeCache};
44
use serde::Deserialize;
5-
use std::path::{Path, PathBuf};
5+
use std::{
6+
path::{Path, PathBuf},
7+
sync::Arc,
8+
};
69

710
#[derive(Debug, Clone, Deserialize)]
811
#[serde(rename_all = "camelCase")]
@@ -32,7 +35,7 @@ pub struct RawResolverOptions {
3235
}
3336

3437
impl RawResolverOptions {
35-
pub fn normalized(&self) -> ResolverOptions {
38+
pub fn normalized(&self, unsafe_cache: Option<Arc<ResolverUnsafeCache>>) -> ResolverOptions {
3639
let default = ResolverOptions::default();
3740
ResolverOptions {
3841
enforce_extension: self.enforce_extension.to_owned(),
@@ -51,11 +54,12 @@ impl RawResolverOptions {
5154
main_files: self.main_files.to_owned().unwrap_or(default.main_files),
5255
main_fields: self.main_fields.to_owned().unwrap_or(default.main_fields),
5356
prefer_relative: self.prefer_relative.unwrap_or(default.prefer_relative),
54-
enable_unsafe_cache: self
57+
disable_unsafe_cache: self
5558
.enable_unsafe_cache
5659
.to_owned()
57-
.unwrap_or(default.enable_unsafe_cache),
60+
.unwrap_or(default.disable_unsafe_cache),
5861
tsconfig: self.tsconfig_path.to_owned().map(PathBuf::from),
62+
unsafe_cache,
5963
}
6064
}
6165
}
@@ -77,7 +81,17 @@ pub struct ResolverInternal {}
7781

7882
#[napi(ts_return_type = "ExternalObject<ResolverInternal>")]
7983
pub fn create(options: RawResolverOptions) -> Result<External<Resolver>, napi::Error> {
80-
let options = options.normalized();
84+
let options = options.normalized(None);
85+
let resolver = Resolver::new(options);
86+
Ok(External::new(resolver))
87+
}
88+
89+
#[napi(ts_return_type = "ExternalObject<ResolverInternal>")]
90+
pub fn create_resolver_and_inherit_unsafe_cache_from_another(
91+
options: RawResolverOptions,
92+
another: External<Resolver>,
93+
) -> Result<External<Resolver>, napi::Error> {
94+
let options = options.normalized(another.unsafe_cache.clone());
8195
let resolver = Resolver::new(options);
8296
Ok(External::new(resolver))
8397
}

0 commit comments

Comments
 (0)