diff --git a/lib/index.js b/lib/index.js index 323213c..197bad1 100644 --- a/lib/index.js +++ b/lib/index.js @@ -169,7 +169,7 @@ module.exports = { /** * @param {CreateOpts} opts - * @param {CB} cb + * @param {CB<{uri: string, url: string}>} cb */ async function create(opts, cb) { if (typeof opts !== 'object') { @@ -223,7 +223,8 @@ module.exports = { const followCommand = `follow/${opts.id}` const promiseCommand = `promise.follow/identity.${opts.id}/${token}` const uri = `ppppp://invite/${joinCommand}/${followCommand}/${promiseCommand}` - cb(null, uri) + const url = `http://${host}/invite#${encodeURIComponent(uri)}` + cb(null, {uri, url}) } return { create, parse } diff --git a/package.json b/package.json index 36b8e3b..f8b6773 100644 --- a/package.json +++ b/package.json @@ -43,13 +43,13 @@ "scripts": { "build": "tsc", "test": "node --test", - "format-code": "prettier --write \"*.js\" \"(test|lib)/*.js\"", - "format-code-staged": "pretty-quick --staged --pattern \"*.js\" --pattern \"(test|lib)/*.js\"", + "format-code": "prettier --write \"(test|lib)/**/*.js\"", + "format-code-staged": "pretty-quick --staged --pattern \"(test|lib)/**/*.js\"", "coverage": "c8 --reporter=lcov npm run test" }, "husky": { "hooks": { - "pre-commit": "pretty-quick --staged" + "pre-commit": "npm run format-code-staged" } } } diff --git a/test/create.test.js b/test/create.test.js index 0aea254..35c2069 100644 --- a/test/create.test.js +++ b/test/create.test.js @@ -74,8 +74,8 @@ test('create()', async (t) => { }, }) - const uri = await p(stack.invite.create)({ - type: "follow", + const { uri, url } = await p(stack.invite.create)({ + type: 'follow', _hubMsAddr: 'net:example.com:8008~shse:HUB_PUBKEY', id: 'MOCK_ID', }) @@ -83,6 +83,10 @@ test('create()', async (t) => { uri, `ppppp://invite/join/example.com/8008/HUB_PUBKEY/MOCK_TOKEN/follow/MOCK_ID/promise.follow/identity.MOCK_ID/MOCK_PROMISE` ) + assert.equal( + url, + `http://example.com/invite#ppppp%3A%2F%2Finvite%2Fjoin%2Fexample.com%2F8008%2FHUB_PUBKEY%2FMOCK_TOKEN%2Ffollow%2FMOCK_ID%2Fpromise.follow%2Fidentity.MOCK_ID%2FMOCK_PROMISE` + ) assert.ok(connectCalled) assert.ok(createTokenCalled)