Skip to content
Snippets Groups Projects
Select Git revision
  • 684975b43b1b1bdad9642f659a24dfde1fc1f53a
  • master default protected
  • 366-signe-a-cote-du-droit-en-vigueur-sur-l-ui-pour-indiquer-que-la-reforme-a-eu-lieu-mais-qu-elle-n
  • revalo_retraites
  • 381-pb-affichage-labels-des-parametres-sur-plus-de-3-lignes
  • ajoute-duplicate-aide-logement
  • poc_castype_ia
  • parametres-editables-budget
  • ui-parametres
  • 355-les-dispositifs-prestations-sociales-du-graphique-se-cachent-montrent-en-meme-temps-2
  • 358-les-variables-dont-le-montant-est-nul-apparaissent-en-bleu-et-non-cliquables
  • 356-ajuster-la-largeur-sur-les-graphiques-budgetaires
  • incoherence_cas_type_0
  • fix-ui-suppression-tranches-baremes
  • ajout-agregat-cehr-version-plf
  • impact_carbone
  • xlsx
  • header_revamp
  • 270-concevoir-la-page-d-accueil-leximpact
  • 219-conversion-des-montants-min-et-max-de-l-axe-des-x-en-smic
  • 294-afficher-le-salaire-des-cas-types-en-nombre-de-smic
  • 0.0.1174
  • 0.0.1173
  • 0.0.1172
  • 0.0.1171
  • 0.0.1170
  • 0.0.1169
  • 0.0.1168
  • 0.0.1167
  • 0.0.1166
  • 0.0.1165
  • 0.0.1164
  • 0.0.1163
  • 0.0.1162
  • 0.0.1161
  • 0.0.1160
  • 0.0.1159
  • 0.0.1158
  • 0.0.1157
  • 0.0.1156
  • 0.0.1155
41 results

VariableReferredValueParameter.svelte

Blame
  • errors.ts 1.65 KiB
    import type { Audit, Auditor } from "@auditors/core"
    
    export function auditEditedAttribute<T>(
      audit: Audit,
      data: T,
      key: string,
      value: unknown,
      deleteNullish: boolean,
      errors: { [key: string]: unknown },
      ...auditors: Auditor[]
    ): [T, { [key: string]: unknown }] {
      let error = null
      for (const auditor of auditors) {
        ;[value, error] = auditor(audit, value)
        if (error !== null) {
          break
        }
      }
      if (error === null) {
        if (errors[key] !== undefined) {
          errors = { ...errors }
          delete errors[key]
        }
      } else if (error !== errors[key]) {
        errors = { ...errors, [key]: error }
      }
      if (error === null && deleteNullish && value == null) {
        if (data[key] !== undefined) {
          data = { ...data }
          delete data[key]
        }
      } else if (value !== data[key]) {
        data = { ...data, [key]: value }
      }
      return [data, errors]
    }
    
    export function errorAsKeyValueDictionary(error: unknown): {
      [key: string]: unknown
    } {
      return error === undefined ||
        error === null ||
        typeof error === "string" ||
        Array.isArray(error) ||
        typeof error !== "object"
        ? {}
        : (error as {
            [key: string]: unknown
          })
    }
    
    export function* iterArrayWithErrors<T>(
      value: Iterable<T> | undefined | null,
      error: { [index: string]: unknown } | undefined | null,
    ): Generator<[T, unknown], void, unknown> {
      if (value != null) {
        if (
          error === undefined ||
          error === null ||
          typeof error === "string" ||
          Array.isArray(error) ||
          typeof error !== "object"
        ) {
          error = {}
        }
        for (const [index, item] of [...value].entries()) {
          yield [item, error[index]]
        }
      }
    }