OverviewFilesCommitsIssuesDocsReleasesPeers

P2P-Hiverelay / packages / blind-protocol / verify-vnext-contracts.mjs

31 lines · javascript ref:
#!/usr/bin/env node
import path from 'node:path'
import process from 'node:process'
import { spawnSync } from 'node:child_process'
import { fileURLToPath } from 'node:url'

const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../..')
const node = process.execPath
const brittle = path.join(root, 'node_modules/.bin/brittle-node')

const commands = [
  [node, ['packages/blind-protocol/generate-wire-v2.mjs', '--check']],
  [node, ['packages/blind-ipc/generate-private-ipc-v3.mjs', '--check']],
  [node, ['packages/blind-protocol/generate-client-composition-v2.mjs', '--check']],
  [node, ['packages/blind-client/generate-browser-artifact-v2.mjs', '--check']],
  [brittle, [
    'test/unit/blind-protocol-v1-compatibility-floor.test.js',
    'test/unit/blind-protocol-wire-v2.test.js',
    'test/unit/blind-client-composition-v2.test.js',
    'packages/blind-ipc/test/private-ipc-v3-contract.test.js'
  ]]
]

for (const [command, args] of commands) {
  const result = spawnSync(command, args, { cwd: root, stdio: 'inherit' })
  if (result.error) throw result.error
  if (result.status !== 0) process.exit(result.status == null ? 1 : result.status)
}

console.log('vNext WIRE v2 / private IPC v3 / composition v2 / browser v2 contracts verified')