Po.et JS is an small library that provides methods to easily create and sign Po.et Claims.
npm i @po.et/poet-js
The main function you'll be using is createClaim
:
import { Claim, ClaimType, createClaim } from '@po.et/poet-js'
const workAttributes = {
name: 'The Raven',
author: 'Edgar Allan Poe',
tags: 'poem',
dateCreated: '',
datePublished: '1845-01-29T03:00:00.000Z',
content: 'Once upon a midnight dreary...'
}
const privateKey = ''
const claim = createClaim(
privateKey,
ClaimType.Work,
workAttributes
)
Once this claim is created, you can publish it to a Po.et Node:
const response = await fetch(poetNodeUrl + '/works/', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(claim)
})
Notice you don't need to wait for the server's response to know the claim's Id. You don't even need to publish it! claim.id
is readily available right after calling createClaim
.
Run npm run build
to compile the source. This will run TypeScript on the source files and place the output in dist/ts
, and then it'll run Babel and place the output in dist/babel
.
Currently, we're only using Babel to support absolute import paths in the unit tests.
Absolute paths are only used in the tests. This is due to how Typescript and Babel process absolute paths: on build, Typescript transforms the .ts files into .js and places type definitions in .d.ts files. Babel, with the module-resolver plugin, will then transform the absolute paths in these .js files into relative paths, but will leave the .d.ts unchanged — which still have absolute paths. This causes issues with clients of the library that want to use these typescript definitions.
Run all tests with npm test
.
Coverage is generated with Istanbul whenever tests are run.
A more complete report can be generated by running npm run coverage
.
This area needs some reviewing — the reports look a bit off sometimes.
Also, we'll want the Travis job to check that coverage doesn't go down with pull requests.
The master branch is blocked - no one can commit to it directly. To contribute changes, branch off from master and make a PR back to it.
TravisCI will run all tests automatically for all pull requests submitted.
Please run npm run lint
. The linting configuration still needs some tweaking, and it'll be added to Travis in the future.