Skip to content

Commit f241bde

Browse files
committed
Merge conflict
2 parents 65453a5 + e28117f commit f241bde

File tree

15 files changed

+1130
-0
lines changed

15 files changed

+1130
-0
lines changed

dist/__test__/index.spec.js

Lines changed: 447 additions & 0 deletions
Large diffs are not rendered by default.

dist/adapter/cdn.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8+
9+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10+
11+
var CDN = function () {
12+
function CDN(opts) {
13+
_classCallCheck(this, CDN);
14+
15+
this.cdnRoot = opts.cdnRoot;
16+
}
17+
18+
_createClass(CDN, [{
19+
key: 'resolve',
20+
value: function resolve(styles, components) {
21+
var _this = this;
22+
23+
return Promise.all(styles.map(function (stylePath, index) {
24+
var filePath = _this.cdnRoot + '/' + stylePath;
25+
return Promise.resolve({
26+
componentName: components[index],
27+
error: null,
28+
success: true,
29+
path: filePath,
30+
content: '<link data-css-component="' + components[index] + '" rel="stylesheet" href="' + filePath + '">'
31+
});
32+
}));
33+
}
34+
}, {
35+
key: 'render',
36+
value: function render(rawResponse) {
37+
return rawResponse.filter(function (style) {
38+
return style.success;
39+
}).reduce(function (result, style) {
40+
return '' + result + style.content;
41+
}, '');
42+
}
43+
}]);
44+
45+
return CDN;
46+
}();
47+
48+
exports.default = CDN;
49+
module.exports = exports['default'];

dist/adapter/file.js

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8+
9+
var _util = require('util');
10+
11+
var _util2 = _interopRequireDefault(_util);
12+
13+
var _fs = require('fs');
14+
15+
var _fs2 = _interopRequireDefault(_fs);
16+
17+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18+
19+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20+
21+
var readFile = _util2.default.promisify(_fs2.default.readFile);
22+
23+
function fileExists(filePath) {
24+
try {
25+
return _fs2.default.statSync(filePath).isFile();
26+
} catch (err) {
27+
return false;
28+
}
29+
}
30+
31+
var FileSystem = function () {
32+
function FileSystem(opts) {
33+
_classCallCheck(this, FileSystem);
34+
35+
this.folderPath = opts.folderPath;
36+
this.inline = opts.inline;
37+
}
38+
39+
_createClass(FileSystem, [{
40+
key: 'resolve',
41+
value: function resolve(styles, components) {
42+
var _this = this;
43+
44+
return Promise.all(styles.map(function (stylePath, index) {
45+
var filePath = _this.folderPath + '/' + stylePath;
46+
if (fileExists(filePath)) {
47+
return readFile(filePath, 'utf8').then(function (content) {
48+
return {
49+
componentName: components[index],
50+
error: null,
51+
success: true,
52+
path: filePath,
53+
content: content
54+
};
55+
});
56+
}
57+
58+
return Promise.resolve({
59+
componentName: components[index],
60+
error: new Error('Component stylesheet does not exist'),
61+
success: false,
62+
path: filePath,
63+
content: ''
64+
});
65+
}));
66+
}
67+
}, {
68+
key: 'render',
69+
value: function render(rawResponse) {
70+
if (this.inline) {
71+
return rawResponse.filter(function (style) {
72+
return style.success;
73+
}).reduce(function (result, style) {
74+
return result + '<style data-css-component="' + style.componentName + '">' + style.content + '</style>';
75+
}, '').replace(/\r?\n|\r/g, '').trim();
76+
}
77+
78+
return rawResponse.filter(function (style) {
79+
return style.success;
80+
}).reduce(function (result, style) {
81+
return '' + result + style.content;
82+
}, '').replace(/\r?\n|\r/g, '').trim();
83+
}
84+
}]);
85+
86+
return FileSystem;
87+
}();
88+
89+
exports.default = FileSystem;
90+
module.exports = exports['default'];

dist/dynamic-container.js

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8+
9+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
10+
11+
var _react = require('react');
12+
13+
var _react2 = _interopRequireDefault(_react);
14+
15+
var _staticContainer = require('./static-container');
16+
17+
var _staticContainer2 = _interopRequireDefault(_staticContainer);
18+
19+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20+
21+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22+
23+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
24+
25+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
26+
27+
exports.default = function (Component, opts) {
28+
29+
var StaticContainer = (0, _staticContainer2.default)(Component, opts);
30+
31+
var Container = function (_StaticContainer) {
32+
_inherits(Container, _StaticContainer);
33+
34+
function Container() {
35+
_classCallCheck(this, Container);
36+
37+
return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));
38+
}
39+
40+
_createClass(Container, [{
41+
key: 'componentDidMount',
42+
value: function componentDidMount() {
43+
console.log('DynamicCSS');
44+
}
45+
}, {
46+
key: 'render',
47+
value: function render() {
48+
var safeProps = _extends({}, this.props);
49+
50+
return _react2.default.createElement(Component, safeProps);
51+
}
52+
}]);
53+
54+
return Container;
55+
}(StaticContainer);
56+
57+
Container.displayName = 'DynamicCSS';
58+
return Container;
59+
};
60+
61+
module.exports = exports['default'];

dist/index.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _staticContainer = require('./static-container');
8+
9+
Object.defineProperty(exports, 'StaticCSS', {
10+
enumerable: true,
11+
get: function get() {
12+
return _interopRequireDefault(_staticContainer).default;
13+
}
14+
});
15+
16+
var _dynamicContainer = require('./dynamic-container');
17+
18+
Object.defineProperty(exports, 'DynamicCSS', {
19+
enumerable: true,
20+
get: function get() {
21+
return _interopRequireDefault(_dynamicContainer).default;
22+
}
23+
});
24+
25+
var _resolver = require('./resolver');
26+
27+
Object.defineProperty(exports, 'Resolver', {
28+
enumerable: true,
29+
get: function get() {
30+
return _interopRequireDefault(_resolver).default;
31+
}
32+
});
33+
34+
var _file = require('./adapter/file');
35+
36+
Object.defineProperty(exports, 'FileSystemAdapter', {
37+
enumerable: true,
38+
get: function get() {
39+
return _interopRequireDefault(_file).default;
40+
}
41+
});
42+
43+
var _cdn = require('./adapter/cdn');
44+
45+
Object.defineProperty(exports, 'CDNAdapter', {
46+
enumerable: true,
47+
get: function get() {
48+
return _interopRequireDefault(_cdn).default;
49+
}
50+
});
51+
52+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

dist/resolver.js

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8+
9+
var _react = require('react');
10+
11+
var _react2 = _interopRequireDefault(_react);
12+
13+
var _reactTreeWalker = require('react-tree-walker');
14+
15+
var _reactTreeWalker2 = _interopRequireDefault(_reactTreeWalker);
16+
17+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18+
19+
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
20+
21+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22+
23+
var Resolver = function () {
24+
function Resolver(app, adapter) {
25+
_classCallCheck(this, Resolver);
26+
27+
this.app = app;
28+
this.adapter = adapter;
29+
}
30+
31+
_createClass(Resolver, [{
32+
key: 'resolve',
33+
value: function resolve() {
34+
var _this = this;
35+
36+
var styles = [];
37+
var components = [];
38+
39+
return (0, _reactTreeWalker2.default)(this.app, function (element, instance) {
40+
if (instance && instance.getStyles) {
41+
var stylesObject = instance.getStyles();
42+
var alreadyContainStyle = styles.some(function (e) {
43+
return stylesObject.stylePaths.includes(e);
44+
});
45+
46+
if (alreadyContainStyle) {
47+
return;
48+
}
49+
50+
styles = [].concat(_toConsumableArray(styles), _toConsumableArray(stylesObject.stylePaths));
51+
components = [].concat(_toConsumableArray(components), [stylesObject.componentName]);
52+
}
53+
}).then(function () {
54+
return _this.adapter.resolve(styles, components);
55+
});
56+
}
57+
}, {
58+
key: 'render',
59+
value: function render() {
60+
var _this2 = this;
61+
62+
return this.resolve().then(function (rawResponse) {
63+
return _this2.adapter.render(rawResponse);
64+
});
65+
}
66+
}]);
67+
68+
return Resolver;
69+
}();
70+
71+
exports.default = Resolver;
72+
module.exports = exports['default'];

0 commit comments

Comments
 (0)