Skip to content

Commit 8bb39e7

Browse files
committed
feat: add libp2p-webext-mdns discovery
License: MIT Signed-off-by: Alan Shaw <[email protected]>
1 parent 0a0b685 commit 8bb39e7

File tree

5 files changed

+51
-14
lines changed

5 files changed

+51
-14
lines changed

add-on/manifest.firefox-libdweb.json

+13
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,19 @@
1919
"paths": [["protocol"]],
2020
"script": "../node_modules/libdweb/src/protocol/host.js"
2121
}
22+
},
23+
"ServiceDiscovery": {
24+
"schema": "../node_modules/libdweb/src/ServiceDiscovery/ServiceDiscovery.json",
25+
"child": {
26+
"scopes": ["addon_child"],
27+
"paths": [["ServiceDiscovery"]],
28+
"script": "../node_modules/libdweb/src/ServiceDiscovery/client.js"
29+
},
30+
"parent": {
31+
"scopes": ["addon_parent"],
32+
"paths": [["ServiceDiscovery"]],
33+
"script": "../node_modules/libdweb/src/ServiceDiscovery/host.js"
34+
}
2235
}
2336
}
2437
}

add-on/src/background/background.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
'use strict'
22
/* eslint-env browser, webextensions */
33

4+
chrome.storage.local.debug = 'libp2p:webext-mdns*'
5+
46
const createIpfsCompanion = require('../lib/ipfs-companion')
57

68
// init add-on after all libs are loaded

add-on/src/lib/ipfs-client/embedded.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
11
'use strict'
22

33
const Ipfs = require('ipfs')
4+
const WebExtMdns = require('libp2p-webext-mdns')
45
const { optionDefaults } = require('../options')
56

67
let node = null
78

89
exports.init = function init (opts) {
910
console.log('[ipfs-companion] Embedded ipfs init')
1011

11-
node = new Ipfs(
12-
JSON.parse(opts.ipfsNodeConfig || optionDefaults.ipfsNodeConfig)
12+
const ipfsOpts = Object.assign(
13+
JSON.parse(opts.ipfsNodeConfig || optionDefaults.ipfsNodeConfig),
14+
{
15+
libp2p: {
16+
modules: {
17+
peerDiscovery: [WebExtMdns]
18+
}
19+
}
20+
}
1321
)
1422

23+
node = new Ipfs(ipfsOpts)
24+
1525
if (node.isOnline()) {
1626
return Promise.resolve(node)
1727
}

package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
"cross-env": "5.2.0",
7777
"fakefile": "0.0.9",
7878
"fs-promise": "2.0.3",
79-
"get-firefox": "2.1.1",
79+
"get-firefox": "2.2.0",
8080
"husky": "0.14.3",
8181
"ignore-styles": "5.0.1",
8282
"json": "9.0.6",
@@ -115,7 +115,8 @@
115115
"is-ipfs": "0.4.2",
116116
"is-stream": "1.1.0",
117117
"is-svg": "3.0.0",
118-
"libdweb": "mozilla/libdweb.git#fbff435b33542b02bc35c0bb8c27bc203e6d4e6e",
118+
"libdweb": "mozilla/libdweb.git#1ee7977a2352950ecf7fa46a13ae45aa500c9b32",
119+
"libp2p-webext-mdns": "github:alanshaw/js-libp2p-webext-mdns#661e03745450c3303e4fa0c2600c28dd0a4a3ba5",
119120
"lru_map": "0.3.3",
120121
"mime-types": "2.1.18",
121122
"p-queue": "2.4.2",

yarn.lock

+21-10
Original file line numberDiff line numberDiff line change
@@ -4249,19 +4249,20 @@ get-caller-file@^1.0.1:
42494249
version "1.0.3"
42504250
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
42514251

4252-
get-firefox@2.1.1:
4253-
version "2.1.1"
4254-
resolved "https://registry.yarnpkg.com/get-firefox/-/get-firefox-2.1.1.tgz#1dbafe1e357fb292e816d4c64b6fc7a5153bf7a7"
4252+
get-firefox@2.2.0:
4253+
version "2.2.0"
4254+
resolved "https://registry.yarnpkg.com/get-firefox/-/get-firefox-2.2.0.tgz#7ea8fc874bb952295de33705aea21db14ce2a55e"
42554255
dependencies:
42564256
chalk "^2.4.1"
42574257
decompress "^4.2.0"
4258+
is-ci "^1.1.0"
42584259
listr "^0.14.0"
42594260
meow "^5.0.0"
42604261
moz-download-url "^2.0.0"
4261-
node-fetch "^2.1.2"
4262+
node-fetch "^2.2.0"
42624263
sha "^2.0.1"
42634264
stream-to-promise "^2.2.0"
4264-
taskcluster-client "^11.0.0"
4265+
taskcluster-client "^11.0.3"
42654266

42664267
get-folder-size@^2.0.0:
42674268
version "2.0.0"
@@ -5497,7 +5498,7 @@ is-callable@^1.1.1, is-callable@^1.1.3:
54975498
version "1.1.4"
54985499
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
54995500

5500-
is-ci@^1.0.10:
5501+
is-ci@^1.0.10, is-ci@^1.1.0:
55015502
version "1.1.0"
55025503
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5"
55035504
dependencies:
@@ -6255,9 +6256,9 @@ levn@^0.3.0, levn@~0.3.0:
62556256
prelude-ls "~1.1.2"
62566257
type-check "~0.3.2"
62576258

6258-
libdweb@mozilla/libdweb.git#fbff435b33542b02bc35c0bb8c27bc203e6d4e6e:
6259+
libdweb@mozilla/libdweb.git#1ee7977a2352950ecf7fa46a13ae45aa500c9b32:
62596260
version "0.0.0"
6260-
resolved "https://codeload.github.com/mozilla/libdweb/tar.gz/fbff435b33542b02bc35c0bb8c27bc203e6d4e6e"
6261+
resolved "https://codeload.github.com/mozilla/libdweb/tar.gz/1ee7977a2352950ecf7fa46a13ae45aa500c9b32"
62616262

62626263
libp2p-bootstrap@~0.9.3:
62636264
version "0.9.3"
@@ -6506,6 +6507,16 @@ libp2p-tcp@~0.12.0:
65066507
once "^1.4.0"
65076508
stream-to-pull-stream "^1.7.2"
65086509

6510+
"libp2p-webext-mdns@github:alanshaw/js-libp2p-webext-mdns#661e03745450c3303e4fa0c2600c28dd0a4a3ba5":
6511+
version "0.1.0"
6512+
resolved "https://codeload.github.com/alanshaw/js-libp2p-webext-mdns/tar.gz/661e03745450c3303e4fa0c2600c28dd0a4a3ba5"
6513+
dependencies:
6514+
async "^2.6.1"
6515+
libp2p-tcp "~0.12.0"
6516+
multiaddr "^5.0.0"
6517+
peer-id "~0.11.0"
6518+
peer-info "~0.14.1"
6519+
65096520
libp2p-webrtc-star@~0.15.3:
65106521
version "0.15.3"
65116522
resolved "https://registry.yarnpkg.com/libp2p-webrtc-star/-/libp2p-webrtc-star-0.15.3.tgz#370b09c2871a12dadc44ed66dfd31060af671b52"
@@ -7718,7 +7729,7 @@ node-abi@^2.2.0:
77187729
dependencies:
77197730
semver "^5.4.1"
77207731

7721-
node-fetch@^2.1.2:
7732+
node-fetch@^2.2.0:
77227733
version "2.2.0"
77237734
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.2.0.tgz#4ee79bde909262f9775f731e3656d0db55ced5b5"
77247735

@@ -10518,7 +10529,7 @@ tar@^4:
1051810529
safe-buffer "^5.1.2"
1051910530
yallist "^3.0.2"
1052010531

10521-
taskcluster-client@^11.0.0:
10532+
taskcluster-client@^11.0.3:
1052210533
version "11.0.3"
1052310534
resolved "https://registry.yarnpkg.com/taskcluster-client/-/taskcluster-client-11.0.3.tgz#f71fd2d75dc4912ecc6c69fc56994eae088265aa"
1052410535
dependencies:

0 commit comments

Comments
 (0)