JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q29073F
  • License Apache-2.0

A module for explicability from the trace of a catala program

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@catala-lang/catala-explain) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    Catala Explain from trace

    Report BugExample

    A module for explicability from the trace of a catala program.

    Installation

    To add this module to your ReScript project, install the following dependencies:

    yarn add -D @catala-lang/catala-explain rescript-docx

    Then add them to the bs-dependencies of your bsconfig.json:

     {
       ...
       "bs-dependencies": [
    +    "@catala-lang/catala-explain"
    +    "rescript-docx"
       ]
    }

    ℹ️ You need to install rescript-docx to manage the generated .docx file.

    Usage

    This module is meant to be used as a library. It provides a function CatalaExplain.generate that takes the user's input and the trace of a catala program and generates a .docx file containing the explanation of the result of the program.

    let doc = CatalaExplain.generate(
        // The trace of the catala program
        ~events=CatalaFrenchLaw.retrieveEventsSerialized()->CatalaRuntime.deserializedEvents,
        // A JSON object containing the user's input used to generate the document
        ~userInputs=formData,
        // The schema of the user inputs form, used for having explicit input form labels.
        ~schema= WebAssets.schema,
        // The options for the document
        ~opts={
            title: "Titre de la décision",
            description: "Description du document",
            creator: "Créateur du document",
            // Key from user inputs to ignore (e.g 'identifiant' in array items), instead
            // of using the 'title' field of the schema.
            keysToIgnore: WebAssets.keysToIgnore,
            // The output to show as the result of the computation
            selectedOutput: WebAssets.selectedOutput,
        },
    )
    
    // Example of how to save the generated document
    // 
    // Where `FileSaver` is a minimal wrapper around the `file-saver` package
    doc
    ->Docx.Packer.toBlob
    ->Promise.thenResolve(blob => {
        FileSaver.saveAs(blob, `explication-decision.docx`)
    })
    ->ignore

    ℹ️ You can find a complete example of usage in the catala-dsfr repository.

    Sponsors

    This library has been developed during a research project funded by the mission logiciels libres et communs numériques of the direction interministérielle du numérique in collaboration with the Catala project.