///|
/// Preserve the effect-free binder on pure targets without linking process or
/// filesystem adapters. No provider or weaker profile is acquired as a fallback.
#cfg(any(target="wasm", target="wasm-gc"))
pub fn Host::register_process_metadata_provider(
self : Host,
engine : @engine.Engine,
grants : @metadata_grants.Grants?,
workspace_root : String,
invocation_root : String,
timeout~ : Int32 = 120000,
cancel_file~ : String = "",
observer~ : @observe.Observer = @observe.Observer::noop(),
audit_sink~ : MetadataAuditSink = MetadataAuditSink::noop(),
) -> Unit raise {
ignore((workspace_root, invocation_root, cancel_file, observer, audit_sink))
if timeout < 6001 || timeout > 600000 {
raise @config.Invalid("metadata.restore_invalid_deadline")
}
self.register_requested_metadata_provider(engine, fn(scope) raise {
if grants is None {
raise @linked_metadata.Invalid(
"metadata.restore_host_grants_required",
scope.project_root,
"Select an explicit --metadata-grants file",
)
}
raise @linked_metadata.Invalid(
"metadata.restore_runtime_unavailable",
scope.project_root,
"Use a qualified native or Node JS host; this runtime has no qualified process pin adapter",
)
})
}