values.ts 852 B

12345678910111213141516171819202122232425262728293031323334
  1. import type { Effect, Fiber } from "effect"
  2. export class SandboxPromise {
  3. interrupted = false
  4. constructor(
  5. readonly fiber: Fiber.Fiber<unknown, unknown> | undefined,
  6. readonly immediate?: Effect.Effect<unknown, unknown>,
  7. ) {}
  8. }
  9. export class SandboxDate {
  10. constructor(readonly time: number) {}
  11. }
  12. export class SandboxRegExp {
  13. readonly regex: RegExp
  14. constructor(pattern: string, flags: string) {
  15. this.regex = new RegExp(pattern, flags)
  16. }
  17. }
  18. export class SandboxMap {
  19. readonly map = new Map<unknown, unknown>()
  20. }
  21. export class SandboxSet {
  22. readonly set = new Set<unknown>()
  23. }
  24. export const isSandboxValue = (value: unknown): value is SandboxDate | SandboxRegExp | SandboxMap | SandboxSet =>
  25. value instanceof SandboxDate ||
  26. value instanceof SandboxRegExp ||
  27. value instanceof SandboxMap ||
  28. value instanceof SandboxSet