Listar operações estaduais

O provedor de estado dispõe de operações de lista para armazenar o estado.

Observação: Esses exemplos utilizam vcr.getInstanceState() para o estado compartilhado entre todas as réplicas. Para o estado por conversa, use vcr.createSessionWithId(id) com um UUID determinístico do contexto da solicitação (por exemplo, conversation_uuid de um retorno de chamada de voz). Nunca use vcr.createSession() em âmbito global — veja Provedor de estado: escopo da sessão para mais detalhes.

Colocar os elementos no início da lista

Usando o nome de uma lista, você pode adicionar um elemento no início dela.

Assinatura do método

listPrepend<T>(list: string, value: T)

Inserindo elementos no início da lista

await state.listPrepend("list", "bar");

Inserir elementos no final da lista

Usando o nome de uma lista, você pode adicionar um elemento ao final dela.

Assinatura do método

listAppend<T>(list: string, value: T)

Inserindo elementos no final da lista

await state.listAppend("list", "foo");

Inserir um elemento em posição relativa

É possível adicionar um elemento a uma lista antes ou depois de um elemento já existente. O before O booleano é usado para decidir se o elemento deve ser colocado antes (true) ou depois de (false) o pivot valor (o elemento existente).

Assinatura do método

listInsert<T>(list: string, before: boolean, pivot: T, value: T)

Inserção relativa de um elemento

await state.listInsert('list', false, 'foo', 'bar');

Substituir o valor de um elemento em um índice específico

É possível sobrescrever o valor de um elemento em um índice específico. É necessário que já haja um valor no position especificado.

Assinatura do método

listSet<T>(list: string, position: number, value: T)

Substituindo o valor de um elemento em um índice específico

await state.listSet('list', 0, 'foo');

Obter um elemento em um índice específico

É possível obter um elemento em um índice específico.

Assinatura do método

listIndex<T>(list: string, position: number)

Como obter um elemento em um índice específico

const element = await state.listIndex('list', 0);

Obter o tamanho de uma lista

Usando o nome de uma lista, é possível obter o comprimento dela.

Assinatura do método

listLength(list: string)

Como obter o comprimento de uma lista

const listLength = await state.listLength("list");

Obter os elementos de uma lista usando um intervalo

Usando o nome de uma lista e um intervalo, é possível obter os elementos contidos no intervalo especificado.

Assinatura do método

listRange<T>(list: string, startPos: number, endPos: number)

Como obter os elementos de uma lista usando um intervalo

const elements = await state.listRange("list", 0, 2);

Remover elementos da lista

É possível remover elementos de uma lista especificando um valor. Opcionalmente, é possível indicar um número para controlar quantos elementos serão removidos caso haja duplicatas.

Assinatura do método

listRemove<T>(list: string, value: T, count?: number)

Remoção de elementos da lista

await state.listRemove('list', 'foo');

Elementos “Pop” no início da lista

É possível retirar elementos do início de uma lista e recebê-los de volta. Opcionalmente, você pode passar um count para remover mais de um elemento por vez.

Assinatura do método

listStartPop<T>(list: string, count?: number)

Removendo elementos do início da lista

await state.listStartPop("list");

Elementos pop no final da lista

É possível remover elementos do final de uma lista e recebê-los de volta.

Assinatura do método

listEndPop<T>(list: string, count?: number)

Removendo elementos do final da lista

await state.listEndPop("list");

Reduzir uma lista

É possível remover elementos de uma lista especificando um intervalo. Os elementos removidos não vai será devolvido a você.

Assinatura do método

listTrim<T>(list: string, startPos: number, endPos: number)

Reduzir uma lista

await state.listTrim("list", 0, 1);