Skip to content

Commit 137a2a5

Browse files
docs(api): first pass
1 parent ca8a353 commit 137a2a5

File tree

6 files changed

+48
-21
lines changed

6 files changed

+48
-21
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ build
3131
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
3232
node_modules
3333

34-
lib
3534
dist
35+
docs

.npmignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,4 @@ build
3232
node_modules
3333

3434
test
35+
docs

README.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,6 @@ const multicodec = require('multicodec')
3434

3535
### API
3636

37-
#### `multicodec.addPrefix(<multicodecStrOrCode>, <data>)`
38-
39-
> Prefixes a buffer with a multicodec-packed
40-
41-
#### `multicodec.rmPrefix(<prefixedData>)`
42-
43-
> Decapsulate the multicodec-packed prefix from the data
44-
45-
#### `multicodec.getCodec(<prefixedData>)`
46-
47-
> Get the codec of the prefixedData
48-
4937
## [multicodec default table](https://github.com/multiformats/multicodec/blob/master/multicodec.md)
5038

5139
## Contribute

example.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
'use strict'
2+
3+
const multicodec = require('multicodec')
4+
5+
const prefixedProtobuf = multicodec.addPrefix('protobuf', new Buffer('some protobuf code'))
6+
7+
console.log(prefixedProtobuf)
8+
// => prefixedProtobuf 0x50...

package.json

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99
"test:node": "aegir-test node",
1010
"test:browser": "aegir-test browser",
1111
"build": "aegir-build",
12-
"release": "aegir-release",
13-
"release-minor": "aegir-release --type minor",
14-
"release-major": "aegir-release --type major",
12+
"docs": "aegir-docs",
13+
"release": "aegir-release --docs",
14+
"release-minor": "aegir-release --type minor --docs",
15+
"release-major": "aegir-release --type major --docs",
1516
"coverage": "aegir-coverage",
1617
"coverage-publish": "aegir-coverage publish"
1718
},
@@ -39,17 +40,17 @@
3940
},
4041
"homepage": "https://github.com/multiformats/js-multicodec-packed#readme",
4142
"dependencies": {
42-
"varint": "^4.0.1"
43+
"varint": "^5.0.0"
4344
},
4445
"devDependencies": {
45-
"aegir": "^9.1.2",
46+
"aegir": "^9.3.0",
4647
"chai": "^3.5.0",
47-
"pre-commit": "^1.1.3"
48+
"pre-commit": "^1.2.2"
4849
},
4950
"contributors": [
5051
"David Dias <[email protected]>",
5152
"Richard Littauer <[email protected]>",
5253
"kumavis <[email protected]>",
5354
"wanderer <[email protected]>"
5455
]
55-
}
56+
}

src/index.js

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,30 @@
1+
/**
2+
* Implementation of the multicodec specification.
3+
*
4+
* @module multicodec
5+
* @example
6+
* const multicodec = require('multicodec')
7+
*
8+
* const prefixedProtobuf = multicodec.addPrefix('protobuf', protobufBuffer)
9+
* // prefixedProtobuf 0x50...
10+
*
11+
*/
112
'use strict'
13+
214
const varint = require('varint')
315
const codecNameToCodeVarint = require('./varint-table')
416
const codeToCodecName = require('./name-table')
517
const util = require('./util')
618

719
exports = module.exports
820

21+
/**
22+
* Prefix a buffer with a multicodec-packed.
23+
*
24+
* @param {string|number} multicodecStrOrCode
25+
* @param {Buffer} data
26+
* @returns {Buffer}
27+
*/
928
exports.addPrefix = (multicodecStrOrCode, data) => {
1029
let prefix
1130

@@ -21,14 +40,24 @@ exports.addPrefix = (multicodecStrOrCode, data) => {
2140
return Buffer.concat([prefix, data])
2241
}
2342

43+
/**
44+
* Decapsulate the multicodec-packed prefix from the data.
45+
*
46+
* @param {Buffer} data
47+
* @returns {Buffer}
48+
*/
2449
exports.rmPrefix = (data) => {
2550
varint.decode(data)
2651
return data.slice(varint.decode.bytes)
2752
}
2853

54+
/**
55+
* Get the codec of the prefixed data.
56+
* @param {Buffer} prefixedData
57+
* @returns {string}
58+
*/
2959
exports.getCodec = (prefixedData) => {
3060
const code = util.varintBufferDecode(prefixedData)
3161
const codecName = codeToCodecName[code.toString('hex')]
3262
return codecName
3363
}
34-

0 commit comments

Comments
 (0)