// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the MIT License. import * as types from '@azure/functions'; import { ReadOnlyError } from '../errors'; import { InvocationContext } from '../InvocationContext'; import { nonNullProp } from '../utils/nonNull'; import { HookContext } from './HookContext'; export class InvocationHookContext extends HookContext implements types.InvocationHookContext { #init: types.InvocationHookContextInit; constructor(init?: types.InvocationHookContextInit) { super(init); this.#init = init ?? {}; this.#init.inputs ??= []; this.#init.invocationContext ??= new InvocationContext(); } get invocationContext(): types.InvocationContext { return nonNullProp(this.#init, 'invocationContext'); } set invocationContext(_value: types.InvocationContext) { throw new ReadOnlyError('invocationContext'); } get inputs(): unknown[] { return nonNullProp(this.#init, 'inputs'); } set inputs(value: unknown[]) { this.#init.inputs = value; } }