diff --git a/package.json b/package.json index 4b305550a..f0e63ebf9 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "browser-process-platform": "~0.1.1", "cross-env": "^6.0.0", "go-ipfs-dep": "^0.4.22", - "interface-ipfs-core": "^0.120.0", + "interface-ipfs-core": "^0.121.0", "ipfsd-ctl": "^0.47.1", "nock": "^11.4.0", "stream-equal": "^1.1.1" diff --git a/src/name/index.js b/src/name/index.js index 8f823311a..7a6837b82 100644 --- a/src/name/index.js +++ b/src/name/index.js @@ -1,13 +1,9 @@ 'use strict' -const moduleConfig = require('../utils/module-config') +const callbackify = require('callbackify') -module.exports = (arg) => { - const send = moduleConfig(arg) - - return { - publish: require('./publish')(send), - resolve: require('./resolve')(send), - pubsub: require('./pubsub')(send) - } -} +module.exports = config => ({ + publish: callbackify.variadic(require('./publish')(config)), + resolve: callbackify.variadic(require('./resolve')(config)), + pubsub: require('./pubsub')(config) +}) diff --git a/src/name/publish.js b/src/name/publish.js index cfc7482e3..e470606f9 100644 --- a/src/name/publish.js +++ b/src/name/publish.js @@ -1,25 +1,28 @@ 'use strict' -const promisify = require('promisify-es6') +const configure = require('../lib/configure') +const toCamel = require('../lib/object-to-camel') -const transform = function (res, callback) { - callback(null, { - name: res.Name, - value: res.Value - }) -} +module.exports = configure(({ ky }) => { + return async (path, options) => { + options = options || {} -module.exports = (send) => { - return promisify((args, opts, callback) => { - if (typeof (opts) === 'function') { - callback = opts - opts = {} - } + const searchParams = new URLSearchParams(options.searchParams) + searchParams.set('arg', path) + if (options.allowOffline != null) searchParams.set('allow-offline', options.allowOffline) + if (options.key) searchParams.set('key', options.key) + if (options.lifetime) searchParams.set('lifetime', options.lifetime) + if (options.quieter != null) searchParams.set('quieter', options.quieter) + if (options.resolve != null) searchParams.set('resolve', options.resolve) + if (options.ttl) searchParams.set('ttl', options.ttl) - send.andTransform({ - path: 'name/publish', - args: args, - qs: opts - }, transform, callback) - }) -} + const res = await ky.post('name/publish', { + timeout: options.timeout, + signal: options.signal, + headers: options.headers, + searchParams + }).json() + + return toCamel(res) + } +}) diff --git a/src/name/pubsub/cancel.js b/src/name/pubsub/cancel.js index 32dbbb3af..ea5391e64 100644 --- a/src/name/pubsub/cancel.js +++ b/src/name/pubsub/cancel.js @@ -1,24 +1,22 @@ 'use strict' -const promisify = require('promisify-es6') +const configure = require('../../lib/configure') +const toCamel = require('../../lib/object-to-camel') -const transform = function (res, callback) { - callback(null, { - canceled: res.Canceled === undefined || res.Canceled === true - }) -} +module.exports = configure(({ ky }) => { + return async (name, options) => { + options = options || {} -module.exports = (send) => { - return promisify((args, opts, callback) => { - if (typeof (opts) === 'function') { - callback = opts - opts = {} - } + const searchParams = new URLSearchParams(options.searchParams) + searchParams.set('arg', name) - send.andTransform({ - path: 'name/pubsub/cancel', - args: args, - qs: opts - }, transform, callback) - }) -} + const res = await ky.post('name/pubsub/cancel', { + timeout: options.timeout, + signal: options.signal, + headers: options.headers, + searchParams + }).json() + + return toCamel(res) + } +}) diff --git a/src/name/pubsub/index.js b/src/name/pubsub/index.js index aefc0f880..70db19874 100644 --- a/src/name/pubsub/index.js +++ b/src/name/pubsub/index.js @@ -1,7 +1,9 @@ 'use strict' -module.exports = (send) => ({ - cancel: require('./cancel')(send), - state: require('./state')(send), - subs: require('./subs')(send) +const callbackify = require('callbackify') + +module.exports = config => ({ + cancel: callbackify.variadic(require('./cancel')(config)), + state: callbackify.variadic(require('./state')(config)), + subs: callbackify.variadic(require('./subs')(config)) }) diff --git a/src/name/pubsub/state.js b/src/name/pubsub/state.js index cc9b0b369..03e18aa7f 100644 --- a/src/name/pubsub/state.js +++ b/src/name/pubsub/state.js @@ -1,23 +1,19 @@ 'use strict' -const promisify = require('promisify-es6') +const configure = require('../../lib/configure') +const toCamel = require('../../lib/object-to-camel') -const transform = function (res, callback) { - callback(null, { - enabled: res.Enabled - }) -} +module.exports = configure(({ ky }) => { + return async options => { + options = options || {} -module.exports = (send) => { - return promisify((opts, callback) => { - if (typeof (opts) === 'function') { - callback = opts - opts = {} - } + const res = await ky.post('name/pubsub/state', { + timeout: options.timeout, + signal: options.signal, + headers: options.headers, + searchParams: options.searchParams + }).json() - send.andTransform({ - path: 'name/pubsub/state', - qs: opts - }, transform, callback) - }) -} + return toCamel(res) + } +}) diff --git a/src/name/pubsub/subs.js b/src/name/pubsub/subs.js index 3a3a54c2a..f267183a0 100644 --- a/src/name/pubsub/subs.js +++ b/src/name/pubsub/subs.js @@ -1,21 +1,18 @@ 'use strict' -const promisify = require('promisify-es6') +const configure = require('../../lib/configure') -const transform = function (res, callback) { - callback(null, res.Strings || []) -} +module.exports = configure(({ ky }) => { + return async (name, options) => { + options = options || {} -module.exports = (send) => { - return promisify((opts, callback) => { - if (typeof (opts) === 'function') { - callback = opts - opts = {} - } + const res = await ky.get('name/pubsub/subs', { + timeout: options.timeout, + signal: options.signal, + headers: options.headers, + searchParams: options.searchParams + }).json() - send.andTransform({ - path: 'name/pubsub/subs', - qs: opts - }, transform, callback) - }) -} + return res.Strings || [] + } +}) diff --git a/src/name/resolve.js b/src/name/resolve.js index addb567d6..b6e8db47e 100644 --- a/src/name/resolve.js +++ b/src/name/resolve.js @@ -1,22 +1,25 @@ 'use strict' -const promisify = require('promisify-es6') +const configure = require('../lib/configure') -const transform = function (res, callback) { - callback(null, res.Path) -} +module.exports = configure(({ ky }) => { + return async (path, options) => { + options = options || {} -module.exports = (send) => { - return promisify((args, opts, callback) => { - if (typeof (opts) === 'function') { - callback = opts - opts = {} - } + const searchParams = new URLSearchParams(options.searchParams) + searchParams.set('arg', path) + if (options.dhtRecordCount != null) searchParams.set('dht-record-count', options.dhtRecordCount) + if (options.dhtTimeout != null) searchParams.set('dht-timeout', options.dhtTimeout) + if (options.noCache != null) searchParams.set('nocache', options.noCache) + if (options.recursive != null) searchParams.set('recursive', options.recursive) - send.andTransform({ - path: 'name/resolve', - args: args, - qs: opts - }, transform, callback) - }) -} + const res = await ky.post('name/resolve', { + timeout: options.timeout, + signal: options.signal, + headers: options.headers, + searchParams + }).json() + + return res.Path + } +}) diff --git a/src/utils/load-commands.js b/src/utils/load-commands.js index a4a6dcd07..1ff8d4fb0 100644 --- a/src/utils/load-commands.js +++ b/src/utils/load-commands.js @@ -116,6 +116,7 @@ function requireCommands (send, config) { dht: require('../dht')(config), diag: require('../diag')(config), files: require('../files')(config), + name: require('../name')(config), pin: require('../pin')(config) } @@ -128,7 +129,6 @@ function requireCommands (send, config) { const subCmds = { // Network - name: require('../name'), ping: require('../ping'), pingReadableStream: require('../ping-readable-stream'), pingPullStream: require('../ping-pull-stream'),