Skip to content

Commit

Permalink
feat: consolidate types (#10)
Browse files Browse the repository at this point in the history
* feat: consolidate types

* chore: fix lint errors
  • Loading branch information
SgtPooki committed Sep 6, 2022
1 parent 75b8fca commit c90233a
Show file tree
Hide file tree
Showing 136 changed files with 304 additions and 781 deletions.
19 changes: 19 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

{
"extends": [
"ipfs"
],
"env": {
"es2021": true,
"node": true
},
"parserOptions": {
"sourceType": "module",
"project": "./tsconfig.json"
},
"rules": {
"no-return-await": "off",
"no-undef-init": "off",
"no-warning-comments": "off"
}
}
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "kubo-rpc-client",
"version": "1.0.0",
"version": "0.0.2",
"description": "A client library for the Kubo RPC API",
"license": "Apache-2.0 OR MIT",
"homepage": "https://github.com/ipfs/js-kubo-rpc-client#readme",
Expand Down Expand Up @@ -191,6 +191,7 @@
"@libp2p/interfaces": "^3.0.3",
"aegir": "^37.5.1",
"delay": "^5.0.0",
"eslint-config-ipfs": "^3.1.0",
"eslint-plugin-jsdoc": "^39.3.6",
"go-ipfs": "^0.12.1",
"ipfs-core-types": "^0.11.1",
Expand Down
20 changes: 6 additions & 14 deletions src/add-all.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,9 @@ import { multipartRequest } from 'ipfs-core-utils/multipart-request'
import { toUrlSearchParams } from './lib/to-url-search-params.js'
import { abortSignal } from './lib/abort-signal.js'

/**
* @typedef {import('ipfs-utils/src/types').ProgressFn} IPFSUtilsHttpUploadProgressFn
* @typedef {import('ipfs-core-types/src/root').AddProgressFn} IPFSCoreAddProgressFn
* @typedef {import('./types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/root').API<HTTPClientExtraOptions>} RootAPI
* @typedef {import('ipfs-core-types/src/root').AddResult} AddResult
*/

export const createAddAll = configure((api) => {
/**
* @type {RootAPI["addAll"]}
* @type {import('./types.js').RootAPI["addAll"]}
*/
async function * addAll (source, options = {}) {
// allow aborting requests on body errors
Expand Down Expand Up @@ -64,8 +56,8 @@ export const createAddAll = configure((api) => {
*
* @param {number} total
* @param {{name:string, start:number, end:number}[]|null} parts
* @param {IPFSCoreAddProgressFn} progress
* @returns {[IPFSCoreAddProgressFn|undefined, IPFSUtilsHttpUploadProgressFn|undefined]}
* @param {import('./types.js').IPFSCoreAddProgressFn} progress
* @returns {[import('./types.js').IPFSCoreAddProgressFn|undefined, import('./types.js').IPFSUtilsHttpUploadProgressFn|undefined]}
*/
const createProgressHandler = (total, parts, progress) =>
parts ? [undefined, createOnUploadProgress(total, parts, progress)] : [progress, undefined]
Expand All @@ -76,8 +68,8 @@ const createProgressHandler = (total, parts, progress) =>
*
* @param {number} size - actual content size
* @param {{name:string, start:number, end:number}[]} parts
* @param {IPFSCoreAddProgressFn} progress
* @returns {IPFSUtilsHttpUploadProgressFn}
* @param {import('./types.js').IPFSCoreAddProgressFn} progress
* @returns {import('./types.js').IPFSUtilsHttpUploadProgressFn}
*/
const createOnUploadProgress = (size, parts, progress) => {
let index = 0
Expand Down Expand Up @@ -111,7 +103,7 @@ const createOnUploadProgress = (size, parts, progress) => {
* @param {number} [input.mtimeNsecs]
*/
function toCoreInterface ({ name, hash, size, mode, mtime, mtimeNsecs }) {
/** @type {AddResult} */
/** @type {import('./types.js').AddResult} */
const output = {
path: name,
cid: CID.parse(hash),
Expand Down
7 changes: 1 addition & 6 deletions src/add.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,14 @@ import last from 'it-last'
import { configure } from './lib/configure.js'
import { normaliseInput } from 'ipfs-core-utils/files/normalise-input-single'

/**
* @typedef {import('./types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/root').API<HTTPClientExtraOptions>} RootAPI
*/

/**
* @param {import('./types').Options} options
*/
export function createAdd (options) {
const all = createAddAll(options)
return configure(() => {
/**
* @type {RootAPI["add"]}
* @type {import('./types').RootAPI["add"]}
*/
async function add (input, options = {}) {
// @ts-expect-error - last may return undefined if source is empty
Expand Down
7 changes: 1 addition & 6 deletions src/bitswap/stat.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,9 @@ import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'
import { peerIdFromString } from '@libp2p/peer-id'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/bitswap').API<HTTPClientExtraOptions>} BitswapAPI
*/

export const createStat = configure(api => {
/**
* @type {BitswapAPI["stat"]}
* @type {import('../types').BitswapAPI["stat"]}
*/
async function stat (options = {}) {
const res = await api.post('bitswap/stat', {
Expand Down
7 changes: 1 addition & 6 deletions src/bitswap/unwant.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/bitswap').API<HTTPClientExtraOptions>} BitswapAPI
*/

export const createUnwant = configure(api => {
/**
* @type {BitswapAPI["unwant"]}
* @type {import('../types').BitswapAPI["unwant"]}
*/
async function unwant (cid, options = {}) {
const res = await api.post('bitswap/unwant', {
Expand Down
7 changes: 1 addition & 6 deletions src/bitswap/wantlist-for-peer.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,9 @@ import { CID } from 'multiformats/cid'
import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/bitswap').API<HTTPClientExtraOptions>} BitswapAPI
*/

export const createWantlistForPeer = configure(api => {
/**
* @type {BitswapAPI["wantlistForPeer"]}
* @type {import('../types').BitswapAPI["wantlistForPeer"]}
*/
async function wantlistForPeer (peerId, options = {}) {
const res = await (await api.post('bitswap/wantlist', {
Expand Down
7 changes: 1 addition & 6 deletions src/bitswap/wantlist.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,9 @@ import { CID } from 'multiformats/cid'
import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/bitswap').API<HTTPClientExtraOptions>} BitswapAPI
*/

export const createWantlist = configure(api => {
/**
* @type {BitswapAPI["wantlist"]}
* @type {import('../types').BitswapAPI["wantlist"]}
*/
async function wantlist (options = {}) {
const res = await (await api.post('bitswap/wantlist', {
Expand Down
7 changes: 1 addition & 6 deletions src/block/get.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/block').API<HTTPClientExtraOptions>} BlockAPI
*/

export const createGet = configure(api => {
/**
* @type {BlockAPI["get"]}
* @type {import('../types').BlockAPI["get"]}
*/
async function get (cid, options = {}) {
const res = await api.post('block/get', {
Expand Down
9 changes: 2 additions & 7 deletions src/block/put.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,9 @@ import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'
import { abortSignal } from '../lib/abort-signal.js'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/block').API<HTTPClientExtraOptions>} BlockAPI
*/

export const createPut = configure(api => {
/**
* @type {BlockAPI["put"]}
* @type {import('../types').BlockAPI["put"]}
*/
async function put (data, options = {}) {
// allow aborting requests on body errors
Expand All @@ -21,7 +16,7 @@ export const createPut = configure(api => {
let res
try {
const response = await api.post('block/put', {
signal: signal,
signal,
searchParams: toUrlSearchParams(options),
...(
await multipartRequest([data], controller, options.headers)
Expand Down
10 changes: 2 additions & 8 deletions src/block/rm.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,9 @@ import { CID } from 'multiformats/cid'
import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/block').API<HTTPClientExtraOptions>} BlockAPI
* @typedef {import('ipfs-core-types/src/block').RmResult} RmResult
*/

export const createRm = configure(api => {
/**
* @type {BlockAPI["rm"]}
* @type {import('../types').BlockAPI["rm"]}
*/
async function * rm (cid, options = {}) {
if (!Array.isArray(cid)) {
Expand Down Expand Up @@ -39,7 +33,7 @@ export const createRm = configure(api => {
* @param {*} removed
*/
function toCoreInterface (removed) {
/** @type {RmResult} */
/** @type {import('../types').RmResult} */
const out = {
cid: CID.parse(removed.Hash)
}
Expand Down
7 changes: 1 addition & 6 deletions src/block/stat.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,9 @@ import { CID } from 'multiformats/cid'
import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/block').API<HTTPClientExtraOptions>} BlockAPI
*/

export const createStat = configure(api => {
/**
* @type {BlockAPI["stat"]}
* @type {import('../types').BlockAPI["stat"]}
*/
async function stat (cid, options = {}) {
const res = await api.post('block/stat', {
Expand Down
7 changes: 1 addition & 6 deletions src/bootstrap/add.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,9 @@ import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'
import { Multiaddr } from '@multiformats/multiaddr'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/bootstrap').API<HTTPClientExtraOptions>} BootstrapAPI
*/

export const createAdd = configure(api => {
/**
* @type {BootstrapAPI["add"]}
* @type {import('../types').BootstrapAPI["add"]}
*/
async function add (addr, options = {}) {
const res = await api.post('bootstrap/add', {
Expand Down
7 changes: 1 addition & 6 deletions src/bootstrap/clear.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,9 @@ import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'
import { Multiaddr } from '@multiformats/multiaddr'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/bootstrap').API<HTTPClientExtraOptions>} BootstrapAPI
*/

export const createClear = configure(api => {
/**
* @type {BootstrapAPI["clear"]}
* @type {import('../types').BootstrapAPI["clear"]}
*/
async function clear (options = {}) {
const res = await api.post('bootstrap/rm', {
Expand Down
7 changes: 1 addition & 6 deletions src/bootstrap/list.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,9 @@ import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'
import { Multiaddr } from '@multiformats/multiaddr'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/bootstrap').API<HTTPClientExtraOptions>} BootstrapAPI
*/

export const createList = configure(api => {
/**
* @type {BootstrapAPI["list"]}
* @type {import('../types').BootstrapAPI["list"]}
*/
async function list (options = {}) {
const res = await api.post('bootstrap/list', {
Expand Down
7 changes: 1 addition & 6 deletions src/bootstrap/reset.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,9 @@ import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'
import { Multiaddr } from '@multiformats/multiaddr'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/bootstrap').API<HTTPClientExtraOptions>} BootstrapAPI
*/

export const createReset = configure(api => {
/**
* @type {BootstrapAPI["reset"]}
* @type {import('../types.js').BootstrapAPI["reset"]}
*/
async function reset (options = {}) {
const res = await api.post('bootstrap/add', {
Expand Down
7 changes: 1 addition & 6 deletions src/bootstrap/rm.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,9 @@ import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'
import { Multiaddr } from '@multiformats/multiaddr'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/bootstrap').API<HTTPClientExtraOptions>} BootstrapAPI
*/

export const createRm = configure(api => {
/**
* @type {BootstrapAPI["rm"]}
* @type {import('../types').BootstrapAPI["rm"]}
*/
async function rm (addr, options = {}) {
const res = await api.post('bootstrap/rm', {
Expand Down
7 changes: 1 addition & 6 deletions src/cat.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import { configure } from './lib/configure.js'
import { toUrlSearchParams } from './lib/to-url-search-params.js'

/**
* @typedef {import('./types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/root').API<HTTPClientExtraOptions>} RootAPI
*/

export const createCat = configure(api => {
/**
* @type {RootAPI["cat"]}
* @type {import('./types').RootAPI["cat"]}
*/
async function * cat (path, options = {}) {
const res = await api.post('cat', {
Expand Down
7 changes: 1 addition & 6 deletions src/commands.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import { configure } from './lib/configure.js'
import { toUrlSearchParams } from './lib/to-url-search-params.js'

/**
* @typedef {import('./types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/root').API<HTTPClientExtraOptions>} RootAPI
*/

export const createCommands = configure(api => {
/**
* @type {RootAPI["commands"]}
* @type {import('./types').RootAPI["commands"]}
*/
const commands = async (options = {}) => {
const res = await api.post('commands', {
Expand Down
7 changes: 1 addition & 6 deletions src/config/get-all.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/config').API<HTTPClientExtraOptions>} ConfigAPI
*/

export const createGetAll = configure(api => {
/**
* @type {ConfigAPI["getAll"]}
* @type {import('../types.js').ConfigAPI["getAll"]}
*/
const getAll = async (options = {}) => {
const res = await api.post('config/show', {
Expand Down
7 changes: 1 addition & 6 deletions src/config/get.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import { configure } from '../lib/configure.js'
import { toUrlSearchParams } from '../lib/to-url-search-params.js'

/**
* @typedef {import('../types').HTTPClientExtraOptions} HTTPClientExtraOptions
* @typedef {import('ipfs-core-types/src/config').API<HTTPClientExtraOptions>} ConfigAPI
*/

export const createGet = configure(api => {
/**
* @type {ConfigAPI["get"]}
* @type {import('../types.js').ConfigAPI["get"]}
*/
const get = async (key, options = {}) => {
if (!key) {
Expand Down
Loading

0 comments on commit c90233a

Please sign in to comment.