Skip to content
This repository was archived by the owner on Sep 30, 2023. It is now read-only.

Commit 699a573

Browse files
authored
Merge pull request #93 from orbitdb/esm
ES module update.
2 parents 6c0a51b + 4734d96 commit 699a573

21 files changed

+7136
-5781
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ The `Identity` object contains signatures proving possession of some external id
3737

3838
### Creating an identity
3939
```js
40-
const Identities = require('orbit-db-identity-provider')
40+
import Identities from 'orbit-db-identity-provider'
4141
const options = { id: 'local-id'}
4242
const identity = await Identities.createIdentity(options)
4343

@@ -64,9 +64,9 @@ const identity = await Identities.createIdentity({ id: 'local-id', keystore: exi
6464
#### Creating an identity with a DID
6565
Decentralized Identifiers (DID) is a common way to represent a digital identity. Below is an example using the `did:key` method (specifically [key-did-provider-ed25519](https://github.com/ceramicnetwork/key-did-provider-ed25519)).
6666
```js
67-
const { Ed25519Provider } = require('key-did-provider-ed25519')
68-
const { default: KeyResolver } = require('key-did-resolver')
69-
const Identities = require('orbit-db-identity-provider')
67+
import { Ed25519Provider } from 'key-did-provider-ed25519'
68+
import KeyResolver from 'key-did-resolver'
69+
import Identities from 'orbit-db-identity-provider'
7070
Identities.DIDIdentityProvider.setDIDResolver(KeyResolver.getResolver())
7171

7272
const seed = // 32 bytes of entropy (Uint8Array)
@@ -94,8 +94,8 @@ _Note: If you don't supply a `wallet`, a random one will be created for you._
9494
To create an identity using existing keys, you need to install `localstorage-level-migration`
9595

9696
```js
97-
const Identities = require('orbit-db-identity-provider')
98-
const migrate = require('localstorage-level-migration')
97+
import Identities from 'orbit-db-identity-provider'
98+
import migrate from 'localstorage-level-migration'
9999
const options = { id: 'new-id', migrate: migrate('/path/to/keys') }
100100
const identity = await Identities.createIdentity(options)
101101

conf/webpack.config.js

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,46 @@
1-
'use strict'
1+
import path from 'path'
2+
import webpack from 'webpack'
3+
import { fileURLToPath } from 'url'
24

3-
const path = require('path')
5+
export default (env, argv) => {
6+
const __filename = fileURLToPath(import.meta.url)
7+
const __dirname = path.dirname(__filename)
48

5-
module.exports = {
6-
entry: './index.js',
7-
output: {
8-
libraryTarget: 'var',
9-
library: 'Identities',
10-
filename: 'index-browser.min.js'
11-
},
12-
target: 'web',
13-
devtool: 'source-map',
14-
plugins: [
15-
],
16-
resolve: {
17-
modules: [
18-
'node_modules',
19-
path.resolve(__dirname, '../node_modules')
9+
return {
10+
mode: 'production',
11+
entry: './src/identities.js',
12+
output: {
13+
libraryTarget: 'var',
14+
library: 'Identities',
15+
filename: '../dist/orbit-db-identity-provider.min.js'
16+
},
17+
target: 'web',
18+
devtool: 'source-map',
19+
plugins: [
20+
new webpack.DefinePlugin({
21+
'process.env.NODE_ENV': JSON.stringify('production')
22+
})
2023
],
21-
fallback: {
22-
assert: require.resolve('assert'),
23-
path: require.resolve('path-browserify'),
24-
stream: require.resolve('stream-browserify')
24+
resolve: {
25+
modules: [
26+
'node_modules'
27+
],
28+
alias: {
29+
leveldown: 'level-js'
30+
},
31+
fallback: {
32+
assert: require.resolve('assert'),
33+
path: require.resolve('path-browserify'),
34+
stream: require.resolve('stream-browserify')
35+
}
36+
},
37+
resolveLoader: {
38+
modules: [
39+
'node_modules',
40+
path.resolve(__dirname, '../node_modules')
41+
],
42+
extensions: ['.js', '.json'],
43+
mainFields: ['loader', 'main']
2544
}
26-
},
27-
resolveLoader: {
28-
modules: [
29-
'node_modules',
30-
path.resolve(__dirname, '../node_modules')
31-
]
3245
}
3346
}

conf/webpack.tests.config.js

Lines changed: 60 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,66 @@
1-
'use strict'
1+
import glob from 'glob'
2+
import webpack from 'webpack'
3+
import { createRequire } from 'module'
24

3-
const glob = require('glob')
4-
const webpack = require('webpack')
5-
const path = require('path')
6-
7-
module.exports = {
8-
// TODO: put all tests in a .js file that webpack can use as entry point
9-
entry: glob.sync('./test/*.spec.js'),
10-
output: {
11-
filename: '../test/browser/bundle.js'
12-
},
13-
target: 'web',
14-
devtool: 'source-map',
15-
plugins: [
16-
new webpack.DefinePlugin({
17-
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
18-
}),
19-
new webpack.ProvidePlugin({
20-
Buffer: ['buffer', 'Buffer'],
21-
process: 'process/browser'
22-
}),
23-
new webpack.IgnorePlugin(/mongo|redis/)
24-
],
25-
externals: {
26-
bindings: '{}',
27-
leveldown: '{}',
28-
fs: '{}',
29-
fatfs: '{}',
30-
runtimejs: '{}',
31-
rimraf: '{ sync: () => {} }',
32-
'graceful-fs': '{}',
33-
'fs-extra': '{ copy: () => {} }',
34-
'fs.realpath': '{}'
35-
// dns: '{}',
36-
// "node-gyp-build": '{}'
37-
},
38-
resolve: {
39-
modules: [
40-
'node_modules',
41-
path.resolve(__dirname, '../node_modules')
5+
export default (env, argv) => {
6+
const require = createRequire(import.meta.url)
7+
return {
8+
// TODO: put all tests in a .js file that webpack can use as entry point
9+
entry: glob.sync('./test/*.spec.js'),
10+
output: {
11+
filename: '../test/browser/bundle.js'
12+
},
13+
target: 'web',
14+
mode: 'production',
15+
devtool: 'source-map',
16+
plugins: [
17+
new webpack.ProvidePlugin({
18+
process: 'process/browser',
19+
Buffer: ['buffer', 'Buffer']
20+
})
4221
],
43-
fallback: {
44-
assert: require.resolve('assert'),
45-
path: require.resolve('path-browserify'),
46-
stream: require.resolve('stream-browserify')
47-
}
48-
},
49-
resolveLoader: {
50-
modules: [
51-
'node_modules',
52-
path.resolve(__dirname, '../node_modules')
53-
]
54-
},
55-
module: {
56-
rules: [
57-
{
58-
test: /\.js$/,
59-
exclude: /node_modules/,
60-
use: {
61-
loader: 'babel-loader',
62-
options: {
63-
presets: [
64-
['@babel/preset-env', { modules: false }]
65-
],
66-
plugins: ['@babel/syntax-object-rest-spread', '@babel/transform-runtime', '@babel/plugin-transform-modules-commonjs']
22+
externals: {
23+
bindings: '{}',
24+
leveldown: '{}',
25+
fs: '{}',
26+
fatfs: '{}',
27+
runtimejs: '{}',
28+
rimraf: '{ sync: () => {} }',
29+
'graceful-fs': '{}',
30+
'fs-extra': '{ copy: () => {} }',
31+
'fs.realpath': '{}'
32+
// dns: '{}',
33+
// "node-gyp-build": '{}'
34+
},
35+
experiments: {
36+
topLevelAwait: true
37+
},
38+
resolve: {
39+
modules: [
40+
'node_modules'
41+
],
42+
fallback: {
43+
buffer: require.resolve('buffer/'),
44+
events: require.resolve('events/'),
45+
assert: require.resolve('assert'),
46+
path: require.resolve('path-browserify'),
47+
stream: require.resolve('stream-browserify')
48+
}
49+
},
50+
module: {
51+
rules: [
52+
{
53+
test: /\.m?js$/,
54+
exclude: /node_modules/,
55+
use: {
56+
loader: 'babel-loader',
57+
options: {
58+
presets: ['@babel/preset-env'],
59+
plugins: ['@babel/plugin-syntax-import-assertions']
60+
}
6761
}
6862
}
69-
},
70-
{
71-
test: /existing|QmPhnEjVkYE1Ym7F5MkRUfkD6NtuSptE7ugu1Ggr149W2X|0260baeaffa1de1e4135e5b395e0380563a622b9599d1b8e012a0f7603f516bdaa$/,
72-
loader: 'json-loader'
73-
}
74-
]
63+
]
64+
}
7565
}
7666
}

index.js

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)