@stratumn/postgraphile-plugin-hashid

PostGraphile plugin to replace database big int by hash ids

Usage no npm install needed!

<script type="module">
  import stratumnPostgraphilePluginHashid from 'https://cdn.skypack.dev/@stratumn/postgraphile-plugin-hashid';
</script>

README

Build Status codecov

postgraphile-plugin-hashid

This PostGraphile plugin replaces database big int by hash ids

By default all Bigint are replaced by HashId. You can avoid this behaviour for a column, input, function argument, ... using the tag doNotUseHashId

Examples:

comment on column foo.user_id is E'@doNotUseHashId\nThe user id type will be BigInt.';
comment on function edit_foo is E'@doNotUseHashId userId\nOnly BigInt argument userId will not be transformed.';
export default gql`
  extend type Foo {
    """
    @doNotUseHashId
    anotherUserId type will be BigInt.
    """
    anotherUserId: BigInt!
  }
`;

Install

To install node dependencies:

yarn

Development

This command builds the library:

yarn build

Tests

This command runs the unit tests:

yarn test

Release process

We are using semantic-release to publish the package on the NPM registry. Publishing can be triggered by "promoting" a successful build on master from Semaphore UI.

The commit message summary should follow the following format: Tag: Message (fixes #1234)

Where Tag is one of the following:

  • Fix - for a bug fix (patch).
  • Update - for a backwards-compatible enhancement (minor).
  • New - implemented a new feature (minor).
  • Breaking - for a backwards-incompatible enhancement (major).
  • Docs - changes to documentation only.
  • Build - changes to build process only.
  • Upgrade - for a dependency upgrade.

Rules about Message

  • The message summary should be a one-sentence description of the change.
  • First letter of the message should be uppercase.
  • The issue number should be mentioned at the end.
    • The commit message should say "(fixes #1234)" at the end of the description if it closes out an existing issue (replace 1234 with the issue number).
    • If the commit doesn't completely fix the issue, then use (refs #1234) instead of (fixes #1234).

Here are some good commit message summary examples:

Build: Update Semaphore to only test Node 0.10 (refs #734)
Fix: Semi rule incorrectly flagging extra semicolon (fixes #840)
Upgrade: Express to 13.4.2, switch to using Express comment attachment (fixes #730)