diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..c13c5f6 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015"] +} diff --git a/.gitignore b/.gitignore index e5f6ecd..595d3f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ docs node_modules +# Compiled lib directory +lib +# Bundles created by Webpack +dist diff --git a/package.json b/package.json index f571553..3534a8a 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,13 @@ "test": "test" }, "scripts": { + "babel": "babel src -d lib", + "build": "npm run clean && npm run babel", + "clean": "rm -rf dist/* && rm -rf lib/*", + "webpack": "webpack --progress --colors --optimize-minimize --optimize-occurrence-order --optimize-dedupe", + "dist": "npm run build && npm run webpack", + "postinstall": "npm run build", + "prepublish": "npm run build && npm run webpack", "test": "mocha test -w", "karma": "karma start", "jsdoc": "jsdoc -c jsdoc.json -r" @@ -34,13 +41,18 @@ }, "homepage": "https://github.com/anvilresearch/jose#README", "dependencies": { + "babel-cli": "^6.16.0", + "babel-preset-es2015": "^6.16.0", "base64url": "^1.0.6", "json-document": "0.0.0", "pem-jwk": "^1.5.1", "qs": "^6.2.0", - "text-encoding": "^0.6.1" + "text-encoding": "^0.6.1", + "webcrypto": "^0.1.0" }, "devDependencies": { + "babel-core": "^6.17.0", + "babel-loader": "^6.2.5", "chai": "^3.5.0", "karma": "^1.1.2", "karma-chrome-launcher": "^1.0.1", diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..eaeddef --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,17 @@ +var path = require('path') + +module.exports = { + entry: [ + './lib/index.js' + ], + output: { + path: path.join(__dirname, '/dist/'), + filename: 'jose.min.js', + library: 'JOSE', + libraryTarget: 'var' + }, + externals: { + webcrypto: 'crypto' + }, + devtool: 'source-map' +}