Have ideas to improve npm?Join in the discussion! »

    @runnerty/executor-json2csv

    3.0.0 • Public • Published

    Smart Processes Management

    NPM version Downloads Dependency Status code style: prettier

    Executor for Runnerty: JSON2CSV

    Installation:

    Through NPM

    npm i @runnerty/executor-json2csv

    You can also add modules to your project with runnerty-cli

    npx runnerty-cli add @runnerty/executor-json2csv

    This command installs the module in your project, adds example configuration in your config.json and creates an example plan of use.

    If you have installed runnerty-cli globally you can include the module with this command:

    rty add @runnerty/executor-json2csv

    Configuration sample:

    Add in config.json:

    {
      "id": "json2csv_default",
      "type": "@runnerty-executor-json2csv"
    }

    Plan sample:

    Add in plan.json:

    JSON Example

    [
      {
        "planet": "Earth",
        "radius": 6371,
        "satellites": [
          {
            "name": "moon",
            "radius": 1737
          }
        ]
      },
      {
        "planet": "Mars",
        "radius": 3389,
        "satellites": [
          {
            "name": "phobos",
            "radius": 11267
          },
          {
            "name": "deimos",
            "radius": 6.2
          }
        ]
      }
    ]

    Example 1:

    {
      "id": "json2csv_default",
      "inputPath": "./planets.json",
      "outputPath": "./planets.csv"
    }
    CSV Output
    "planet","radius","satellites"
    "Earth",6371,"[{""name"":""moon"",""radius"":1737}]"
    "Mars",3389,"[{""name"":""phobos"",""radius"":11267},{""name"":""deimos"",""radius"":6.2}]"
    

    Example 2:

    {
      "id": "json2csv_default",
      "inputPath": "./planets.json",
      "outputPath": "./planets.csv",
      "options": {
        "fields": ["planet", "radius", "satellites.name", "satellites.radius"]
      },
      "transforms": {
        "unwind": { "paths": ["satellites"] }
      }
    }
    CSV Ouput
    "planet","radius","satellites.name","satellites.radius"
    "Earth",6371,"moon",1737
    "Mars",3389,"phobos",11267
    "Mars",3389,"deimos",6.2
    

    Full params example:

    {
      "id": "json2csv_default",
      "inputPath": "./input.json",
      "input": "@GV(MY_JSON)",
      "outputPath": "./output.csv",
      "options": {
        "fields": ["field1", "field2", "field3"],
        "defaultValue": "NULL",
        "header": true,
        "escapedQuote": "",
        "delimiter": ";",
        "eol": "\r\n",
        "excelStrings": true,
        "includeEmptyRows": true,
        "withBOM": true
      },
      "transforms": {
        "unwind": { "paths": ["items", "items.items"], "blankOut": true },
        "flatten": { "objects": true, "arrays": true, "separator": "_" }
      }
    }

    Params

    Options

    Option Description
    fields List of fields to process. Defaults to field auto-detection.
    defaultValue Default value to use for missing fields.
    quote Character(s) to use as quote mark. Defaults to '"'.
    delimiter Character(s) to use as delimiter. Defaults to ','. (default: ",")
    escapedQuote Character(s) to use as a escaped quote. Defaults to a double quote, '""'.
    eol Character(s) to use as End-of-Line for separating rows. Defaults to '\n'. (default: "\n")
    excelStrings Wraps string data to force Excel to interpret it as string even if it contains a number.
    header Boolean to Enable/Disable the column name header. (Enabled by defaults)
    includeEmptyRows Boolean to Includes empty rows in the resulting CSV output.
    withBOM Boolean to Includes BOM character at the beginning of the CSV.

    Transforms

    Option Description
    unwind Creates multiple rows from a single JSON document similar to MongoDB unwind.
    - paths Unwind fields path.
    - blankOut When unwinding, blank out instead of repeating data. Defaults to false. (default: false)
    flatten Nested javascript objects into a single level object.
    - object Flatten nested objects. Defaults to false. (default: false)
    - arrays Flatten nested arrays. Defaults to false. (default: false)
    - separator Flattened keys separator. Defaults to '.'. (default: ".")

    More information:

    This executor is a wrapper of the module json2csv (zemirco), for more information consult the website of the json2csv.

    Install

    npm i @runnerty/executor-json2csv

    DownloadsWeekly Downloads

    3

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    13.1 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar