File size: 727 Bytes
4c76b0d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import type { ExecutionIdentityAdmissionToken } from "../../../audit/execution-identity-admission.js";

const parentExecutionIdentities = new WeakMap<object, ExecutionIdentityAdmissionToken>();

/** Carry exact parent provenance without adding it to public spawn context types. */
export function withParentExecutionIdentity<T extends object>(
  context: T,
  token: ExecutionIdentityAdmissionToken | undefined,
): T {
  if (!token) {
    return context;
  }
  const carried = { ...context };
  parentExecutionIdentities.set(carried, token);
  return carried;
}

export function readParentExecutionIdentity(
  context: object,
): ExecutionIdentityAdmissionToken | undefined {
  return parentExecutionIdentities.get(context);
}