1import type { RendererAdapter } from '../runtime/types'2import { RenderError } from '../runtime/errors'3import { parseTrn } from '../languages/trn'4import { renderTrn } from '../languages/trn-renderer'5import { edgeFailure, edgeResult } from './types'67const VERSION = 'diagramzip-trn@16'89function validateOptions(options: Record<string, string>): void {10 for (const name of Object.keys(options)) {11 throw new RenderError(400, 'unsupported_options', `Unsupported TRN option: ${name}.`)12 }13}1415export const trnAdapter: RendererAdapter = {16 id: 'trn',17 runtime: 'edge-js',18 version: VERSION,19 render(request, signal) {20 if (signal.aborted) throw signal.reason21 try {22 validateOptions(request.options)23 return Promise.resolve(edgeResult('trn', VERSION, renderTrn(parseTrn(request.source))))24 } catch (error) {25 return edgeFailure('trn', error)26 }27 },28}