A joi schema validator for flyways types

Usage no npm install needed!

<script type="module">
  import condenastFlywaySchemaValidator from 'https://cdn.skypack.dev/@condenast/flyway-schema-validator';


Flyway schema validator

Does what it says on the tin.

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


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.