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);