@condenast/flyway-schema-validator

A joi schema validator for flyways types

Stats

StarsIssuesVersionUpdatedCreatedSize
@condenast/flyway-schema-validator
12.2.24 days ago4 years agoMinified + gzip package size for @condenast/flyway-schema-validator in KB

Readme

Flyway schema validator

Does what it says on the tin.

See https://condenast.github.io/flyway-api-docs/.

Installation

To use as a node.js module, make sure you're in your project source and run:

npm i --save @condenast/flyway-schema-validator

To use as a command line module, install globally with the following command:

npm i -g @condenast/flyway-schema-validator

Example Javascript Usage

const validator = require('@condenast/flyway-schema-validator');

const isValid = validator(someFlywayAPIObject);

try {
  // invalid
  const invalidThrows = validator({ invalid: true });
} catch (err) {
  // error describes the validation issues.
}

Example Command Line Usage

*nix Piping:

cat someObj.json | flyway-schema-validator

Reading from a file directly:

flyway-schema-validator -f ./someObj.json

Publishing Updates

To publish updates, you must bump the version number using npm version major|minor|patch, and push the generated commit and tag to github.

CI will detect a new tag push and automatically build and publish it.

Generally the workflow after merging a PR should be

git checkout master
git pull
npm version patch|minor|major|v11.x.x # <--- this also generates a git commit and tags it based on the new version
git push origin master # push that commit to master
git push origin --tags

CI will now pickup and build your changes.

NOTE: we use a new branch that tracks origin master so if you have accidentally commited to master locally, that doesn't get published without any PR. If you're confident that your master matches origin EXACTLY feel free to do this on your local master branch.

License

MIT.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.