Skip to content

Commit

Permalink
feat(contentful.js): Upgrade to webpack 2
Browse files Browse the repository at this point in the history
BREAKING CHANGE: We are droping any node version < 4.7
  • Loading branch information
Khaledgarbaya committed Mar 6, 2017
1 parent c060fb0 commit c4afb30
Show file tree
Hide file tree
Showing 21 changed files with 5,684 additions and 123 deletions.
35 changes: 28 additions & 7 deletions .babelrc
@@ -1,14 +1,35 @@
{
"presets": [
"es2015"
],
"plugins": [
"transform-runtime"
],
"env": {
"webpack": {
"presets": [
["env", {
"debug": true,
"targets": {
"node": 4.7,
"browsers": [
"last 3 versions",
"ie >= 11"
]
},
"modules": false
}]
]
},
"test": {
"presets": [
["env", {
"debug": true,
"targets": {
"node": 4.7,
"browsers": [
"last 3 versions",
"ie >= 11"
]
}
}]
],
"plugins": ["rewire"],
"sourceMaps": "inline",
"plugins": ["babel-plugin-rewire"]
}
}
}
7 changes: 7 additions & 0 deletions .eslintrc.js
@@ -0,0 +1,7 @@
module.exports = {
'extends': 'standard',
'plugins': [
'standard',
'promise'
]
}
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -8,3 +8,6 @@ out
gh-pages
*.swp
*.swo
*.dockerfile
*.dockerignore
.npmrc
6 changes: 2 additions & 4 deletions .travis.yml
Expand Up @@ -4,10 +4,8 @@ before_install:
- npm set progress=false
language: node_js
node_js:
- "5.7"
- "4.3"
- "3.3"
- "0.10"
- "6.9"
- "4.7"
script: npm run test:ci
after_success:
- curl -Lo travis_after_all.py https://raw.githubusercontent.com/contentful/travis_after_all/master/travis_after_all.py
Expand Down
14 changes: 0 additions & 14 deletions browser.js

This file was deleted.

7 changes: 7 additions & 0 deletions esdoc.json
@@ -0,0 +1,7 @@
{
"source": "./lib",
"destination": "./out",
"index": "./README.md",
"package": "./package.json",
"title": "contentful.js"
}
17 changes: 2 additions & 15 deletions index.js
@@ -1,18 +1,5 @@
// To understand why axios is vendored, check SETUP.md
var axios = require('contentful-sdk-core/vendor-node/axios')
var contentful
try {
contentful = require('./dist/contentful').default
} catch (err) {
if (err.code === 'MODULE_NOT_FOUND') {
require('babel-register')
contentful = require('./lib/contentful').default
} else {
console.log(err)
process.exit(1)
}
}

var axios = require('axios')
var contentful = require('./dist/contentful').default
module.exports = {
createClient: function (params) {
return contentful(axios, params)
Expand Down
3 changes: 0 additions & 3 deletions karma.base.conf.js
@@ -1,9 +1,7 @@
// This file is just a base configuration for karma and not directly usable
// Use karma.conf.local.js for local tests
// Use karma.conf.saucelabs.js for saucelabs tests

var _ = require('lodash')
var webpack = require('webpack')
var webpackConfig = _.cloneDeep(require('./webpack.config.js'))
delete webpackConfig.entry
delete webpackConfig.output
Expand All @@ -14,7 +12,6 @@ webpackConfig.devtool = 'inline-source-map'
webpackConfig.node = {
fs: 'empty'
}
webpackConfig.plugins.push(new webpack.NormalModuleReplacementPlugin(/\.\/dist\/contentful/g, './lib/contentful'))

module.exports = {
plugins: [
Expand Down
7 changes: 3 additions & 4 deletions lib/contentful.js
Expand Up @@ -9,8 +9,7 @@ import defaults from 'lodash/defaults'
import assign from 'lodash/assign'
import cloneDeep from 'lodash/cloneDeep'
import version from '../version'
import createHttpClient from 'contentful-sdk-core/create-http-client'
import wrapHttpClient from 'contentful-sdk-core/wrap-http-client'
import {createHttpClient, wrapHttpClient} from 'contentful-sdk-core'
import createContentfulApi from './create-contentful-api'
import createLinkResolver from './create-link-resolver'

Expand All @@ -30,7 +29,7 @@ import createLinkResolver from './create-link-resolver'
* @prop {number=} params.delay - Delay in milliseconds for waiting after hitting the allowed number of concurrent requests. Changing this value is not recommended. (default: 1000)
* @prop {number=} params.maxRetries - Maximum number of retries when a 429 is received (default: 5)
* @prop {boolean=} params.retryOnTooManyRequests - If we should retry on 429s (default: true)
* @prop {boolean=} params.resolveLinks - If we should resolve links between entries
* @prop {boolean=} params.resolveLinks - If we should resolve links between entries
* @returns {ContentfulClientAPI.ClientAPI}
* @example
* const client = contentful.createClient({
Expand All @@ -40,7 +39,7 @@ import createLinkResolver from './create-link-resolver'
*/
export default function createClient (axios, params) {
params = defaults(cloneDeep(params), {
rateLimit: 9,
rateLimit: 1,
rateLimitPeriod: 1000,
maxRetries: 5,
retryOnTooManyRequests: true
Expand Down
2 changes: 1 addition & 1 deletion lib/create-contentful-api.js
Expand Up @@ -45,7 +45,7 @@
* @prop {function} sync
*/

import createRequestConfig from 'contentful-sdk-core/create-request-config'
import {createRequestConfig} from 'contentful-sdk-core'
import entities from './entities'
import pagedSync from './paged-sync'

Expand Down
7 changes: 3 additions & 4 deletions lib/entities/asset.js
@@ -1,6 +1,5 @@
import cloneDeep from 'lodash/cloneDeep'
import mixinToPlainObject from 'contentful-sdk-core/mixins/to-plain-object'
import freezeSys from 'contentful-sdk-core/freeze-sys'
import {toPlainObject, freezeSys} from 'contentful-sdk-core'

/**
* @memberof Entities
Expand All @@ -24,7 +23,7 @@ import freezeSys from 'contentful-sdk-core/freeze-sys'
* @return {Asset} Wrapped asset data
*/
export function wrapAsset (data) {
return freezeSys(mixinToPlainObject(cloneDeep(data)))
return freezeSys(toPlainObject(cloneDeep(data)))
}

/**
Expand All @@ -43,5 +42,5 @@ export function wrapAsset (data) {
* @return {AssetCollection} Wrapped asset collection data
*/
export function wrapAssetCollection (data) {
return freezeSys(mixinToPlainObject(cloneDeep(data)))
return freezeSys(toPlainObject(cloneDeep(data)))
}
7 changes: 3 additions & 4 deletions lib/entities/content-type.js
@@ -1,6 +1,5 @@
import cloneDeep from 'lodash/cloneDeep'
import mixinToPlainObject from 'contentful-sdk-core/mixins/to-plain-object'
import freezeSys from 'contentful-sdk-core/freeze-sys'
import {toPlainObject, freezeSys} from 'contentful-sdk-core'

/**
* @memberof Entities
Expand All @@ -19,7 +18,7 @@ import freezeSys from 'contentful-sdk-core/freeze-sys'
* @return {ContentType} Wrapped content type data
*/
export function wrapContentType (data) {
return freezeSys(mixinToPlainObject(cloneDeep(data)))
return freezeSys(toPlainObject(cloneDeep(data)))
}

/**
Expand All @@ -38,5 +37,5 @@ export function wrapContentType (data) {
* @return {ContentTypeCollection} Wrapped content type collection data
*/
export function wrapContentTypeCollection (data) {
return freezeSys(mixinToPlainObject(cloneDeep(data)))
return freezeSys(toPlainObject(cloneDeep(data)))
}
7 changes: 3 additions & 4 deletions lib/entities/entry.js
@@ -1,7 +1,6 @@
import cloneDeep from 'lodash/cloneDeep'
import uniq from 'lodash/uniq'
import mixinToPlainObject from 'contentful-sdk-core/mixins/to-plain-object'
import freezeSys from 'contentful-sdk-core/freeze-sys'
import {toPlainObject, freezeSys} from 'contentful-sdk-core'
import mixinLinkGetters from '../mixins/link-getters'
import mixinStringifySafe from '../mixins/stringify-safe'

Expand Down Expand Up @@ -76,7 +75,7 @@ import mixinStringifySafe from '../mixins/stringify-safe'
* @return {Entry} Wrapped entry data
*/
export function wrapEntry (data) {
return freezeSys(mixinToPlainObject(cloneDeep(data)))
return freezeSys(toPlainObject(cloneDeep(data)))
}

/**
Expand All @@ -99,7 +98,7 @@ export function wrapEntry (data) {
* @return {EntryCollection} Wrapped entry collection data
*/
export function wrapEntryCollection (data, resolveLinks, resolveForAllLocales) {
const wrappedData = mixinStringifySafe(mixinToPlainObject(cloneDeep(data)))
const wrappedData = mixinStringifySafe(toPlainObject(cloneDeep(data)))
if (resolveLinks) {
const includes = prepareIncludes(wrappedData.includes, wrappedData.items)
mixinLinkGetters(wrappedData.items, includes, resolveForAllLocales)
Expand Down
5 changes: 2 additions & 3 deletions lib/entities/space.js
@@ -1,5 +1,4 @@
import mixinToPlainObject from 'contentful-sdk-core/mixins/to-plain-object'
import freezeSys from 'contentful-sdk-core/freeze-sys'
import {toPlainObject, freezeSys} from 'contentful-sdk-core'

/**
* @memberof Entities
Expand All @@ -18,5 +17,5 @@ import freezeSys from 'contentful-sdk-core/freeze-sys'
* @return {Space}
*/
export function wrapSpace (data) {
return freezeSys(mixinToPlainObject(data))
return freezeSys(toPlainObject(data))
}
6 changes: 2 additions & 4 deletions lib/paged-sync.js
Expand Up @@ -4,11 +4,9 @@
*/
import filter from 'lodash/filter'
import cloneDeep from 'lodash/cloneDeep'
import createRequestConfig from 'contentful-sdk-core/create-request-config'
import freezeSys from 'contentful-sdk-core/freeze-sys'
import mixinLinkGetters from './mixins/link-getters'
import mixinStringifySafe from './mixins/stringify-safe'
import mixinToPlainObject from 'contentful-sdk-core/mixins/to-plain-object'
import {toPlainObject, freezeSys, createRequestConfig} from 'contentful-sdk-core'

/**
* @memberof Sync
Expand Down Expand Up @@ -70,7 +68,7 @@ export default function pagedSync (http, query, resolveLinks) {
// maps response items again after getters are attached
const mappedResponseItems = mapResponseItems(response.items)
mappedResponseItems.nextSyncToken = response.nextSyncToken
return freezeSys(mixinStringifySafe(mixinToPlainObject(mappedResponseItems)))
return freezeSys(mixinStringifySafe(toPlainObject(mappedResponseItems)))
}, (error) => {
throw error.data
})
Expand Down

0 comments on commit c4afb30

Please sign in to comment.