@azure/functions
Version:
Microsoft Azure Functions NodeJS Framework
125 lines (103 loc) • 4.32 kB
TypeScript
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License.
import { FunctionInput, FunctionOptions, FunctionOutput, FunctionResult, FunctionTrigger } from './index';
import { InvocationContext } from './InvocationContext';
export type WebPubSubHandler = (message: unknown, context: InvocationContext) => FunctionResult;
export interface WebPubSubFunctionOptions extends WebPubSubTriggerOptions, Partial<FunctionOptions> {
handler: WebPubSubHandler;
trigger?: WebPubSubTrigger;
}
export interface WebPubSubTriggerOptions {
/**
* Required - The variable name used in function code for the parameter that receives the event data
*/
name: string;
/**
* Required - The name of the hub to which the function is bound
*/
hub: string;
/**
* Required - The type of event to which the function should respond
* Must be either 'user' or 'system'
*/
eventType: 'user' | 'system';
/**
* Required - The name of the event to which the function should respond
* For system event type: 'connect', 'connected', or 'disconnected'
* For user-defined subprotocols: 'message'
* For system supported subprotocol json.webpubsub.azure.v1: user-defined event name
*/
eventName: string;
/**
* Optional - Specifies which client protocol can trigger the Web PubSub trigger functions
* Default is 'all'
*/
clientProtocols?: 'all' | 'webPubSub' | 'mqtt';
/**
* Optional - The name of an app setting or setting collection that specifies the upstream Azure Web PubSub service
* Used for signature validation
* Defaults to "WebPubSubConnectionString" if not specified
* Set to null to disable validation
*/
connection?: string | null;
}
export type WebPubSubTrigger = FunctionTrigger & WebPubSubTriggerOptions;
export interface WebPubSubConnectionInputOptions {
/**
* Required - Variable name used in function code for input connection binding object.
*/
name: string;
/**
* Required - The name of the Web PubSub hub for the function to be triggered.
* Can be set in the attribute (higher priority) or in app settings as a global value.
*/
hub: string;
/**
* Optional - The value of the user identifier claim to be set in the access key token.
*/
userId?: string;
/**
* Optional - The client protocol type.
* Valid values are 'default' and 'mqtt'.
* For MQTT clients, you must set it to 'mqtt'.
* For other clients, you can omit the property or set it to 'default'.
*/
clientProtocol?: 'default' | 'mqtt';
/**
* Optional - The name of the app setting that contains the Web PubSub Service connection string.
* Defaults to "WebPubSubConnectionString".
*/
connection?: string;
}
export type WebPubSubConnectionInput = FunctionInput & WebPubSubConnectionInputOptions;
export interface WebPubSubContextInputOptions {
/**
* Required - Variable name used in function code for input Web PubSub request.
*/
name: string;
/**
* Optional - The name of an app settings or setting collection that specifies the upstream Azure Web PubSub service.
* The value is used for Abuse Protection and Signature validation.
* The value is auto resolved with "WebPubSubConnectionString" by default.
* Null means the validation isn't needed and always succeeds.
*/
connection?: string;
}
export type WebPubSubContextInput = FunctionInput & WebPubSubContextInputOptions;
export interface WebPubSubOutputOptions {
/**
* Required - Variable name used in function code for output binding object.
*/
name: string;
/**
* Required - The name of the hub to which the function is bound.
* Can be set in the attribute (higher priority) or in app settings as a global value.
*/
hub: string;
/**
* Optional - The name of the app setting that contains the Web PubSub Service connection string.
* Defaults to "WebPubSubConnectionString".
*/
connection?: string;
}
export type WebPubSubOutput = FunctionOutput & WebPubSubOutputOptions;