@formkit/utils

Introdução

Funções utilitárias comumente compartilhadas entre os pacotes oficiais do FormKit.

Você pode adicionar este pacote usando npm install @formkit/utils ou yarn add @formkit/utils.

Funções

assignDeep()

Realiza uma operação recursiva semelhante a Object.assign.

Assinatura

assignDeep<A extends Record<PropertyKey, any>, B extends Record<PropertyKey, any>>(a: A, b: B): A & B;

Parâmetros

  • a — Um objeto a ser atribuído.
  • b — Um objeto para obter valores.

Retorna

A & B

camel()

Esta função converte kebab-case para camelCase. Ela SOMENTE converte de kebab para camel.

Assinatura

camel(str: string): string;

Parâmetros

  • str — String a ser convertida para camel case.

Retorna

string

clone()

Realiza um clone recursivo em um objeto dado. Destinado apenas para ser usado em objetos simples como arrays e POJOs.

Assinatura

clone<T extends Record<string, unknown> | unknown[] | null>(obj: T, explicit?: string[]): T;

Parâmetros

  • obj — Objeto a ser clonado.
  • explicit opcional — Array de itens a serem explicitamente clonados.

Retorna

T

cloneAny()

Clona qualquer coisa. Se o item for escalar, sem problemas, ele o devolve. Se for um objeto, realiza uma operação de clone (rápida/solta).

Assinatura

cloneAny<T>(obj: T): T;

Parâmetros

  • obj — O valor a ser clonado.

Retorna

T

dedupe()

Dadas 2 arrays, retorna-as como uma array combinada sem duplicatas.

Assinatura

dedupe<T extends any[] | Set<any>, X extends any[] | Set<any>>(arr1: T, arr2?: X): any[];

Parâmetros

  • arr1 — Primeira array.
  • arr2 opcional — Segunda array.

Retorna

any[]

empty()

Determina se um valor está vazio ou não.

Assinatura

empty(value: any): boolean;

Parâmetros

  • value — O valor a ser verificado se está vazio.

Retorna

boolean

eq()

Compara dois valores para igualdade, opcionalmente em profundidade.

Assinatura

eq(valA: any, valB: any, deep?: boolean, explicit?: string[]): boolean;

Parâmetros

  • valA — Primeiro valor.
  • valB — Segundo valor.
  • deep opcional — Se vai comparar profundamente se for um objeto.
  • explicit opcional — Uma array de chaves para verificar explicitamente.

Retorna

boolean

eqRegExp()

Uma expressão regular para testar uma string de data válida.

Assinatura

eqRegExp(x: RegExp, y: RegExp): boolean;

Parâmetros

  • x — Uma RegExp para comparar.
  • y — Uma RegExp para comparar.

escapeExp()

Escapa uma string para uso em expressões regulares.

Assinatura

escapeExp(string: string): string;

Parâmetros

  • string — String a ser escapada.

Retorna

string

except()

Retorna um novo objeto (raso) com quaisquer propriedades desejadas removidas.

Assinatura

except(obj: Record<string, any>, toRemove: Array<string | RegExp>): Record<string, any>;

Parâmetros

  • obj — O objeto inicial.
  • toRemove — O array de propriedades a serem removidas. Aceita strings ou expressões regulares.

Retorna

Record<string, any>

extend()

Mescla recursivamente dados de adicional em original, retornando um novo objeto.

Assinatura

extend(original: Record<string, any>, additional: Record<string, any> | string | null, extendArrays?: boolean, ignoreUndefined?: boolean): Record<string, any> | string | null;

Parâmetros

  • original — O array original.
  • additional — O array a ser mesclado.
  • extendArrays opcional — Se irá estender/concatenar valores de array em vez de substituí-los.
  • ignoreUndefined opcional — Se irá preservar valores do objeto original mesmo que o objeto adicional tenha esses valores definidos como indefinidos.

Retorna

Record<string, any> | string | null

SEM_EFEITOS_COLATERAIS

getAt()

Obtém um valor específico por meio da notação de ponto.

Assinatura

getAt(obj: any, addr: string): unknown;

Parâmetros

  • obj — Um objeto para buscar dados.
  • addr — Um "endereço" na notação de ponto.

Retorna

unknown

has()

Verifica se a propriedade dada existe no objeto dado.

Assinatura

has(obj: {
    [index: string]: any;
    [index: number]: any;
}, property: string | symbol | number): boolean;

Parâmetros

  • obj — Um objeto para verificar.
  • property — A propriedade a ser verificada.

Retorna

boolean

init()

Define um objeto como um valor inicial.

Assinatura

init<T extends object>(obj: T): T & {
    __init?: true;
};

Parâmetros

  • obj — Objeto para o qual será adicionado um valor inicial.

Retorna

T & { __init?: true }

isObject()

Verifica se um objeto é um array simples ou registro.

Assinatura

isObject(o: unknown): o is Record<PropertyKey, unknown> | unknown[];

Parâmetros

  • o — Valor a ser verificado.

Retorna

boolean

isPojo()

Tenta determinar se um objeto é um POJO (Plain Old JavaScript Object). Principalmente retirado de is-plain-object: https://github.com/jonschlinkert/is-plain-object Copyright (c) 2014-2017, Jon Schlinkert.

Assinatura

isPojo(o: any): o is Record<string, any>;

Parâmetros

  • o — O valor a ser verificado.

Retorna

boolean

isQuotedString()

Determina se a string fornecida está totalmente entre aspas.

Assinatura

isQuotedString(str: string): boolean;

Parâmetros

  • str — A string a ser verificada.

Retorna

boolean

Exemplos

hello - false
"hello" - true
'world' - true
"hello"=="world" - false
"hello'this'" - false
"hello"'there' - false
"hello""there" - false
'hello === world' - true

isRecord()

Determina se um objeto é um objeto.

Assinatura

isRecord(o: unknown): o is Record<PropertyKey, unknown>;

Parâmetros

  • o — O valor a ser verificado.

Retorna

boolean

kebab()

Isso converte camel-case para kebab case. SÓ converte de camel para kebab.

Assinatura

kebab(str: string): string;

Parâmetros

  • str — String a ser convertida para kebab.

Retorna

string

nodeProps()

Filtra valores de um objeto que não devem ser considerados "props" de um nó central, como "value" e "name".

Assinatura

nodeProps(...sets: Array<Record<string, any>>): Record<string, any>;

Parâmetros

  • sets — Os arrays para obter valores filtrados.

Retorna

Record<string, any>

nodeType()

Dado um tipo de entrada FormKit, retorna o tipo correto em lowerCased().

Assinatura

nodeType(type: string): 'list' | 'group' | 'input';

Parâmetros

  • type — String para retornar para verificar o tipo correto

Retorna

'list' | 'group' | 'input'

oncePerTick()

Dada uma função, apenas 1 chamada será feita por pilha de chamadas. Todas as outras serão descartadas.

Assinatura

oncePerTick<T extends CallableFunction>(fn: T): T;

Parâmetros

  • fn — A função a ser chamada uma vez por tick.

Retorna

only()

Extrai um conjunto de chaves de um determinado objeto. Importante, isso extrairá valores mesmo que eles não estejam definidos no objeto original — eles simplesmente terão um valor indefinido.

Assinatura

only(obj: Record<string, any>, include: Array<string | RegExp>): Record<string, any>;

Parâmetros

  • obj — O objeto para obter valores.
  • include — A matriz de itens a serem obtidos.

Retorna

Record<string, any>

parseArgs()

Analisa uma string para argumentos separados por vírgulas.

Assinatura

parseArgs(str: string): string[];

Parâmetros

  • str — String para analisar argumentos.

Retorna

string[]

regexForFormat()

Dado um formato de data em string, retorna uma regex para combinar.

Assinatura

regexForFormat(format: string): RegExp;

Parâmetros

  • format — String a ser transformada em RegExp.

Retorna

RegExp

Exemplos

regexForFormat('MM') // retorna '(0[1-9]|1[012])'

rmEscapes()

Remove caracteres de escape extras.

Assinatura

rmEscapes(str: string): string;

Parâmetros

  • str — String para remover caracteres de escape extras.

Retorna

string

setify()

Cria um novo conjunto do tipo especificado e usa os valores de um Array ou de um Set existente.

Assinatura

setify<T>(items: Set<T> | T[] | null | undefined): Set<T>;

Parâmetros

  • items — Uma matriz ou um Set.

Retorna

Set<T>

Exemplos

import { setify } from '@formkit/utils'

const tk = setify(['a', 'b'])
// Set(2) {'a', 'b'}

shallowClone()

Clona superficialmente o objeto dado.

Assinatura

shallowClone<T>(obj: T, explicit?: string[]): T;

Parâmetros

  • obj — Objeto a ser clonado superficialmente.
  • explicit opcional — A matriz de chaves a serem clonadas explicitamente.

Retorna

T

slugify()

Transforma qualquer string em uma string segura para URL/DOM.

Assinatura

slugify(str: string): string;

Parâmetros

  • str — String a ser transformada em uma URL segura.

Retorna

string

spread()

Espalha um objeto ou um array, caso contrário, retorna o mesmo valor.

Assinatura

spread<T>(obj: T, explicit?: string[]): T;

Parâmetros

  • obj — O objeto a ser espalhado.
  • explicit opcional — O array de itens a serem explicitamente espalhados.

Retorna

T

token()

Gera uma string aleatória.

Assinatura

token(): string;

Retorna

string

Exemplos

import { token } from '@formkit/utils'

const tk = token()
// 'jkbyqnphqm'

undefine()

Determina se o valor de uma propriedade está presente (verdadeiro) ou não (indefinido). Por exemplo, a propriedade desativada deve ser desativada apenas por existir, mas e se for definida como a string "false" — então não deve ser desativada.

Assinatura

undefine(value: unknown): true | undefined;

Parâmetros

  • value — Valor a ser verificado por indefinição.

Retorna

true | undefined

whenAvailable()

Usa um observador de mutação global para esperar que um determinado elemento apareça no DOM.

Assinatura

whenAvailable(childId: string, callback: (el: Element) => void, root?: Document | ShadowRoot): void;

Parâmetros

  • childId — O id do nó filho.
  • callback — A função de callback a ser chamada quando o nó filho é encontrado.
  • root opcional

TypeScript

FormKitDateTokens

As strings de token de data que podem ser usadas para formatação de data.

export type FormKitDateTokens = 'MM' | 'M' | 'DD' | 'D' | 'YYYY' | 'YY';