Skip to content

Diagnostics

Trois types, une option. Voir le guide pour l'usage et la lecture des symptômes.

DegradationHandler

ts
type DegradationHandler = (event: DegradationEvent) => void;

Passé via RenderOptions.onDegradation — accepté par renderPackageToHtml, renderDocumentToHtml, renderSpecification, createAttachmentLookup et renderXhtmlContent.

Une exception levée dans le gestionnaire est interceptée et ignorée. Un canal de diagnostic qui casse ce qu'il observe serait pire que pas de canal du tout.

DegradationEvent

ts
interface DegradationEvent {
  code: DegradationCode;
  /** Une phrase lisible, sûre à journaliser telle quelle. */
  message: string;
  /** Ce qui identifie l'endroit : un id, un chemin, un nom de balise, la valeur fautive. */
  detail?: Record<string, unknown>;
}

DegradationCode

ts
type DegradationCode =
  | "attachment-missing"
  | "attachment-too-large"
  | "unresolved-reference"
  | "orphan-attribute-value"
  | "missing-spec-object"
  | "duplicate-dom-id"
  | "custom-renderer-threw"
  | "custom-renderer-unbalanced-html"
  | "dropped-tag"
  | "unwrapped-tag"
  | "dropped-style-declaration"
  | "dropped-href"
  | "unparsable-date"
  | "invalid-locale";
CodeSituationClés de detail
attachment-missingpièce jointe référencée qu'aucun résolveur ne trouvepath
attachment-too-largepièce jointe dépassant maxInlineBytes, laissée non résoluepath, size, maxInlineBytes
unresolved-referenceSpecRelation visant un objet absent du rendurelation, sourceRef, targetRef
orphan-attribute-valuevaleur dont l'AttributeDefinition est absente du SpecType déclaréspecObject, definitionRef, specType
missing-spec-objectnœud d'arborescence pointant vers un SpecObject inexistantspecHierarchy, objectRef
duplicate-dom-idobjet rendu plusieurs fois ; seule la première occurrence porte l'idspecObject, id, specHierarchy
custom-renderer-threwun customAttributeRenderers a levé et a été ignoréattribute, specObject, error
custom-renderer-unbalanced-htmlHTML personnalisé mal fermé, échappé en texteattribute, specObject, html
dropped-tagbalise supprimée avec son sous-arbre (<script>, <iframe>…)tag
unwrapped-tagbalise hors liste blanche déballée, enfants conservéstag
dropped-style-declarationdéclaration style invalide abandonnéeprop, value
dropped-hrefhref en javascript: / vbscript: / data: neutraliséhref
unparsable-datedate non analysable, affichée telle quellevalue
invalid-localeIntl a rejeté la locale configuréelocale, value

Les identifiants rapportés (specObject, specHierarchy, relation…) sont des identifiants ReqIF, pas des id DOM — sauf la clé id de duplicate-dom-id, qui est bien l'ancre HTML en conflit.

Volume

dropped-tag et unwrapped-tag peuvent se déclencher des milliers de fois sur un gros export — chaque <span> de mise en forme Word non autorisé compte. C'est un canal de diagnostic, pas un journal de production : filtrez par code, ou n'activez l'option qu'en investigation.

Le rendu ne change pas

Brancher un gestionnaire ne modifie strictement rien à la sortie HTML. L'option rend visibles des décisions déjà prises, elle n'en prend aucune.

Publié sous licence MIT. Conforme à OMG ReqIF v1.2 (formal/2016-07-01).