@viberlab/builders
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

#Builders

Json combine

Json validator

Installation

npm install --save-dev @viberlab/builders

Using

Add to configuration in angular.json: projects --> "project-name" --> architect

  "projects": {
    "project-name": {
      ...
      "architect": {
        "build": {
            ...
        },
        "serve": {
            ...
        },
        ...
        "json-combine": {
          "builder": "@viberlab/builders:json-combine",
          "options": {
            ...
          }
        }
      }
    },
    ...
  }

Run in console or build.sh:

ng run project-name:json-combine

ng run project-name:json-validator

Json combine

Json files combine builder

Options

  • targetPath (string) - path to the target directory (created, if not exists)

  • targetFilename (string, default: merged-json.json) - filename of the target file. Ignored, if 'groupByName' is true

  • targetFilenameTemplate (string) - template for the target merged json files, $n (e.g. $1, $2) is used for replacements. E.g. "lalala-$1-bebebe-$2-kokoko.json"

  • sourceList (array) - list of source files and directories. The item is string or object {source: string, filter: string}

  • filenameTemplate (regexp, optional) - filename template. For files that match this template only. E.g. "-en"

  • groupByFilename (boolean, default: true) - merges json files with the same name

  • deepSearch (boolean, default: true) - processes nested directories recursively

Example (angular.json)

  "projects": {
    "project-name": {
      ...
      "architect": {
        "build": {
            ...
        },
        "serve": {
            ...
        },
        ...
        "json-combine": {
          "builder": "@viberlab/builders:json-combine",
          "options": {
            "targetPath": "path/to/the/target",     
            "sourceList": [
              "first/source/directory",
              {
                source: "second/source/directory",
                filter: "^locale-([a-z]{2}(-[A-Z]{2})?)\.json$"
              }
              "some/file.json"
            ]
          }
        }
      }
    },
    ...
  }

Json validator

Json files validator builder

Options

  • checkList (array) - list of source files and directories

  • dryRun (boolean, default: false) - checks files only (without BOM removing)

  • verbose (boolean, default: false) - verbose output after the script run

Example (angular.json)

  "projects": {
    "project-name": {
      ...
      "architect": {
        "build": {
            ...
        },
        "serve": {
            ...
        },
        ...
        "json-validator": {
          "builder": "@viberlab/builders:json-validator",
          "options": {
            "checkList": [
              "first/source/directory",
              "some/file.json"
            ]
          }
        }
      }
    },
    ...
  }

Tests

tsc --build tsconfig.spec.json

jasmine-node --verbose ../dist/test/test/json-combine.spec.js

jasmine-node --verbose ../dist/test/test/json-validator.spec.js

Readme

Keywords

none

Package Sidebar

Install

npm i @viberlab/builders

Weekly Downloads

1

Version

1.0.1

License

Apache-2.0

Unpacked Size

40.5 kB

Total Files

17

Last publish

Collaborators

  • askelip
  • dmitrienco
  • aharonh
  • romang
  • tamarerlich