Skip to content

Commit e931c95

Browse files
committed
fix: Don't get version from package.json on browser build
This change improves usability of this package with webpack, by not requiring people to use the json loader.
1 parent a8eb559 commit e931c95

File tree

6 files changed

+19
-14
lines changed

6 files changed

+19
-14
lines changed

browser.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// To understand why axios is vendored, check SETUP.md
2-
var axios = require('./vendor-node/axios')
3-
var contentful = require('./lib/contentful').default
2+
var axios = require('./vendor-browser/axios')
3+
var contentful = require('./dist/contentful').default
44
module.exports = {
55
createClient: function (params) {
66
return contentful(axios, params)

karma.base.conf.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,18 @@
33
// Use karma.conf.saucelabs.js for saucelabs tests
44

55
var _ = require('lodash')
6-
var webpack = _.cloneDeep(require('./webpack.config.js'))
7-
delete webpack.entry
8-
delete webpack.output
9-
webpack.devtool = 'inline-source-map'
6+
var webpack = require('webpack')
7+
var webpackConfig = _.cloneDeep(require('./webpack.config.js'))
8+
delete webpackConfig.entry
9+
delete webpackConfig.output
10+
webpackConfig.devtool = 'inline-source-map'
1011

1112
// https://webpack.github.io/docs/configuration.html#node
1213
// https://rmurphey.com/blog/2015/07/20/karma-webpack-tape-code-coverage
13-
webpack.node = {
14+
webpackConfig.node = {
1415
fs: 'empty'
1516
}
17+
webpackConfig.plugins.push(new webpack.NormalModuleReplacementPlugin(/\.\/dist\/contentful/g, './lib/contentful'))
1618

1719
module.exports = {
1820
plugins: [
@@ -31,7 +33,7 @@ module.exports = {
3133
'test/unit/**/*.js': ['webpack']
3234
},
3335

34-
webpack: webpack,
36+
webpack: webpackConfig,
3537

3638
reporters: [ 'dots' ],
3739
port: 9876,

lib/create-http-client.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* @flow */
22
import qs from 'querystring'
3-
import packageFile from '../package.json'
3+
import version from '../version'
44

55
type HttpClientParams = {
66
space: string,
@@ -21,7 +21,7 @@ export default function createHttpClient (axios: Object, {space, accessToken, in
2121
port = port || (insecure ? 80 : 443)
2222
headers = headers || {}
2323
headers['Content-Type'] = 'application/vnd.contentful.delivery.v1+json'
24-
headers['X-Contentful-User-Agent'] = 'contentful.js/' + packageFile.version
24+
headers['X-Contentful-User-Agent'] = 'contentful.js/' + version
2525

2626
if (process && process.release && process.release.name === 'node') {
2727
headers['user-agent'] = 'node.js/' + process.version

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@
2424
"test:integration": "babel-node ./test/integration/tests.js",
2525
"test:browser-local": "BABEL_ENV=test ./node_modules/.bin/karma start karma.conf.local.js",
2626
"test:browser-remote": "BABEL_ENV=test ./node_modules/.bin/karma start karma.conf.saucelabs.js",
27-
"vendor": "npm run vendor:node && npm run vendor:browser",
27+
"vendor": "npm run vendor:node && npm run vendor:browser && npm run vendor:version",
2828
"vendor:node": "rimraf vendor-node && mkdirp vendor-node && babel node_modules/axios/lib/ --out-dir vendor-node/",
2929
"vendor:browser": "rimraf vendor-browser && mkdirp vendor-browser && babel node_modules/axios/dist/axios.js --out-file vendor-browser/axios.js",
30+
"vendor:version": "echo \"module.exports = '`cat package.json|json version`'\" > version.js",
3031
"browser-coverage": "npm run test:cover && opener coverage/lcov-report/index.html",
3132
"prepublish": "in-publish && npm run build || not-in-publish",
3233
"postpublish": "npm run docs:publish && npm run clean",
@@ -36,7 +37,9 @@
3637
},
3738
"browser": "./browser.js",
3839
"files": [
40+
"browser.js",
3941
"index.js",
42+
"version.js",
4043
"dist",
4144
"browser-dist",
4245
"vendor-browser",
@@ -63,6 +66,7 @@
6366
"in-publish": "^2.0.0",
6467
"istanbul": "^1.0.0-alpha.2",
6568
"jsdoc": "^3.4.0",
69+
"json": "^9.0.3",
6670
"json-loader": "^0.5.4",
6771
"karma": "^0.13.21",
6872
"karma-babel-preprocessor": "^6.0.1",

test/unit/create-http-client-test.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ test('Calls axios with expected URL', t => {
88
create: sinon.stub()
99
}
1010

11-
createHttpClient.__Rewire__('packageFile', {
12-
version: 'version'
13-
})
11+
createHttpClient.__Rewire__('version', 'version')
1412

1513
createHttpClient(axios, {
1614
accessToken: 'clientAccessToken',

version.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require('./package.json').version

0 commit comments

Comments
 (0)