Added logging, changed some directory structure

This commit is contained in:
2018-01-13 21:33:40 -05:00
parent f079a5f067
commit 8e72ffb917
73656 changed files with 35284 additions and 53718 deletions

View File

@@ -0,0 +1,14 @@
{
"presets": ["stage-0", "es2015"],
"plugins": [
"transform-es3-member-expression-literals",
"transform-es3-property-literals"
],
"env": {
"test": {
"plugins": [
"rewire"
]
}
}
}

View File

@@ -0,0 +1,4 @@
{
"parser": "babel-eslint",
"extends": "eslint-config-jss"
}

View File

@@ -0,0 +1,4 @@
src
bench
coverage
tmp

View File

@@ -0,0 +1,8 @@
The MIT License (MIT)
Copyright (c) 2014-present Oleg Slobodskoi
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -0,0 +1,85 @@
## 5.0.0 / 2017-06-20
- support jss 8
## 4.0.1 / 2017-04-18
- update jss-nested and jss-extend dev deps
## 4.0.0 / 2017-04-10
- support jss 7.0
## 3.0.1 / 2017-03-01
- fix nested object extending
## 3.0.0 / 2016-12-09
- remove dep to named option
- update to jss 6.0
## 2.0.6 / 2016-11-05
- fix main tests suite integration
## 2.0.5 / 2016-11-05
- gitignore tests dir
- add es3 transforms
- other small changes
## 2.0.4 / 2016-10-26
- migrate to mocha
- update deps
- use warning package
## 2.0.3 / 2016-10-17
- fixed regression bug introduced in 2.0.2 - rules own properties should always override extended props.
## 2.0.2 / 2016-10-11
- merge nested rules instead of overwriting
- update tests to match jss@5.5.0
## 2.0.1 / 2016-08-01
- fix regression because of merge
## 2.0.0 / 2016-08-01
- update to jss 5
- update dev deps
## 1.2.1 / 2016-03-24
- update babel
## 1.2.0 / 2016-02-03
- perf enhancement, don't generate a function upon each plugin call
## 1.1.0 / 2015-11-14
- allow extend value to be a name of a rule from the style sheet
## 1.0.0 / 2015-10-19
- support jss 3.0
- now plugin needs to be called like a middleware
## 0.2.0 / 2015-09-21
- migrate to es6
- move examples to jss-examples repository
- simplify packaging
## 0.1.6 / 2014-01-31
- update jss to 1.0
## 0.1.0 / 2014-11-28
- first release in a separate repository for plugins

View File

@@ -0,0 +1,208 @@
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["jssExtend"] = factory();
else
root["jssExtend"] = factory();
})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports['default'] = jssExtend;
var _warning = __webpack_require__(1);
var _warning2 = _interopRequireDefault(_warning);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var isObject = function isObject(obj) {
return obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && !Array.isArray(obj);
};
/**
* Recursively extend styles.
*/
function extend(style, rule, sheet) {
var newStyle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
if (typeof style.extend === 'string') {
if (sheet) {
var refRule = sheet.getRule(style.extend);
if (refRule) {
if (refRule === rule) (0, _warning2['default'])(false, '[JSS] A rule tries to extend itself \r\n%s', rule);else if (refRule.options.parent) {
var originalStyle = refRule.options.parent.rules.raw[style.extend];
extend(originalStyle, rule, sheet, newStyle);
}
}
}
} else if (Array.isArray(style.extend)) {
for (var index = 0; index < style.extend.length; index++) {
extend(style.extend[index], rule, sheet, newStyle);
}
} else {
for (var prop in style.extend) {
if (prop === 'extend') {
extend(style.extend.extend, rule, sheet, newStyle);
} else if (isObject(style.extend[prop])) {
if (!newStyle[prop]) newStyle[prop] = {};
extend(style.extend[prop], rule, sheet, newStyle[prop]);
} else {
newStyle[prop] = style.extend[prop];
}
}
}
// Copy base style.
for (var _prop in style) {
if (_prop === 'extend') continue;
if (isObject(newStyle[_prop]) && isObject(style[_prop])) {
extend(style[_prop], rule, sheet, newStyle[_prop]);
} else if (isObject(style[_prop])) {
newStyle[_prop] = extend(style[_prop], rule, sheet);
} else {
newStyle[_prop] = style[_prop];
}
}
return newStyle;
}
/**
* Handle `extend` property.
*
* @param {Rule} rule
* @api public
*/
function jssExtend() {
function onProcessStyle(style, rule, sheet) {
return style.extend ? extend(style, rule, sheet) : style;
}
return { onProcessStyle: onProcessStyle };
}
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
/**
* Copyright 2014-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
'use strict';
/**
* Similar to invariant but only logs a warning if the condition is not met.
* This can be used to log issues in development environments in critical
* paths. Removing the logging code for production environments will keep the
* same logic and follow the same code paths.
*/
var warning = function() {};
if (true) {
warning = function(condition, format, args) {
var len = arguments.length;
args = new Array(len > 2 ? len - 2 : 0);
for (var key = 2; key < len; key++) {
args[key - 2] = arguments[key];
}
if (format === undefined) {
throw new Error(
'`warning(condition, format, ...args)` requires a warning ' +
'message argument'
);
}
if (format.length < 10 || (/^[s\W]*$/).test(format)) {
throw new Error(
'The warning format should be able to uniquely identify this ' +
'warning. Please, use a more descriptive format than: ' + format
);
}
if (!condition) {
var argIndex = 0;
var message = 'Warning: ' +
format.replace(/%s/g, function() {
return args[argIndex++];
});
if (typeof console !== 'undefined') {
console.error(message);
}
try {
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
throw new Error(message);
} catch(x) {}
}
};
}
module.exports = warning;
/***/ })
/******/ ])
});
;
//# sourceMappingURL=jss-extend.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.jssExtend=t():e.jssExtend=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={exports:{},id:o,loaded:!1};return e[o].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}function r(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("string"==typeof e.extend){if(n){var f=n.getRule(e.extend);if(f)if(f===t)(0,d.default)(!1,"[JSS] A rule tries to extend itself \r\n%s",t);else if(f.options.parent){var i=f.options.parent.rules.raw[e.extend];r(i,t,n,o)}}}else if(Array.isArray(e.extend))for(var u=0;u<e.extend.length;u++)r(e.extend[u],t,n,o);else for(var c in e.extend)"extend"===c?r(e.extend.extend,t,n,o):s(e.extend[c])?(o[c]||(o[c]={}),r(e.extend[c],t,n,o[c])):o[c]=e.extend[c];for(var l in e)"extend"!==l&&(s(o[l])&&s(e[l])?r(e[l],t,n,o[l]):s(e[l])?o[l]=r(e[l],t,n):o[l]=e[l]);return o}function f(){function e(e,t,n){return e.extend?r(e,t,n):e}return{onProcessStyle:e}}Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=f;var u=n(1),d=o(u),s=function(e){return e&&"object"===("undefined"==typeof e?"undefined":i(e))&&!Array.isArray(e)}},function(e,t,n){"use strict";var o=function(){};e.exports=o}])});
//# sourceMappingURL=jss-extend.min.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,24 @@
const webpackConfig = require('./webpack.config')
module.exports = (config) => {
config.set({
browsers: ['Chrome'],
frameworks: ['mocha'],
files: ['tests.webpack.js'],
preprocessors: {
'tests.webpack.js': ['webpack', 'sourcemap']
},
webpack: Object.assign(webpackConfig, {
devtool: 'inline-source-map'
}),
webpackServer: {
noInfo: true
},
reporters: ['mocha', 'coverage'],
coverageReporter: {
dir: 'coverage',
file: 'coverage.json',
type: 'json'
}
})
}

View File

@@ -0,0 +1,80 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports['default'] = jssExtend;
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var isObject = function isObject(obj) {
return obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && !Array.isArray(obj);
};
/**
* Recursively extend styles.
*/
function extend(style, rule, sheet) {
var newStyle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
if (typeof style.extend === 'string') {
if (sheet) {
var refRule = sheet.getRule(style.extend);
if (refRule) {
if (refRule === rule) (0, _warning2['default'])(false, '[JSS] A rule tries to extend itself \r\n%s', rule);else if (refRule.options.parent) {
var originalStyle = refRule.options.parent.rules.raw[style.extend];
extend(originalStyle, rule, sheet, newStyle);
}
}
}
} else if (Array.isArray(style.extend)) {
for (var index = 0; index < style.extend.length; index++) {
extend(style.extend[index], rule, sheet, newStyle);
}
} else {
for (var prop in style.extend) {
if (prop === 'extend') {
extend(style.extend.extend, rule, sheet, newStyle);
} else if (isObject(style.extend[prop])) {
if (!newStyle[prop]) newStyle[prop] = {};
extend(style.extend[prop], rule, sheet, newStyle[prop]);
} else {
newStyle[prop] = style.extend[prop];
}
}
}
// Copy base style.
for (var _prop in style) {
if (_prop === 'extend') continue;
if (isObject(newStyle[_prop]) && isObject(style[_prop])) {
extend(style[_prop], rule, sheet, newStyle[_prop]);
} else if (isObject(style[_prop])) {
newStyle[_prop] = extend(style[_prop], rule, sheet);
} else {
newStyle[_prop] = style[_prop];
}
}
return newStyle;
}
/**
* Handle `extend` property.
*
* @param {Rule} rule
* @api public
*/
function jssExtend() {
function onProcessStyle(style, rule, sheet) {
return style.extend ? extend(style, rule, sheet) : style;
}
return { onProcessStyle: onProcessStyle };
}

View File

@@ -0,0 +1,265 @@
'use strict';
var _expect = require('expect.js');
var _expect2 = _interopRequireDefault(_expect);
var _jssNested = require('jss-nested');
var _jssNested2 = _interopRequireDefault(_jssNested);
var _jssExpand = require('jss-expand');
var _jssExpand2 = _interopRequireDefault(_jssExpand);
var _jss = require('jss');
var _index = require('./index');
var _index2 = _interopRequireDefault(_index);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var settings = {
createGenerateClassName: function createGenerateClassName() {
return function (rule) {
return rule.key + '-id';
};
}
}; /* eslint-disable no-underscore-dangle */
describe('jss-extend', function () {
var jss = void 0;
var warning = void 0;
beforeEach(function () {
_index2['default'].__Rewire__('warning', function (condition, message) {
warning = message;
});
jss = (0, _jss.create)(settings).use((0, _index2['default'])(), (0, _jssNested2['default'])(), (0, _jssExpand2['default'])());
});
afterEach(function () {
_index2['default'].__ResetDependency__('warning');
warning = undefined;
});
describe('simple extend', function () {
var sheet = void 0;
beforeEach(function () {
var a = { float: 'left' };
sheet = jss.createStyleSheet({
a: a,
b: {
extend: a,
width: '1px'
}
});
});
it('should extend', function () {
(0, _expect2['default'])(sheet.getRule('a')).to.not.be(undefined);
(0, _expect2['default'])(sheet.getRule('b')).to.not.be(undefined);
(0, _expect2['default'])(sheet.toString()).to.be('.a-id {\n' + ' float: left;\n' + '}\n' + '.b-id {\n' + ' float: left;\n' + ' width: 1px;\n' + '}');
});
});
describe('ensure override order', function () {
var sheet = void 0;
beforeEach(function () {
var a = {
float: 'left',
color: 'red'
};
sheet = jss.createStyleSheet({
a: {
extend: a,
float: 'right'
}
});
});
it('should have correct order', function () {
(0, _expect2['default'])(sheet.getRule('a')).to.not.be(undefined);
(0, _expect2['default'])(sheet.toString()).to.be('.a-id {\n' + ' float: right;\n' + ' color: red;\n' + '}');
});
});
describe('multi extend', function () {
var sheet = void 0;
beforeEach(function () {
var a = { float: 'left' };
var b = { position: 'absolute' };
sheet = jss.createStyleSheet({
c: {
extend: [a, b],
width: '1px'
}
});
});
it('should have correct output', function () {
(0, _expect2['default'])(sheet.getRule('c')).to.not.be(undefined);
(0, _expect2['default'])(sheet.toString()).to.be('.c-id {\n' + ' float: left;\n' + ' position: absolute;\n' + ' width: 1px;\n' + '}');
});
});
describe('nested extend 1', function () {
var sheet = void 0;
beforeEach(function () {
var c = { float: 'left' };
var b = { extend: c, display: 'none' };
sheet = jss.createStyleSheet({
a: {
extend: b,
width: '1px'
}
});
});
it('should should have correct output', function () {
(0, _expect2['default'])(sheet.getRule('a')).to.not.be(undefined);
(0, _expect2['default'])(sheet.toString()).to.be('.a-id {\n' + ' float: left;\n' + ' display: none;\n' + ' width: 1px;\n' + '}');
});
});
describe('nested extend 2', function () {
var sheet = void 0;
beforeEach(function () {
var b = {
'&:hover': {
float: 'left',
width: '3px'
}
};
sheet = jss.createStyleSheet({
a: {
extend: b,
width: '1px',
'&:hover': {
width: '2px',
height: '2px'
}
}
});
});
it('should have correct output', function () {
(0, _expect2['default'])(sheet.getRule('a')).to.not.be(undefined);
(0, _expect2['default'])(sheet.toString()).to.be('.a-id {\n' + ' width: 1px;\n' + '}\n' + '.a-id:hover {\n' + ' float: left;\n' + ' width: 2px;\n' + ' height: 2px;\n' + '}');
});
});
describe('deep nested extend', function () {
var sheet = void 0;
beforeEach(function () {
var a = {
'&:hover': { width: '5px', height: '5px' },
border: { width: '3px' }
};
var b = {
extend: a,
'&:hover': { width: '4px' },
border: { color: 'blue' }
};
var c = {
extend: b,
'&:hover': { height: '2px' }
};
var d = {
extend: c,
'&:hover': { width: '2px' }
};
sheet = jss.createStyleSheet({
a: {
extend: d,
width: '2px',
border: {
width: '1px',
color: 'red',
style: 'solid'
},
'&:hover': {
color: 'red'
}
}
});
});
it('should have correct output', function () {
(0, _expect2['default'])(sheet.getRule('a')).to.not.be(undefined);
(0, _expect2['default'])(sheet.toString()).to.be('.a-id {\n' + ' border: 1px solid red;\n' + ' width: 2px;\n' + '}\n' + '.a-id:hover {\n' + ' width: 2px;\n' + ' height: 2px;\n' + ' color: red;\n' + '}');
});
});
describe('multi child extend with css state', function () {
var sheet = void 0;
beforeEach(function () {
sheet = jss.createStyleSheet({
base: {
'&:hover': { width: '1px' }
},
child1: {
extend: 'base',
'&:hover': { width: '5px' }
},
child2: {
extend: 'base'
}
});
});
it('should have correct output', function () {
(0, _expect2['default'])(sheet.getRule('base')).to.not.be(undefined);
(0, _expect2['default'])(sheet.getRule('child1')).to.not.be(undefined);
(0, _expect2['default'])(sheet.getRule('child2')).to.not.be(undefined);
(0, _expect2['default'])(sheet.toString()).to.be('.base-id:hover {\n' + ' width: 1px;\n' + '}\n' + '.child1-id:hover {\n' + ' width: 5px;\n' + '}\n' + '.child2-id:hover {\n' + ' width: 1px;\n' + '}');
});
});
describe('extend using rule name', function () {
var sheet = void 0;
beforeEach(function () {
sheet = jss.createStyleSheet({
a: { float: 'left' },
b: {
extend: 'a',
width: '1px'
}
});
});
it('should have correct output', function () {
(0, _expect2['default'])(sheet.getRule('a')).to.not.be(undefined);
(0, _expect2['default'])(sheet.getRule('b')).to.not.be(undefined);
(0, _expect2['default'])(sheet.toString()).to.be('.a-id {\n' + ' float: left;\n' + '}\n' + '.b-id {\n' + ' float: left;\n' + ' width: 1px;\n' + '}');
});
});
describe('extend using rule name', function () {
var sheet = void 0;
beforeEach(function () {
sheet = jss.createStyleSheet({
a: {
extend: 'a',
width: '1px'
}
});
});
it('error if extend using same rule name', function () {
(0, _expect2['default'])(warning).to.be('[JSS] A rule tries to extend itself \r\n%s');
(0, _expect2['default'])(sheet.getRule('a')).to.not.be(undefined);
(0, _expect2['default'])(sheet.toString()).to.be('.a-id {\n' + ' width: 1px;\n' + '}');
});
});
});

View File

@@ -0,0 +1,126 @@
{
"_args": [
[
"jss-extend@5.0.0",
"C:\\Users\\deranjer\\go\\src\\github.com\\deranjer\\goTorrent\\torrent-project"
]
],
"_from": "jss-extend@5.0.0",
"_id": "jss-extend@5.0.0",
"_inBundle": false,
"_integrity": "sha512-fUp+9KipbdmzSfTxNHoT3mrFnE7fYn7EyHg3LTUexfpWrwj5Afkwb3iCfYV7GYCpg9OKDsqc18atwjHvSPWWKg==",
"_location": "/material-ui/jss-extend",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "jss-extend@5.0.0",
"name": "jss-extend",
"escapedName": "jss-extend",
"rawSpec": "5.0.0",
"saveSpec": null,
"fetchSpec": "5.0.0"
},
"_requiredBy": [
"/material-ui/jss-preset-default"
],
"_resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-5.0.0.tgz",
"_spec": "5.0.0",
"_where": "C:\\Users\\deranjer\\go\\src\\github.com\\deranjer\\goTorrent\\torrent-project",
"author": {
"name": "Oleg Slobodskoi",
"email": "oleg008@gmail.com"
},
"bugs": {
"url": "https://github.com/cssinjs/jss-extend/issues"
},
"dependencies": {
"warning": "^3.0.0"
},
"description": "JSS plugin that enables inheritance",
"devDependencies": {
"babel-cli": "^6.5.1",
"babel-core": "^6.5.1",
"babel-eslint": "^7.1.0",
"babel-loader": "^6.2.4",
"babel-plugin-rewire": "^1.0.0",
"babel-plugin-transform-es3-member-expression-literals": "^6.8.0",
"babel-plugin-transform-es3-property-literals": "^6.8.0",
"babel-preset-es2015": "^6.9.0",
"babel-preset-stage-0": "^6.5.0",
"cross-env": "^3.1.3",
"es5-shim": "^4.5.9",
"eslint": "^3.9.1",
"eslint-config-airbnb": "^12.0.0",
"eslint-config-jss": "^2.4.0",
"eslint-plugin-import": "^2.1.0",
"eslint-plugin-jsx-a11y": "^2.2.3",
"eslint-plugin-react": "^6.5.0",
"expect.js": "^0.3.1",
"json-loader": "^0.5.4",
"jss": "^8.0.0",
"jss-expand": "^4.0.0",
"jss-nested": "^5.0.0",
"karma": "^1.1.1",
"karma-benchmark": "^0.6.0",
"karma-benchmark-reporter": "^0.1.1",
"karma-browserstack-launcher": "^1.0.0",
"karma-chrome-launcher": "^2.0.0",
"karma-coverage": "^1.1.0",
"karma-firefox-launcher": "^1.0.0",
"karma-mocha": "^1.0.1",
"karma-mocha-reporter": "^2.0.2",
"karma-safari-launcher": "^1.0.0",
"karma-sourcemap-loader": "^0.3.5",
"karma-webpack": "^1.7.0",
"lint-staged": "^3.0.1",
"mocha": "^3.0.2",
"pre-commit": "^1.1.3",
"rimraf": "^2.5.4",
"webpack": "^1.12.2"
},
"homepage": "https://github.com/cssinjs/jss-extend#readme",
"keywords": [
"jss",
"plugin",
"extend",
"css-in-js",
"cssinjs",
"css in js"
],
"license": "MIT",
"lint-staged": {
"./src/*.js": [
"eslint",
"git add"
]
},
"main": "./lib/index.js",
"name": "jss-extend",
"peerDependencies": {
"jss": "^8.0.0"
},
"pre-commit": "lint:staged",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/cssinjs/jss-extend.git"
},
"scripts": {
"all": "npm run lint && npm run test && npm run build",
"build": "npm run clean && npm run build:lib && npm run build:tests && npm run build:dist",
"build:dist": "npm run build:dist:max && npm run build:dist:min",
"build:dist:max": "cross-env NODE_ENV=development webpack src/index.js dist/jss-extend.js",
"build:dist:min": "cross-env NODE_ENV=production webpack src/index.js dist/jss-extend.min.js",
"build:lib": "babel src --out-dir lib",
"build:tests": "npm run build:tests:lib && npm run build:tests:local",
"build:tests:lib": "cross-env NODE_ENV=test babel src --out-dir tests",
"build:tests:local": "cross-env NODE_ENV=test webpack src/index.test.js tmp/tests.js",
"clean": "rimraf {lib,dist,tests,tmp}/*",
"lint": "eslint ./src",
"lint:staged": "lint-staged",
"prepublishOnly": "npm run all",
"test": "cross-env NODE_ENV=test karma start --single-run ",
"test:watch": "cross-env NODE_ENV=test karma start"
},
"version": "5.0.0"
}

View File

@@ -0,0 +1,66 @@
# JSS plugin that enables inheritance
[![Gitter](https://badges.gitter.im/JoinChat.svg)](https://gitter.im/cssinjs/lobby)
This plugin implements a custom `extend` style property.
Value of `extend` property can be a string, object and array. If string is used, it will look for a rule with such a name. If object - plain rule object is expected, if array - an array of plain rule objects is expected.
Rule's own properties always take precedence over extended rules, so you can always override the extended definition.
## Examples
```javascript
const styles = {
redContainer: {
background: 'red'
},
container: {
extend: 'redContainer',
'font-size': '20px'
}
}
```
```javascript
const redContainer = {
background: 'red'
}
const styles = {
container: {
extend: redContainer, // Can be an array of styles
'font-size': '20px'
}
}
```
Compiles to:
```css
.jss-23g44j5 {
background: red;
font-size: 20px;
}
```
## Demo
[Simple demo](http://cssinjs.github.io/examples/plugins/jss-extend/simple/)
[Multi objects demo](http://cssinjs.github.io/examples/plugins/jss-extend/multi/)
## Issues
File a bug against [cssinjs/jss prefixed with \[jss-extend\]](https://github.com/cssinjs/jss/issues/new?title=[jss-extend]%20).
## Run tests
```bash
npm i
npm run test
```
## License
MIT

View File

@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>JSS Tests</title>
<link href="./node_modules/mocha/mocha.css" rel="stylesheet" />
</head>
<body>
<div id="mocha"></div>
<script src="./node_modules/es5-shim/es5-shim.js"></script>
<script src="./node_modules/mocha/mocha.js"></script>
<script>mocha.setup('bdd')</script>
<script src="tmp/tests.js"></script>
<script>
mocha.checkLeaks();
mocha.run();
</script>
</body>
</html>

View File

@@ -0,0 +1,2 @@
var context = require.context('./src', true, /\.test\.js$/)
context.keys().forEach(context)

View File

@@ -0,0 +1,316 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.__RewireAPI__ = exports.__ResetDependency__ = exports.__set__ = exports.__Rewire__ = exports.__GetDependency__ = exports.__get__ = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports['default'] = jssExtend;
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var isObject = function isObject(obj) {
return obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && !Array.isArray(obj);
};
/**
* Recursively extend styles.
*/
function extend(style, rule, sheet) {
var newStyle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
if (typeof style.extend === 'string') {
if (sheet) {
var refRule = sheet.getRule(style.extend);
if (refRule) {
if (refRule === rule) _get__('warning')(false, '[JSS] A rule tries to extend itself \r\n%s', rule);else if (refRule.options.parent) {
var originalStyle = refRule.options.parent.rules.raw[style.extend];
_get__('extend')(originalStyle, rule, sheet, newStyle);
}
}
}
} else if (Array.isArray(style.extend)) {
for (var index = 0; index < style.extend.length; index++) {
_get__('extend')(style.extend[index], rule, sheet, newStyle);
}
} else {
for (var prop in style.extend) {
if (prop === 'extend') {
_get__('extend')(style.extend.extend, rule, sheet, newStyle);
} else if (_get__('isObject')(style.extend[prop])) {
if (!newStyle[prop]) newStyle[prop] = {};
_get__('extend')(style.extend[prop], rule, sheet, newStyle[prop]);
} else {
newStyle[prop] = style.extend[prop];
}
}
}
// Copy base style.
for (var _prop in style) {
if (_prop === 'extend') continue;
if (_get__('isObject')(newStyle[_prop]) && _get__('isObject')(style[_prop])) {
_get__('extend')(style[_prop], rule, sheet, newStyle[_prop]);
} else if (_get__('isObject')(style[_prop])) {
newStyle[_prop] = _get__('extend')(style[_prop], rule, sheet);
} else {
newStyle[_prop] = style[_prop];
}
}
return newStyle;
}
/**
* Handle `extend` property.
*
* @param {Rule} rule
* @api public
*/
function jssExtend() {
function onProcessStyle(style, rule, sheet) {
return style.extend ? _get__('extend')(style, rule, sheet) : style;
}
return { onProcessStyle: onProcessStyle };
}
function _getGlobalObject() {
try {
if (!!global) {
return global;
}
} catch (e) {
try {
if (!!window) {
return window;
}
} catch (e) {
return this;
}
}
}
;
var _RewireModuleId__ = null;
function _getRewireModuleId__() {
if (_RewireModuleId__ === null) {
var globalVariable = _getGlobalObject();
if (!globalVariable.__$$GLOBAL_REWIRE_NEXT_MODULE_ID__) {
globalVariable.__$$GLOBAL_REWIRE_NEXT_MODULE_ID__ = 0;
}
_RewireModuleId__ = __$$GLOBAL_REWIRE_NEXT_MODULE_ID__++;
}
return _RewireModuleId__;
}
function _getRewireRegistry__() {
var theGlobalVariable = _getGlobalObject();
if (!theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__) {
theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__ = Object.create(null);
}
return __$$GLOBAL_REWIRE_REGISTRY__;
}
function _getRewiredData__() {
var moduleId = _getRewireModuleId__();
var registry = _getRewireRegistry__();
var rewireData = registry[moduleId];
if (!rewireData) {
registry[moduleId] = Object.create(null);
rewireData = registry[moduleId];
}
return rewireData;
}
(function registerResetAll() {
var theGlobalVariable = _getGlobalObject();
if (!theGlobalVariable['__rewire_reset_all__']) {
theGlobalVariable['__rewire_reset_all__'] = function () {
theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__ = Object.create(null);
};
}
})();
var INTENTIONAL_UNDEFINED = '__INTENTIONAL_UNDEFINED__';
var _RewireAPI__ = {};
(function () {
function addPropertyToAPIObject(name, value) {
Object.defineProperty(_RewireAPI__, name, {
value: value,
enumerable: false,
configurable: true
});
}
addPropertyToAPIObject('__get__', _get__);
addPropertyToAPIObject('__GetDependency__', _get__);
addPropertyToAPIObject('__Rewire__', _set__);
addPropertyToAPIObject('__set__', _set__);
addPropertyToAPIObject('__reset__', _reset__);
addPropertyToAPIObject('__ResetDependency__', _reset__);
addPropertyToAPIObject('__with__', _with__);
})();
function _get__(variableName) {
var rewireData = _getRewiredData__();
if (rewireData[variableName] === undefined) {
return _get_original__(variableName);
} else {
var value = rewireData[variableName];
if (value === INTENTIONAL_UNDEFINED) {
return undefined;
} else {
return value;
}
}
}
function _get_original__(variableName) {
switch (variableName) {
case 'warning':
return _warning2['default'];
case 'extend':
return extend;
case 'isObject':
return isObject;
}
return undefined;
}
function _assign__(variableName, value) {
var rewireData = _getRewiredData__();
if (rewireData[variableName] === undefined) {
return _set_original__(variableName, value);
} else {
return rewireData[variableName] = value;
}
}
function _set_original__(variableName, _value) {
switch (variableName) {}
return undefined;
}
function _update_operation__(operation, variableName, prefix) {
var oldValue = _get__(variableName);
var newValue = operation === '++' ? oldValue + 1 : oldValue - 1;
_assign__(variableName, newValue);
return prefix ? newValue : oldValue;
}
function _set__(variableName, value) {
var rewireData = _getRewiredData__();
if ((typeof variableName === 'undefined' ? 'undefined' : _typeof(variableName)) === 'object') {
Object.keys(variableName).forEach(function (name) {
rewireData[name] = variableName[name];
});
} else {
if (value === undefined) {
rewireData[variableName] = INTENTIONAL_UNDEFINED;
} else {
rewireData[variableName] = value;
}
return function () {
_reset__(variableName);
};
}
}
function _reset__(variableName) {
var rewireData = _getRewiredData__();
delete rewireData[variableName];
if (Object.keys(rewireData).length == 0) {
delete _getRewireRegistry__()[_getRewireModuleId__];
}
;
}
function _with__(object) {
var rewireData = _getRewiredData__();
var rewiredVariableNames = Object.keys(object);
var previousValues = {};
function reset() {
rewiredVariableNames.forEach(function (variableName) {
rewireData[variableName] = previousValues[variableName];
});
}
return function (callback) {
rewiredVariableNames.forEach(function (variableName) {
previousValues[variableName] = rewireData[variableName];
rewireData[variableName] = object[variableName];
});
var result = callback();
if (!!result && typeof result.then == 'function') {
result.then(reset)['catch'](reset);
} else {
reset();
}
return result;
};
}
var _typeOfOriginalExport = typeof jssExtend === 'undefined' ? 'undefined' : _typeof(jssExtend);
function addNonEnumerableProperty(name, value) {
Object.defineProperty(jssExtend, name, {
value: value,
enumerable: false,
configurable: true
});
}
if ((_typeOfOriginalExport === 'object' || _typeOfOriginalExport === 'function') && Object.isExtensible(jssExtend)) {
addNonEnumerableProperty('__get__', _get__);
addNonEnumerableProperty('__GetDependency__', _get__);
addNonEnumerableProperty('__Rewire__', _set__);
addNonEnumerableProperty('__set__', _set__);
addNonEnumerableProperty('__reset__', _reset__);
addNonEnumerableProperty('__ResetDependency__', _reset__);
addNonEnumerableProperty('__with__', _with__);
addNonEnumerableProperty('__RewireAPI__', _RewireAPI__);
}
exports.__get__ = _get__;
exports.__GetDependency__ = _get__;
exports.__Rewire__ = _set__;
exports.__set__ = _set__;
exports.__ResetDependency__ = _reset__;
exports.__RewireAPI__ = _RewireAPI__;

View File

@@ -0,0 +1,496 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.__RewireAPI__ = exports.__ResetDependency__ = exports.__set__ = exports.__Rewire__ = exports.__GetDependency__ = exports.__get__ = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* eslint-disable no-underscore-dangle */
var _expect = require('expect.js');
var _expect2 = _interopRequireDefault(_expect);
var _jssNested = require('jss-nested');
var _jssNested2 = _interopRequireDefault(_jssNested);
var _jssExpand = require('jss-expand');
var _jssExpand2 = _interopRequireDefault(_jssExpand);
var _jss = require('jss');
var _index = require('./index');
var _index2 = _interopRequireDefault(_index);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var settings = {
createGenerateClassName: function createGenerateClassName() {
return function (rule) {
return rule.key + '-id';
};
}
};
describe('jss-extend', function () {
var jss = void 0;
var warning = void 0;
beforeEach(function () {
_get__('extend').__Rewire__('warning', function (condition, message) {
warning = message;
});
jss = _get__('create')(_get__('settings')).use(_get__('extend')(), _get__('nested')(), _get__('expand')());
});
afterEach(function () {
_get__('extend').__ResetDependency__('warning');
warning = undefined;
});
describe('simple extend', function () {
var sheet = void 0;
beforeEach(function () {
var a = { float: 'left' };
sheet = jss.createStyleSheet({
a: a,
b: {
extend: a,
width: '1px'
}
});
});
it('should extend', function () {
_get__('expect')(sheet.getRule('a')).to.not.be(undefined);
_get__('expect')(sheet.getRule('b')).to.not.be(undefined);
_get__('expect')(sheet.toString()).to.be('.a-id {\n' + ' float: left;\n' + '}\n' + '.b-id {\n' + ' float: left;\n' + ' width: 1px;\n' + '}');
});
});
describe('ensure override order', function () {
var sheet = void 0;
beforeEach(function () {
var a = {
float: 'left',
color: 'red'
};
sheet = jss.createStyleSheet({
a: {
extend: a,
float: 'right'
}
});
});
it('should have correct order', function () {
_get__('expect')(sheet.getRule('a')).to.not.be(undefined);
_get__('expect')(sheet.toString()).to.be('.a-id {\n' + ' float: right;\n' + ' color: red;\n' + '}');
});
});
describe('multi extend', function () {
var sheet = void 0;
beforeEach(function () {
var a = { float: 'left' };
var b = { position: 'absolute' };
sheet = jss.createStyleSheet({
c: {
extend: [a, b],
width: '1px'
}
});
});
it('should have correct output', function () {
_get__('expect')(sheet.getRule('c')).to.not.be(undefined);
_get__('expect')(sheet.toString()).to.be('.c-id {\n' + ' float: left;\n' + ' position: absolute;\n' + ' width: 1px;\n' + '}');
});
});
describe('nested extend 1', function () {
var sheet = void 0;
beforeEach(function () {
var c = { float: 'left' };
var b = { extend: c, display: 'none' };
sheet = jss.createStyleSheet({
a: {
extend: b,
width: '1px'
}
});
});
it('should should have correct output', function () {
_get__('expect')(sheet.getRule('a')).to.not.be(undefined);
_get__('expect')(sheet.toString()).to.be('.a-id {\n' + ' float: left;\n' + ' display: none;\n' + ' width: 1px;\n' + '}');
});
});
describe('nested extend 2', function () {
var sheet = void 0;
beforeEach(function () {
var b = {
'&:hover': {
float: 'left',
width: '3px'
}
};
sheet = jss.createStyleSheet({
a: {
extend: b,
width: '1px',
'&:hover': {
width: '2px',
height: '2px'
}
}
});
});
it('should have correct output', function () {
_get__('expect')(sheet.getRule('a')).to.not.be(undefined);
_get__('expect')(sheet.toString()).to.be('.a-id {\n' + ' width: 1px;\n' + '}\n' + '.a-id:hover {\n' + ' float: left;\n' + ' width: 2px;\n' + ' height: 2px;\n' + '}');
});
});
describe('deep nested extend', function () {
var sheet = void 0;
beforeEach(function () {
var a = {
'&:hover': { width: '5px', height: '5px' },
border: { width: '3px' }
};
var b = {
extend: a,
'&:hover': { width: '4px' },
border: { color: 'blue' }
};
var c = {
extend: b,
'&:hover': { height: '2px' }
};
var d = {
extend: c,
'&:hover': { width: '2px' }
};
sheet = jss.createStyleSheet({
a: {
extend: d,
width: '2px',
border: {
width: '1px',
color: 'red',
style: 'solid'
},
'&:hover': {
color: 'red'
}
}
});
});
it('should have correct output', function () {
_get__('expect')(sheet.getRule('a')).to.not.be(undefined);
_get__('expect')(sheet.toString()).to.be('.a-id {\n' + ' border: 1px solid red;\n' + ' width: 2px;\n' + '}\n' + '.a-id:hover {\n' + ' width: 2px;\n' + ' height: 2px;\n' + ' color: red;\n' + '}');
});
});
describe('multi child extend with css state', function () {
var sheet = void 0;
beforeEach(function () {
sheet = jss.createStyleSheet({
base: {
'&:hover': { width: '1px' }
},
child1: {
extend: 'base',
'&:hover': { width: '5px' }
},
child2: {
extend: 'base'
}
});
});
it('should have correct output', function () {
_get__('expect')(sheet.getRule('base')).to.not.be(undefined);
_get__('expect')(sheet.getRule('child1')).to.not.be(undefined);
_get__('expect')(sheet.getRule('child2')).to.not.be(undefined);
_get__('expect')(sheet.toString()).to.be('.base-id:hover {\n' + ' width: 1px;\n' + '}\n' + '.child1-id:hover {\n' + ' width: 5px;\n' + '}\n' + '.child2-id:hover {\n' + ' width: 1px;\n' + '}');
});
});
describe('extend using rule name', function () {
var sheet = void 0;
beforeEach(function () {
sheet = jss.createStyleSheet({
a: { float: 'left' },
b: {
extend: 'a',
width: '1px'
}
});
});
it('should have correct output', function () {
_get__('expect')(sheet.getRule('a')).to.not.be(undefined);
_get__('expect')(sheet.getRule('b')).to.not.be(undefined);
_get__('expect')(sheet.toString()).to.be('.a-id {\n' + ' float: left;\n' + '}\n' + '.b-id {\n' + ' float: left;\n' + ' width: 1px;\n' + '}');
});
});
describe('extend using rule name', function () {
var sheet = void 0;
beforeEach(function () {
sheet = jss.createStyleSheet({
a: {
extend: 'a',
width: '1px'
}
});
});
it('error if extend using same rule name', function () {
_get__('expect')(warning).to.be('[JSS] A rule tries to extend itself \r\n%s');
_get__('expect')(sheet.getRule('a')).to.not.be(undefined);
_get__('expect')(sheet.toString()).to.be('.a-id {\n' + ' width: 1px;\n' + '}');
});
});
});
function _getGlobalObject() {
try {
if (!!global) {
return global;
}
} catch (e) {
try {
if (!!window) {
return window;
}
} catch (e) {
return this;
}
}
}
;
var _RewireModuleId__ = null;
function _getRewireModuleId__() {
if (_RewireModuleId__ === null) {
var globalVariable = _getGlobalObject();
if (!globalVariable.__$$GLOBAL_REWIRE_NEXT_MODULE_ID__) {
globalVariable.__$$GLOBAL_REWIRE_NEXT_MODULE_ID__ = 0;
}
_RewireModuleId__ = __$$GLOBAL_REWIRE_NEXT_MODULE_ID__++;
}
return _RewireModuleId__;
}
function _getRewireRegistry__() {
var theGlobalVariable = _getGlobalObject();
if (!theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__) {
theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__ = Object.create(null);
}
return __$$GLOBAL_REWIRE_REGISTRY__;
}
function _getRewiredData__() {
var moduleId = _getRewireModuleId__();
var registry = _getRewireRegistry__();
var rewireData = registry[moduleId];
if (!rewireData) {
registry[moduleId] = Object.create(null);
rewireData = registry[moduleId];
}
return rewireData;
}
(function registerResetAll() {
var theGlobalVariable = _getGlobalObject();
if (!theGlobalVariable['__rewire_reset_all__']) {
theGlobalVariable['__rewire_reset_all__'] = function () {
theGlobalVariable.__$$GLOBAL_REWIRE_REGISTRY__ = Object.create(null);
};
}
})();
var INTENTIONAL_UNDEFINED = '__INTENTIONAL_UNDEFINED__';
var _RewireAPI__ = {};
(function () {
function addPropertyToAPIObject(name, value) {
Object.defineProperty(_RewireAPI__, name, {
value: value,
enumerable: false,
configurable: true
});
}
addPropertyToAPIObject('__get__', _get__);
addPropertyToAPIObject('__GetDependency__', _get__);
addPropertyToAPIObject('__Rewire__', _set__);
addPropertyToAPIObject('__set__', _set__);
addPropertyToAPIObject('__reset__', _reset__);
addPropertyToAPIObject('__ResetDependency__', _reset__);
addPropertyToAPIObject('__with__', _with__);
})();
function _get__(variableName) {
var rewireData = _getRewiredData__();
if (rewireData[variableName] === undefined) {
return _get_original__(variableName);
} else {
var value = rewireData[variableName];
if (value === INTENTIONAL_UNDEFINED) {
return undefined;
} else {
return value;
}
}
}
function _get_original__(variableName) {
switch (variableName) {
case 'extend':
return _index2['default'];
case 'create':
return _jss.create;
case 'settings':
return settings;
case 'nested':
return _jssNested2['default'];
case 'expand':
return _jssExpand2['default'];
case 'expect':
return _expect2['default'];
}
return undefined;
}
function _assign__(variableName, value) {
var rewireData = _getRewiredData__();
if (rewireData[variableName] === undefined) {
return _set_original__(variableName, value);
} else {
return rewireData[variableName] = value;
}
}
function _set_original__(variableName, _value) {
switch (variableName) {}
return undefined;
}
function _update_operation__(operation, variableName, prefix) {
var oldValue = _get__(variableName);
var newValue = operation === '++' ? oldValue + 1 : oldValue - 1;
_assign__(variableName, newValue);
return prefix ? newValue : oldValue;
}
function _set__(variableName, value) {
var rewireData = _getRewiredData__();
if ((typeof variableName === 'undefined' ? 'undefined' : _typeof(variableName)) === 'object') {
Object.keys(variableName).forEach(function (name) {
rewireData[name] = variableName[name];
});
} else {
if (value === undefined) {
rewireData[variableName] = INTENTIONAL_UNDEFINED;
} else {
rewireData[variableName] = value;
}
return function () {
_reset__(variableName);
};
}
}
function _reset__(variableName) {
var rewireData = _getRewiredData__();
delete rewireData[variableName];
if (Object.keys(rewireData).length == 0) {
delete _getRewireRegistry__()[_getRewireModuleId__];
}
;
}
function _with__(object) {
var rewireData = _getRewiredData__();
var rewiredVariableNames = Object.keys(object);
var previousValues = {};
function reset() {
rewiredVariableNames.forEach(function (variableName) {
rewireData[variableName] = previousValues[variableName];
});
}
return function (callback) {
rewiredVariableNames.forEach(function (variableName) {
previousValues[variableName] = rewireData[variableName];
rewireData[variableName] = object[variableName];
});
var result = callback();
if (!!result && typeof result.then == 'function') {
result.then(reset)['catch'](reset);
} else {
reset();
}
return result;
};
}
exports.__get__ = _get__;
exports.__GetDependency__ = _get__;
exports.__Rewire__ = _set__;
exports.__set__ = _set__;
exports.__ResetDependency__ = _reset__;
exports.__RewireAPI__ = _RewireAPI__;
exports['default'] = _RewireAPI__;

View File

@@ -0,0 +1,35 @@
const webpack = require('webpack')
const plugins = [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
__DEV__: process.env.NODE_ENV === 'development',
__TEST__: process.env.NODE_ENV === 'test'
})
]
if (process.env.NODE_ENV === 'production') {
plugins.push(new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
}))
}
module.exports = {
output: {
library: 'jssExtend',
libraryTarget: 'umd'
},
plugins,
module: {
loaders: [
{
loader: 'babel-loader',
test: /\.js$/,
exclude: /node_modules/
}
]
},
devtool: 'source-map'
}