@formkit/utils

Introduction

Fonctions utilitaires couramment partagées entre les packages officiels de FormKit.

Vous pouvez ajouter ce package en utilisant npm install @formkit/utils ou yarn add @formkit/utils.

Fonctions

assignDeep()

Effectue une opération récursive similaire à Object.assign.

Signature

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

Paramètres

  • a — Un objet à assigner.
  • b — Un objet à partir duquel obtenir des valeurs.

Retourne

A & B

camel()

Ceci convertit le kebab-case en camelCase. Il convertit UNIQUEMENT du kebab en camel.

Signature

camel(str: string): string;

Paramètres

  • str — Chaîne à convertir en camel case.

Retourne

string

clone()

Effectue un clonage récursif sur un objet donné. Destiné uniquement à être utilisé pour des objets simples comme des tableaux et des POJOs.

Signature

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

Paramètres

  • obj — Objet à cloner.
  • explicit optionnel — Tableau d'éléments à cloner explicitement.

Retourne

T

cloneAny()

Clone n'importe quoi. Si l'élément est scalaire, pas de soucis, il le renvoie tel quel. S'il s'agit d'un objet, il effectue une opération de clonage (rapide/lâche).

Signature

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

Paramètres

  • obj — La valeur à cloner.

Retourne

T

dedupe()

Étant donné 2 tableaux, les renvoie sous forme d'un tableau combiné sans doublons.

Signature

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

Paramètres

  • arr1 — Premier tableau.
  • arr2 optionnel — Deuxième tableau.

Retourne

any[]

empty()

Détermine si une valeur est vide ou non.

Signature

empty(value: any): boolean;

Paramètres

  • value — La valeur à vérifier si elle est vide.

Retourne

boolean

eq()

Compare deux valeurs pour l'égalité, éventuellement en profondeur.

Signature

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

Paramètres

  • valA — Première valeur.
  • valB — Deuxième valeur.
  • deep optionnel — S'il va comparer en profondeur s'il s'agit d'un objet.
  • explicit optionnel — Un tableau de clés à vérifier explicitement.

Retours

boolean

eqRegExp()

Une expression régulière pour tester une chaîne de caractères de date valide.

Signature

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

Paramètres

  • x — Une RegExp à comparer.
  • y — Une RegExp à comparer.

escapeExp()

Échappe une chaîne de caractères pour une utilisation dans des expressions régulières.

Signature

escapeExp(string: string): string;

Paramètres

  • string — Chaîne de caractères à échapper.

Retours

string

except()

Renvoie un nouvel objet (superficiel) avec les propriétés souhaitées supprimées.

Signature

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

Paramètres

  • obj — L'objet de départ.
  • toRemove — Le tableau des propriétés à supprimer. Accepte des chaînes de caractères ou des expressions régulières.

Retours

Record<string, any>

extend()

Fusionne récursivement les données supplémentaires dans l'original en renvoyant un nouvel objet.

Signature

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

Paramètres

  • original — Le tableau original.
  • additional — Le tableau à fusionner.
  • extendArrays optionnel — S'il va étendre/concaténer les valeurs de tableau au lieu de les remplacer.
  • ignoreUndefined optionnel — S'il va préserver les valeurs de l'objet original même si l'objet supplémentaire a ces valeurs définies comme indéfinies.

Retours

Record<string, any> | string | null

NO_SIDE_EFFECTS

getAt()

Obtenez une valeur spécifique via la notation pointée.

Signature

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

Paramètres

  • obj — Un objet à partir duquel récupérer des données.
  • addr — Une "adresse" en notation pointée.

Retours

unknown

has()

Vérifie si la propriété donnée existe sur l'objet donné.

Signature

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

Paramètres

  • obj — Un objet à vérifier.
  • property — La propriété à vérifier.

Retours

boolean

init()

Définit un objet comme valeur initiale.

Signature

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

Paramètres

  • obj — Objet auquel une valeur initiale doit être ajoutée.

Retourne

T & { __init?: true }

isObject()

Vérifie si un objet est un tableau simple ou un enregistrement.

Signature

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

Paramètres

  • o — Valeur à vérifier.

Retourne

boolean

isPojo()

Tente de déterminer si un objet est un POJO (Plain Old JavaScript Object). Principalement tiré de is-plain-object: https://github.com/jonschlinkert/is-plain-object Copyright (c) 2014-2017, Jon Schlinkert.

Signature

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

Paramètres

  • o — La valeur à vérifier.

Retourne

boolean

isQuotedString()

Détermine si la chaîne donnée est entièrement citée.

Signature

isQuotedString(str: string): boolean;

Paramètres

  • str — La chaîne à vérifier.

Retourne

boolean

Exemples

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

isRecord()

Détermine si un objet est un objet.

Signature

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

Paramètres

  • o — La valeur à vérifier.

Retourne

boolean

kebab()

Cela convertit le camel-case en kebab case. Il convertit UNIQUEMENT du camel au kebab.

Signature

kebab(str: string): string;

Paramètres

  • str — Chaîne à transformer en kebab.

Retourne

string

nodeProps()

Filtre les valeurs d'un objet qui ne devraient pas être considérées comme des "props" d'un nœud de base, comme "value" et "name".

Signature

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

Paramètres

  • sets — Les tableaux dont les valeurs doivent être filtrées.

Retourne

Record<string, any>

nodeType()

Étant donné un type d'entrée FormKit, renvoie le type correct en minuscules().

Signature

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

Paramètres

  • type — Chaîne à retourner pour vérifier le type correct

Retourne

'list' | 'group' | 'input'

oncePerTick()

Étant donné une fonction, un seul appel sera effectué par pile d'appels. Tous les autres seront ignorés.

Signature

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

Paramètres

  • fn — La fonction à appeler une fois par tick.

Retourne

only()

Extrait un ensemble de clés d'un objet donné. Importamment, cela extraira les valeurs même si elles ne sont pas définies sur l'objet original — elles auront simplement une valeur indéfinie.

Signature

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

Paramètres

  • obj — L'objet à partir duquel obtenir les valeurs.
  • include — Le tableau d'éléments à obtenir.

Retourne

Record<string, any>

parseArgs()

Analyse une chaîne pour des arguments séparés par des virgules.

Signature

parseArgs(str: string): string[];

Paramètres

  • str — Chaîne à partir de laquelle analyser les arguments.

Retourne

string[]

regexForFormat()

Étant donné un format de date en chaîne, retourne une regex pour correspondre.

Signature

regexForFormat(format: string): RegExp;

Paramètres

  • format — Chaîne à transformer en RegExp.

Retourne

RegExp

Exemples

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

rmEscapes()

Supprime les caractères d'échappement supplémentaires.

Signature

rmEscapes(str: string): string;

Paramètres

  • str — Chaîne à partir de laquelle supprimer les caractères d'échappement supplémentaires.

Retourne

string

setify()

Crée un nouvel ensemble du type spécifié et utilise les valeurs d'un tableau ou d'un ensemble existant.

Signature

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

Paramètres

  • items — Un tableau ou un ensemble.

Retourne

Set<T>

Exemples

import { setify } from '@formkit/utils'

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

shallowClone()

Clone superficiellement l'objet donné.

Signature

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

Paramètres

  • obj — Objet à cloner superficiellement.
  • explicit optionnel — Le tableau de clés à cloner explicitement.

Retourne

T

slugify()

Transforme n'importe quelle chaîne en une chaîne sûre pour les URL/DOM.

Signature

slugify(str: string): string;

Paramètres

  • str — Chaîne à transformer en une chaîne sûre pour une URL.

Retourne

string

spread()

Étend un objet ou un tableau, sinon renvoie la même valeur.

Signature

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

Paramètres

  • obj — L'objet à étendre.
  • explicit optionnel — Le tableau des éléments à étendre explicitement.

Retourne

T

token()

Génère une chaîne de caractères aléatoire.

Signature

token(): string;

Retourne

string

Exemples

import { token } from '@formkit/utils'

const tk = token()
// 'jkbyqnphqm'

undefine()

Détermine si la valeur d'une propriété est présente (true) ou non (undefined). Par exemple, la propriété désactivée devrait être désactivée simplement en existant, mais que se passe-t-il si elle est définie sur la chaîne "false" — alors elle ne devrait pas être désactivée.

Signature

undefine(value: unknown): true | undefined;

Paramètres

  • value — Valeur à vérifier pour undefined.

Retourne

true | undefined

whenAvailable()

Utilise un observateur de mutation global pour attendre qu'un élément donné apparaisse dans le DOM.

Signature

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

Paramètres

  • childId — L'id du nœud enfant.
  • callback — Le rappel à appeler lorsque le nœud enfant est trouvé.
  • root optionnel

TypeScript

FormKitDateTokens

Les chaînes de jetons de date qui peuvent être utilisées pour le formatage des dates.

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