diff --git a/config/webpack.common.config.js b/config/webpack.common.config.js index f7bb5adfe7..f10045205b 100644 --- a/config/webpack.common.config.js +++ b/config/webpack.common.config.js @@ -38,7 +38,7 @@ const config = { }, 'react/addons': 'React', moment: 'moment', - immutable: 'immutable' + immutable: 'Immutable' }, module: { loaders: [ diff --git a/package-lock.json b/package-lock.json index 8b1b39e4bc..83b2868981 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2539,15 +2539,6 @@ "object-visit": "1.0.1" } }, - "collections": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz", - "integrity": "sha1-HyMCay7zb5J+7MkB6ZxfDUj6M04=", - "dev": true, - "requires": { - "weak-map": "1.0.0" - } - }, "color": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", @@ -4266,6 +4257,12 @@ "integrity": "sha1-cqdAoQdFM4LijfnOXbtajfD5Zuw=", "dev": true }, + "email-addresses": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.0.2.tgz", + "integrity": "sha512-IMn9dnwLMsgZjdUHswB/UZ0S8LQ/u+2/qjnHJ9tCtp3QHZsIYwJCiJOo2FT0i3CwwK/dtSODYtxuvzV4D9MY5g==", + "dev": true + }, "emitter-steward": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/emitter-steward/-/emitter-steward-1.0.0.tgz", @@ -5439,6 +5436,33 @@ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" }, + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", + "dev": true + }, + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", + "dev": true, + "requires": { + "filename-reserved-regex": "1.0.0", + "strip-outer": "1.0.1", + "trim-repeated": "1.0.0" + } + }, + "filenamify-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", + "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", + "dev": true, + "requires": { + "filenamify": "1.2.1", + "humanize-url": "1.0.1" + } + }, "fileset": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fileset/-/fileset-0.2.1.tgz", @@ -6039,75 +6063,73 @@ } }, "gh-pages": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-0.2.0.tgz", - "integrity": "sha1-d1UDv2r2ZWER6Mm2y51ivfD4t7Q=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.0.1.tgz", + "integrity": "sha512-uFlk3bukljeiWKQ2XvPfjcSi/ou7IfoDf2p+Fj672saLAr8bnOdFVqI/JSgrSgInKpCg5BksxEwGUl++dbg8Dg==", "dev": true, "requires": { - "async": "0.2.9", - "glob": "4.0.6", - "graceful-fs": "2.0.1", - "lodash": "2.4.2", - "q": "1.0.1", - "q-io": "1.11.6", - "wrench": "1.5.1" + "async": "2.6.1", + "commander": "2.19.0", + "email-addresses": "3.0.2", + "filenamify-url": "1.0.0", + "fs-extra": "7.0.0", + "globby": "6.1.0", + "graceful-fs": "4.1.11", + "rimraf": "2.6.2" }, "dependencies": { "async": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.9.tgz", - "integrity": "sha1-32MGD789Myhqdqr21Vophtn/hhk=", - "dev": true - }, - "glob": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.0.6.tgz", - "integrity": "sha1-aVxQvdTi+1xdNwsJHziNNwfikac=", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "graceful-fs": "3.0.11", - "inherits": "2.0.3", - "minimatch": "1.0.0", - "once": "1.4.0" - }, - "dependencies": { - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, - "requires": { - "natives": "1.1.1" - } - } + "lodash": "4.17.11" } }, - "graceful-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.1.tgz", - "integrity": "sha1-f9bgpIN8NdDMFTMClNlYSjiYz4Q=", + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", "dev": true }, - "lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true + "fs-extra": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", + "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } }, - "minimatch": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", - "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=", + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, - "q": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.0.1.tgz", - "integrity": "sha1-EYcq7t7okmgRCxCnGESP+xARKhQ=", + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true } } @@ -7167,6 +7189,16 @@ "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", "dev": true }, + "humanize-url": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", + "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", + "dev": true, + "requires": { + "normalize-url": "1.9.1", + "strip-url-auth": "1.0.1" + } + }, "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", @@ -9976,12 +10008,6 @@ "mime-db": "1.30.0" } }, - "mimeparse": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz", - "integrity": "sha1-2vsCdSNw/SJgk64xUsJxrwGsJUo=", - "dev": true - }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", @@ -11912,28 +11938,6 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, - "q-io": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/q-io/-/q-io-1.11.6.tgz", - "integrity": "sha1-poUJduHo98W9D6Plg19eudlPoXM=", - "dev": true, - "requires": { - "collections": "0.2.2", - "mime": "1.3.4", - "mimeparse": "0.1.4", - "q": "1.5.1", - "qs": "1.2.2", - "url2": "0.0.0" - }, - "dependencies": { - "qs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz", - "integrity": "sha1-GbV/8k3CqZzh+L32r82ln472H4g=", - "dev": true - } - } - }, "qjobs": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", @@ -14063,6 +14067,21 @@ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", "dev": true }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "strip-url-auth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", + "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", + "dev": true + }, "strong-log-transformer": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz", @@ -14453,6 +14472,15 @@ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", "dev": true }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -14775,12 +14803,6 @@ "prepend-http": "1.0.4" } }, - "url2": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz", - "integrity": "sha1-Tqq9HVw6yQ1iq0SFyZhCKGWgSxo=", - "dev": true - }, "use": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", @@ -15195,12 +15217,6 @@ "defaults": "1.0.3" } }, - "weak-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz", - "integrity": "sha1-tm5Wqd8L0lp2u/G1FNsSkIBhSjc=", - "dev": true - }, "webpack": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", @@ -15468,12 +15484,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "wrench": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/wrench/-/wrench-1.5.1.tgz", - "integrity": "sha1-P3pRmw5AkzhyO7A5sgmlQRdrqkI=", - "dev": true - }, "write": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", diff --git a/package.json b/package.json index 4dbf1cf066..35c7157156 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "eslint-loader": "^1.2.0", "eslint-plugin-react": "^3.15.0", "faker": "^3.0.1", - "gh-pages": "^0.2.0", + "gh-pages": "^2.0.1", "gulp": "^3.8.7", "gulp-concat": "^2.3.4", "gulp-util": "^3.0.0", diff --git a/packages/common/utils/index.js b/packages/common/utils/index.js index ab2b86f027..9c12d18954 100644 --- a/packages/common/utils/index.js +++ b/packages/common/utils/index.js @@ -1,7 +1,7 @@ -import { List, Iterable, Map } from 'immutable'; +const isImmutableLoaded = () => typeof Immutable !== 'undefined'; export const isColumnsImmutable = (columns) => { - return (typeof Immutable !== 'undefined' && (columns instanceof Immutable.List)); + return isImmutableLoaded() && columns instanceof Immutable.List; }; export const isEmptyArray = (obj) => { @@ -18,27 +18,27 @@ export const isEmptyObject = (obj) => { }; export const isImmutableCollection = objToVerify => { - return Iterable.isIterable(objToVerify); + return isImmutableLoaded() && Immutable.Iterable.isIterable(objToVerify); }; export const getMixedTypeValueRetriever = (isImmutable) => { let retObj = {}; const retriever = (item, key) => { return item[key]; }; - const immutableRetriever = (immutable, key) => { return immutable.get(key); }; + const immutableRetriever = (immutable, key) => { return immutable.get(key); }; retObj.getValue = isImmutable ? immutableRetriever : retriever; return retObj; }; -export const isImmutableMap = Map.isMap; +export const isImmutableMap = isImmutableLoaded() ? Immutable.Map.isMap : () => false; export const last = arrayOrList => { if (arrayOrList == null) { throw new Error('arrayOrCollection is null'); } - if (List.isList(arrayOrList)) { + if (isImmutableLoaded() && Immutable.List.isList(arrayOrList)) { return arrayOrList.last(); } @@ -46,5 +46,5 @@ export const last = arrayOrList => { return arrayOrList[arrayOrList.length - 1]; } - throw new Error('Cant get last of: ' + typeof(arrayOrList)); + throw new Error('Cant get last of: ' + typeof (arrayOrList)); }; diff --git a/test/FullTests.jsx b/test/FullTests.jsx index 1ceb64eb08..cb0e449d68 100644 --- a/test/FullTests.jsx +++ b/test/FullTests.jsx @@ -1,5 +1,6 @@ const Enzyme = require('enzyme'); const Adapter = require('enzyme-adapter-react-16'); +window.Immutable = require('immutable'); Enzyme.configure({ adapter: new Adapter(),