rspack_binding_api 0.101.2

Rspack shared binding API
Documentation
use napi_derive::napi;
use rspack_core::cache::persistent::storage::StorageOptions;

#[derive(Debug, Default)]
#[napi(object)]
pub struct RawStorageOptions {
  #[napi(ts_type = r#""filesystem""#)]
  pub r#type: String,
  pub directory: String,
}

impl RawStorageOptions {
  pub(super) fn normalize(self) -> rspack_error::Result<StorageOptions> {
    match self.r#type.as_str() {
      "filesystem" => Ok(StorageOptions::FileSystem {
        directory: self.directory.into(),
      }),
      storage_type => Err(rspack_error::error!(
        "unsupported storage type {storage_type}"
      )),
    }
  }
}