@times-components/jest-serializer 3.3.1 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.4.1](https://github.com/newsuk/times-components/compare/@times-components/jest-serializer@3.4.0...@times-components/jest-serializer@3.4.1) (2022-10-13)
7
+
8
+ **Note:** Version bump only for package @times-components/jest-serializer
9
+
10
+
11
+
12
+
13
+
14
+ # [3.4.0](https://github.com/newsuk/times-components/compare/@times-components/jest-serializer@3.3.1...@times-components/jest-serializer@3.4.0) (2022-08-18)
15
+
16
+
17
+ ### Features
18
+
19
+ * **TDP-1712:** remove react-native foreverrrrr ([#3064](https://github.com/newsuk/times-components/issues/3064)) ([2a20cb5](https://github.com/newsuk/times-components/commit/2a20cb5abc10a4e7ca2d62487967f8fcf4eccb62)), closes [#3037](https://github.com/newsuk/times-components/issues/3037) [#3045](https://github.com/newsuk/times-components/issues/3045) [#3050](https://github.com/newsuk/times-components/issues/3050) [#3056](https://github.com/newsuk/times-components/issues/3056) [#3057](https://github.com/newsuk/times-components/issues/3057) [#3066](https://github.com/newsuk/times-components/issues/3066) [#3065](https://github.com/newsuk/times-components/issues/3065) [#3037](https://github.com/newsuk/times-components/issues/3037) [#3045](https://github.com/newsuk/times-components/issues/3045) [#3045](https://github.com/newsuk/times-components/issues/3045) [#3056](https://github.com/newsuk/times-components/issues/3056) [#3066](https://github.com/newsuk/times-components/issues/3066) [#3069](https://github.com/newsuk/times-components/issues/3069) [#3068](https://github.com/newsuk/times-components/issues/3068) [#3070](https://github.com/newsuk/times-components/issues/3070) [#3072](https://github.com/newsuk/times-components/issues/3072) [#3073](https://github.com/newsuk/times-components/issues/3073) [#3071](https://github.com/newsuk/times-components/issues/3071) [#3074](https://github.com/newsuk/times-components/issues/3074) [#3076](https://github.com/newsuk/times-components/issues/3076) [#3079](https://github.com/newsuk/times-components/issues/3079) [#3078](https://github.com/newsuk/times-components/issues/3078) [#3083](https://github.com/newsuk/times-components/issues/3083) [#3087](https://github.com/newsuk/times-components/issues/3087) [#3091](https://github.com/newsuk/times-components/issues/3091) [#3096](https://github.com/newsuk/times-components/issues/3096) [#3102](https://github.com/newsuk/times-components/issues/3102) [#3105](https://github.com/newsuk/times-components/issues/3105) [#3108](https://github.com/newsuk/times-components/issues/3108) [#3111](https://github.com/newsuk/times-components/issues/3111) [#3112](https://github.com/newsuk/times-components/issues/3112) [#3113](https://github.com/newsuk/times-components/issues/3113) [#3114](https://github.com/newsuk/times-components/issues/3114) [#3120](https://github.com/newsuk/times-components/issues/3120) [#3119](https://github.com/newsuk/times-components/issues/3119) [#3112](https://github.com/newsuk/times-components/issues/3112) [#3126](https://github.com/newsuk/times-components/issues/3126) [#3112](https://github.com/newsuk/times-components/issues/3112) [#3126](https://github.com/newsuk/times-components/issues/3126) [#3127](https://github.com/newsuk/times-components/issues/3127) [#3116](https://github.com/newsuk/times-components/issues/3116) [#3128](https://github.com/newsuk/times-components/issues/3128) [#3132](https://github.com/newsuk/times-components/issues/3132) [#3133](https://github.com/newsuk/times-components/issues/3133)
20
+
21
+
22
+
23
+
24
+
6
25
  ## [3.3.1](https://github.com/newsuk/times-components/compare/@times-components/jest-serializer@3.3.0...@times-components/jest-serializer@3.3.1) (2022-08-05)
7
26
 
8
27
  **Note:** Version bump only for package @times-components/jest-serializer
package/README.md CHANGED
@@ -8,8 +8,6 @@ in snapshots rather than other data structures.
8
8
  It's designed to aid you with your tests that use Jest with no other
9
9
  requirements \* other than importing the desired serializers for your needs.
10
10
 
11
- \* there's currently a dependency on `react-native-web` that needs removal.
12
-
13
11
  ### Supported
14
12
 
15
13
  - Jest@21.2.1
@@ -26,11 +24,10 @@ within your tests you can now use code that looks like this:
26
24
  ```javascript
27
25
  import {
28
26
  addSerializers,
29
- enzymeRenderedSerializer,
30
- minimalNative
27
+ enzymeRenderedSerializer
31
28
  } from "@times-components/jest-serializer";
32
29
 
33
- addSerializers(expect, enzymeRenderedSerializer(), minimalNative);
30
+ addSerializers(expect, enzymeRenderedSerializer());
34
31
  ```
35
32
 
36
33
  and any snapshot tests that run in the context of this serializer will generate
@@ -65,12 +62,9 @@ This allows us to only visit each node once and perform each transformation
65
62
  that have side-effects that another transformer was relying on e.g.
66
63
 
67
64
  ```javascript
68
- import { AppRegistry } from "react-native-web";
69
-
70
65
  compose(
71
66
  stylePrinter,
72
- minimalWebTransform,
73
- rnwTransform(AppRegistry, ["color"])
67
+ minimalWebTransform
74
68
  );
75
69
  ```
76
70
 
@@ -141,7 +135,7 @@ further.
141
135
 
142
136
  **hoistStyle: Serializer**
143
137
 
144
- While on Native it may make sense to show a snapshot with inline styles on web,
138
+ It makes sense to show a snapshot with inline styles on web,
145
139
  it's perhaps a little more idiomatic to see it as a `className` and the style to
146
140
  reside in a `style` block. This is a better reflection of how it'll be rendered
147
141
  on the platform (RNW magic) and keeps the snapshots a little leaner too.
@@ -163,31 +157,12 @@ addSerializers(expect, minimalise((value, key) => key === "style"));
163
157
 
164
158
  will strip all styles from your JSX nodes.
165
159
 
166
- ### minimalNative
167
-
168
- **minimalNative: Serializer**
169
-
170
- A convenience serializer to remove the plethora of `prop`s RN prints by default
171
- that may change between RN version but have no baring on your tests. In
172
- particular it removes `[Function]` values because they should be tested with
173
- either interactive tests and/or a type system rather than with snapshots.
174
-
175
- Refer to the code for the latest removed values.
176
-
177
- ### minimalRnw
178
-
179
- **minimalRnw(AppRegistry): Serializer**
180
-
181
- An example of perhaps where this package is likely to move to as patterns and
182
- common use cases appear. This combines `minimalWeb` with `rnw` much like a babel
183
- preset.
184
-
185
160
  ### minimalWeb
186
161
 
187
162
  **minimalWeb: Serializer**
188
163
 
189
164
  A convenience serializer to remove the plethora of `prop`s React prints by
190
- default that may change between React and/or react-native-web versions but have
165
+ default that may change React versions but have
191
166
  no baring on your tests. In particular it removes `[Function]` values because
192
167
  they should be tested with either interactive tests and/or a type system rather
193
168
  than with snapshots.
@@ -221,8 +196,7 @@ readability.
221
196
 
222
197
  **rnw(AppRegistry, string[]): Serializer**
223
198
 
224
- If you're using [react-native-web](https://github.com/necolas/react-native-web)
225
- and Jest snapshots on the web platform to ensure your components are rendering
199
+ If you're using Jest snapshots on the web platform to ensure your components are rendering
226
200
  the expected web output, there'll be a lot of `className` noise.
227
201
 
228
202
  Use this serializer with any style properties you're interested in, and when
@@ -230,12 +204,7 @@ Use this serializer with any style properties you're interested in, and when
230
204
  e.g.
231
205
 
232
206
  ```javascript
233
- import { AppRegistry } from "react-native-web";
234
-
235
- compose(
236
- stylePrinter,
237
- rnwTransform(AppRegistry, ["color", "fontSize"])
238
- );
207
+ compose(stylePrinter);
239
208
  ```
240
209
 
241
210
  will assign a generic `className` to the Node and print the styles with that
@@ -265,10 +234,7 @@ accumulated "bag" of styles and prints them in a `style` block
265
234
 
266
235
  ## Patterns and Practices
267
236
 
268
- As discussed in the blog post at the start of the document, there are currently
269
- numerous problems around "building trees" of React components and rendering them
270
- out nicely on both Native and Web platforms. Enzyme doesn't have the React
271
- Native adapter so using React Test Renderer tends to be your best bet. This
237
+ Using React Test Renderer tends to be your best bet. This
272
238
  doesn't give you "host" objects for the `replace` serializer leaving you with
273
239
  `jest.mock`. It's currently advisable to mock all your dependencies even if you
274
240
  have the best intentions with "integration" testing. They usually lead to a
@@ -295,9 +261,6 @@ which probably means they should be removed and one test should represent them.
295
261
  It's discretionary but probably means the snapshots aren't focused on the tests
296
262
  enough.
297
263
 
298
- On Native you're likely going to want to use `minimalNative`, `flattenStyle` and
299
- `minimalise` to focus the given tests.
300
-
301
264
  On web you're similarly going to be looking at `minimalWeb`, `hoistStyle`,
302
265
  `minimalise`, and `rnw`.
303
266
 
package/babel.config.js CHANGED
@@ -1,7 +1,11 @@
1
1
  module.exports = api => {
2
2
  api.cache(true);
3
3
  return {
4
- plugins: ["@babel/plugin-proposal-object-rest-spread"],
5
- presets: ["module:metro-react-native-babel-preset"]
4
+ plugins: ["babel-plugin-styled-components"],
5
+ presets: [
6
+ "@babel/preset-env",
7
+ "@babel/preset-react",
8
+ "@babel/preset-typescript"
9
+ ]
6
10
  };
7
11
  };
@@ -1 +1,42 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.flattenStyleTransform=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _traverse=_interopRequireDefault(require("./traverse"));var _printers=_interopRequireDefault(require("./printers"));function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});}keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}var flattenStyleTransform=function flattenStyleTransform(accum,node,props,children){var styles=props.style,other=(0,_objectWithoutProperties2.default)(props,["style"]);var style=props.style;return{accum:accum,children:children,node:node,props:_objectSpread(_objectSpread({},other),style)};};exports.flattenStyleTransform=flattenStyleTransform;var _default=(0,_traverse.default)(_printers.default,flattenStyleTransform);exports.default=_default;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.flattenStyleTransform = void 0;
7
+
8
+ var _traverse = _interopRequireDefault(require("./traverse"));
9
+
10
+ var _printers = _interopRequireDefault(require("./printers"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
+
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+
20
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
21
+
22
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
23
+
24
+ var flattenStyleTransform = function flattenStyleTransform(accum, node, props, children) {
25
+ var styles = props.style,
26
+ other = _objectWithoutProperties(props, ["style"]);
27
+
28
+ var style = props.style; // eslint-disable-line prefer-destructuring
29
+
30
+ return {
31
+ accum: accum,
32
+ children: children,
33
+ node: node,
34
+ props: _objectSpread(_objectSpread({}, other), style)
35
+ };
36
+ };
37
+
38
+ exports.flattenStyleTransform = flattenStyleTransform;
39
+
40
+ var _default = (0, _traverse["default"])(_printers["default"], flattenStyleTransform);
41
+
42
+ exports["default"] = _default;
@@ -1 +1,95 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.hoistStyleTransform=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _hyphenateStyleName=_interopRequireDefault(require("hyphenate-style-name"));var _traverse=_interopRequireDefault(require("./traverse"));var _printers=require("./printers");function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});}keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}var hyphenateStyles=function hyphenateStyles(styles){return Object.entries(styles).reduce(function(acc,_ref){var _ref2=(0,_slicedToArray2.default)(_ref,2),property=_ref2[0],value=_ref2[1];return _objectSpread(_objectSpread({},acc),{},(0,_defineProperty2.default)({},(0,_hyphenateStyleName.default)(property),value));},{});};var hoistStyleTransform=function hoistStyleTransform(accum,node,props,children){var style=props.style,className=props.className,other=(0,_objectWithoutProperties2.default)(props,["style","className"]);if(!style){return{accum:accum,children:children,node:node,props:props};}if(Object.keys(style).length===0){var omittedStyle=_objectSpread({},other);if(className){omittedStyle.className=className;}return{accum:accum,children:children,node:node,props:omittedStyle};}var inlineStyleClass="IS"+(Object.keys(accum.inlineStyles||{}).length+1);var newClassName=className?className+" "+inlineStyleClass:inlineStyleClass;return{accum:_objectSpread(_objectSpread({},accum),{},{inlineStyles:_objectSpread(_objectSpread({},accum.inlineStyles),{},(0,_defineProperty2.default)({},inlineStyleClass,hyphenateStyles(style)))}),children:children,node:node,props:_objectSpread({className:newClassName},other)};};exports.hoistStyleTransform=hoistStyleTransform;var _default=(0,_traverse.default)(_printers.stylePrinter,hoistStyleTransform);exports.default=_default;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.hoistStyleTransform = void 0;
7
+
8
+ var _hyphenateStyleName = _interopRequireDefault(require("hyphenate-style-name"));
9
+
10
+ var _traverse = _interopRequireDefault(require("./traverse"));
11
+
12
+ var _printers = require("./printers");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
17
+
18
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
19
+
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+
24
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+
26
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
+
28
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
29
+
30
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
31
+
32
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
33
+
34
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
35
+
36
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
37
+
38
+ var hyphenateStyles = function hyphenateStyles(styles) {
39
+ return Object.entries(styles).reduce(function (acc, _ref) {
40
+ var _ref2 = _slicedToArray(_ref, 2),
41
+ property = _ref2[0],
42
+ value = _ref2[1];
43
+
44
+ return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, (0, _hyphenateStyleName["default"])(property), value));
45
+ }, {});
46
+ };
47
+
48
+ var hoistStyleTransform = function hoistStyleTransform(accum, node, props, children) {
49
+ var style = props.style,
50
+ className = props.className,
51
+ other = _objectWithoutProperties(props, ["style", "className"]);
52
+
53
+ if (!style) {
54
+ return {
55
+ accum: accum,
56
+ children: children,
57
+ node: node,
58
+ props: props
59
+ };
60
+ }
61
+
62
+ if (Object.keys(style).length === 0) {
63
+ var omittedStyle = _objectSpread({}, other);
64
+
65
+ if (className) {
66
+ omittedStyle.className = className;
67
+ }
68
+
69
+ return {
70
+ accum: accum,
71
+ children: children,
72
+ node: node,
73
+ props: omittedStyle
74
+ };
75
+ }
76
+
77
+ var inlineStyleClass = "IS".concat(Object.keys(accum.inlineStyles || {}).length + 1);
78
+ var newClassName = className ? "".concat(className, " ").concat(inlineStyleClass) : inlineStyleClass;
79
+ return {
80
+ accum: _objectSpread(_objectSpread({}, accum), {}, {
81
+ inlineStyles: _objectSpread(_objectSpread({}, accum.inlineStyles), {}, _defineProperty({}, inlineStyleClass, hyphenateStyles(style)))
82
+ }),
83
+ children: children,
84
+ node: node,
85
+ props: _objectSpread({
86
+ className: newClassName
87
+ }, other)
88
+ };
89
+ };
90
+
91
+ exports.hoistStyleTransform = hoistStyleTransform;
92
+
93
+ var _default = (0, _traverse["default"])(_printers.stylePrinter, hoistStyleTransform);
94
+
95
+ exports["default"] = _default;
package/dist/index.js CHANGED
@@ -1 +1,193 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"minimalise",{enumerable:true,get:function get(){return _minimalise.default;}});Object.defineProperty(exports,"minimaliseTransform",{enumerable:true,get:function get(){return _minimalise.minimaliseTransform;}});Object.defineProperty(exports,"minimalWebTransform",{enumerable:true,get:function get(){return _minimalise.minimalWebTransform;}});Object.defineProperty(exports,"minimalWeb",{enumerable:true,get:function get(){return _minimalise.minimalWeb;}});Object.defineProperty(exports,"minimalNative",{enumerable:true,get:function get(){return _minimalise.minimalNative;}});Object.defineProperty(exports,"minimalNativeTransform",{enumerable:true,get:function get(){return _minimalise.minimalNativeTransform;}});Object.defineProperty(exports,"rnw",{enumerable:true,get:function get(){return _rnw.default;}});Object.defineProperty(exports,"rnwTransform",{enumerable:true,get:function get(){return _rnw.rnwTransform;}});Object.defineProperty(exports,"flattenStyle",{enumerable:true,get:function get(){return _flattenStyle.default;}});Object.defineProperty(exports,"flattenStyleTransform",{enumerable:true,get:function get(){return _flattenStyle.flattenStyleTransform;}});Object.defineProperty(exports,"replace",{enumerable:true,get:function get(){return _replace.default;}});Object.defineProperty(exports,"justChildren",{enumerable:true,get:function get(){return _replace.justChildren;}});Object.defineProperty(exports,"meltNative",{enumerable:true,get:function get(){return _replace.meltNative;}});Object.defineProperty(exports,"propsNoChildren",{enumerable:true,get:function get(){return _replace.propsNoChildren;}});Object.defineProperty(exports,"replaceTransform",{enumerable:true,get:function get(){return _replace.replaceTransform;}});Object.defineProperty(exports,"replaceProp",{enumerable:true,get:function get(){return _replaceProp.default;}});Object.defineProperty(exports,"replacePropTransform",{enumerable:true,get:function get(){return _replaceProp.replacePropTransform;}});Object.defineProperty(exports,"hoistStyle",{enumerable:true,get:function get(){return _hoistStyle.default;}});Object.defineProperty(exports,"hoistStyleTransform",{enumerable:true,get:function get(){return _hoistStyle.hoistStyleTransform;}});Object.defineProperty(exports,"print",{enumerable:true,get:function get(){return _printers.default;}});Object.defineProperty(exports,"stylePrinter",{enumerable:true,get:function get(){return _printers.stylePrinter;}});exports.minimalRnw=exports.enzymeTreeSerializer=exports.enzymeRootSerializer=exports.enzymeRenderedSerializer=exports.compose=exports.addSerializers=void 0;var _enzymeToJson=require("enzyme-to-json");var _minimalise=_interopRequireWildcard(require("./minimalise"));var _rnw=_interopRequireWildcard(require("./rnw"));var _flattenStyle=_interopRequireWildcard(require("./flatten-style"));var _replace=_interopRequireWildcard(require("./replace"));var _replaceProp=_interopRequireWildcard(require("./replace-prop"));var _hoistStyle=_interopRequireWildcard(require("./hoist-style"));var _traverse=_interopRequireDefault(require("./traverse"));var _printers=_interopRequireWildcard(require("./printers"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var compose=function compose(printer){for(var _len=arguments.length,transformers=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){transformers[_key-1]=arguments[_key];}return(0,_traverse.default)(printer,function(accum,node,props,children){return transformers.reduce(function(_ref,transformer){var a=_ref.accum,n=_ref.node,p=_ref.props,c=_ref.children;if(!n){return{accum:a,children:c,node:n,props:p};}return transformer(a,n,p,c);},{accum:accum,children:children,node:node,props:props});});};exports.compose=compose;var minimalRnw=function minimalRnw(AppRegistry,includeStyleProps){return compose(_printers.stylePrinter,_minimalise.minimalWebTransform,(0,_rnw.rnwTransform)(AppRegistry,includeStyleProps));};exports.minimalRnw=minimalRnw;var addSerializers=function addSerializers(expect){for(var _len2=arguments.length,serializers=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){serializers[_key2-1]=arguments[_key2];}serializers.forEach(function(serializer){return expect.addSnapshotSerializer(serializer);});};exports.addSerializers=addSerializers;var enzymeRenderedSerializer=function enzymeRenderedSerializer(){return(0,_enzymeToJson.createSerializer)({mode:"deep"});};exports.enzymeRenderedSerializer=enzymeRenderedSerializer;var enzymeRootSerializer=function enzymeRootSerializer(){return(0,_enzymeToJson.createSerializer)({mode:"shallow"});};exports.enzymeRootSerializer=enzymeRootSerializer;var enzymeTreeSerializer=function enzymeTreeSerializer(){return(0,_enzymeToJson.createSerializer)();};exports.enzymeTreeSerializer=enzymeTreeSerializer;
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "minimalise", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _minimalise["default"];
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "minimaliseTransform", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _minimalise.minimaliseTransform;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "minimalWebTransform", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _minimalise.minimalWebTransform;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "minimalWeb", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return _minimalise.minimalWeb;
30
+ }
31
+ });
32
+ Object.defineProperty(exports, "flattenStyle", {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _flattenStyle["default"];
36
+ }
37
+ });
38
+ Object.defineProperty(exports, "flattenStyleTransform", {
39
+ enumerable: true,
40
+ get: function get() {
41
+ return _flattenStyle.flattenStyleTransform;
42
+ }
43
+ });
44
+ Object.defineProperty(exports, "replace", {
45
+ enumerable: true,
46
+ get: function get() {
47
+ return _replace["default"];
48
+ }
49
+ });
50
+ Object.defineProperty(exports, "justChildren", {
51
+ enumerable: true,
52
+ get: function get() {
53
+ return _replace.justChildren;
54
+ }
55
+ });
56
+ Object.defineProperty(exports, "propsNoChildren", {
57
+ enumerable: true,
58
+ get: function get() {
59
+ return _replace.propsNoChildren;
60
+ }
61
+ });
62
+ Object.defineProperty(exports, "replaceTransform", {
63
+ enumerable: true,
64
+ get: function get() {
65
+ return _replace.replaceTransform;
66
+ }
67
+ });
68
+ Object.defineProperty(exports, "replaceProp", {
69
+ enumerable: true,
70
+ get: function get() {
71
+ return _replaceProp["default"];
72
+ }
73
+ });
74
+ Object.defineProperty(exports, "replacePropTransform", {
75
+ enumerable: true,
76
+ get: function get() {
77
+ return _replaceProp.replacePropTransform;
78
+ }
79
+ });
80
+ Object.defineProperty(exports, "hoistStyle", {
81
+ enumerable: true,
82
+ get: function get() {
83
+ return _hoistStyle["default"];
84
+ }
85
+ });
86
+ Object.defineProperty(exports, "hoistStyleTransform", {
87
+ enumerable: true,
88
+ get: function get() {
89
+ return _hoistStyle.hoistStyleTransform;
90
+ }
91
+ });
92
+ Object.defineProperty(exports, "print", {
93
+ enumerable: true,
94
+ get: function get() {
95
+ return _printers["default"];
96
+ }
97
+ });
98
+ Object.defineProperty(exports, "stylePrinter", {
99
+ enumerable: true,
100
+ get: function get() {
101
+ return _printers.stylePrinter;
102
+ }
103
+ });
104
+ exports.enzymeTreeSerializer = exports.enzymeRootSerializer = exports.enzymeRenderedSerializer = exports.compose = exports.addSerializers = void 0;
105
+
106
+ var _enzymeToJson = require("enzyme-to-json");
107
+
108
+ var _minimalise = _interopRequireWildcard(require("./minimalise"));
109
+
110
+ var _flattenStyle = _interopRequireWildcard(require("./flatten-style"));
111
+
112
+ var _replace = _interopRequireWildcard(require("./replace"));
113
+
114
+ var _replaceProp = _interopRequireWildcard(require("./replace-prop"));
115
+
116
+ var _hoistStyle = _interopRequireWildcard(require("./hoist-style"));
117
+
118
+ var _traverse = _interopRequireDefault(require("./traverse"));
119
+
120
+ var _printers = _interopRequireWildcard(require("./printers"));
121
+
122
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
123
+
124
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
125
+
126
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
127
+
128
+ var compose = function compose(printer) {
129
+ for (var _len = arguments.length, transformers = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
130
+ transformers[_key - 1] = arguments[_key];
131
+ }
132
+
133
+ return (0, _traverse["default"])(printer, function (accum, node, props, children) {
134
+ return transformers.reduce(function (_ref, transformer) {
135
+ var a = _ref.accum,
136
+ n = _ref.node,
137
+ p = _ref.props,
138
+ c = _ref.children;
139
+
140
+ if (!n) {
141
+ return {
142
+ accum: a,
143
+ children: c,
144
+ node: n,
145
+ props: p
146
+ };
147
+ }
148
+
149
+ return transformer(a, n, p, c);
150
+ }, {
151
+ accum: accum,
152
+ children: children,
153
+ node: node,
154
+ props: props
155
+ });
156
+ });
157
+ };
158
+
159
+ exports.compose = compose;
160
+
161
+ var addSerializers = function addSerializers(expect) {
162
+ for (var _len2 = arguments.length, serializers = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
163
+ serializers[_key2 - 1] = arguments[_key2];
164
+ }
165
+
166
+ serializers.forEach(function (serializer) {
167
+ return expect.addSnapshotSerializer(serializer);
168
+ });
169
+ };
170
+
171
+ exports.addSerializers = addSerializers;
172
+
173
+ var enzymeRenderedSerializer = function enzymeRenderedSerializer() {
174
+ return (0, _enzymeToJson.createSerializer)({
175
+ mode: "deep"
176
+ });
177
+ };
178
+
179
+ exports.enzymeRenderedSerializer = enzymeRenderedSerializer;
180
+
181
+ var enzymeRootSerializer = function enzymeRootSerializer() {
182
+ return (0, _enzymeToJson.createSerializer)({
183
+ mode: "shallow"
184
+ });
185
+ };
186
+
187
+ exports.enzymeRootSerializer = enzymeRootSerializer;
188
+
189
+ var enzymeTreeSerializer = function enzymeTreeSerializer() {
190
+ return (0, _enzymeToJson.createSerializer)();
191
+ };
192
+
193
+ exports.enzymeTreeSerializer = enzymeTreeSerializer;
@@ -1 +1,46 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.minimalNative=exports.minimalNativeTransform=exports.minimalWeb=exports.minimalWebTransform=exports.default=exports.minimaliseTransform=void 0;var _lodash=_interopRequireDefault(require("lodash.omitby"));var _traverse=_interopRequireDefault(require("./traverse"));var _printers=_interopRequireDefault(require("./printers"));var minimaliseTransform=function minimaliseTransform(excludeProps){return function(accum,node,props,children){return{accum:accum,children:children,node:node,props:(0,_lodash.default)(props,excludeProps)};};};exports.minimaliseTransform=minimaliseTransform;var _default=function _default(excludeProps){return(0,_traverse.default)(_printers.default,minimaliseTransform(excludeProps));};exports.default=_default;var isEmptyObject=function isEmptyObject(obj){return obj&&typeof obj==="object"&&Object.keys(obj).length===0;};var minimalWebTransform=minimaliseTransform(function(value,key){return value===undefined||typeof value==="function"||isEmptyObject(value)||key==="dir"||key==="data-focusable";});exports.minimalWebTransform=minimalWebTransform;var minimalWeb=(0,_traverse.default)(_printers.default,minimalWebTransform);exports.minimalWeb=minimalWeb;var redundantNativeKeys=new Set(["accessible","allowFontScaling","className","ellipsizeMode","href","isTVSelectable"]);var minimalNativeTransform=minimaliseTransform(function(value,key){return value===undefined||typeof value==="function"||isEmptyObject(value)||redundantNativeKeys.has(key);});exports.minimalNativeTransform=minimalNativeTransform;var minimalNative=(0,_traverse.default)(_printers.default,minimalNativeTransform);exports.minimalNative=minimalNative;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.minimalWeb = exports.minimalWebTransform = exports["default"] = exports.minimaliseTransform = void 0;
7
+
8
+ var _lodash = _interopRequireDefault(require("lodash.omitby"));
9
+
10
+ var _traverse = _interopRequireDefault(require("./traverse"));
11
+
12
+ var _printers = _interopRequireDefault(require("./printers"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
17
+
18
+ var minimaliseTransform = function minimaliseTransform(excludeProps) {
19
+ return function (accum, node, props, children) {
20
+ return {
21
+ accum: accum,
22
+ children: children,
23
+ node: node,
24
+ props: (0, _lodash["default"])(props, excludeProps)
25
+ };
26
+ };
27
+ };
28
+
29
+ exports.minimaliseTransform = minimaliseTransform;
30
+
31
+ var _default = function _default(excludeProps) {
32
+ return (0, _traverse["default"])(_printers["default"], minimaliseTransform(excludeProps));
33
+ };
34
+
35
+ exports["default"] = _default;
36
+
37
+ var isEmptyObject = function isEmptyObject(obj) {
38
+ return obj && _typeof(obj) === "object" && Object.keys(obj).length === 0;
39
+ };
40
+
41
+ var minimalWebTransform = minimaliseTransform(function (value, key) {
42
+ return value === undefined || typeof value === "function" || isEmptyObject(value) || key === "dir" || key === "data-focusable";
43
+ });
44
+ exports.minimalWebTransform = minimalWebTransform;
45
+ var minimalWeb = (0, _traverse["default"])(_printers["default"], minimalWebTransform);
46
+ exports.minimalWeb = minimalWeb;
package/dist/printers.js CHANGED
@@ -1 +1,84 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.stylePrinter=exports.default=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _css=_interopRequireDefault(require("css"));function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});}keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}var _default=function _default(serialize,accum,element){return serialize(element);};exports.default=_default;var getDeclarationsAst=function getDeclarationsAst(rules){return Object.entries(rules).map(function(_ref){var _ref2=(0,_slicedToArray2.default)(_ref,2),property=_ref2[0],value=_ref2[1];return{property:property,type:"declaration",value:value};});};var getRulesAst=function getRulesAst(jss){return Object.entries(jss).map(function(_ref3){var _ref4=(0,_slicedToArray2.default)(_ref3,2),selector=_ref4[0],rules=_ref4[1];return{declarations:getDeclarationsAst(rules),selectors:["."+selector],type:"rule"};});};var getStylesheetAst=function getStylesheetAst(jss){return{stylesheet:{rules:getRulesAst(jss)},type:"stylesheet"};};var stringifyJss=function stringifyJss(jss){return _css.default.stringify(getStylesheetAst(jss));};var stylePrinter=function stylePrinter(serialize,accum,element){var mergedStyles=_objectSpread(_objectSpread({},accum.rnw||{}),accum.inlineStyles||{});var styleBlock=Object.keys(mergedStyles).length>0?"<style>\n"+stringifyJss(mergedStyles)+"\n</style>\n\n":"";return""+styleBlock+serialize(element);};exports.stylePrinter=stylePrinter;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stylePrinter = exports["default"] = void 0;
7
+
8
+ var _css = _interopRequireDefault(require("css"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
19
+
20
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
+
22
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
+
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+
26
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
27
+
28
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
+
30
+ var _default = function _default(serialize, accum, element) {
31
+ return serialize(element);
32
+ };
33
+
34
+ exports["default"] = _default;
35
+
36
+ var getDeclarationsAst = function getDeclarationsAst(rules) {
37
+ return Object.entries(rules).map(function (_ref) {
38
+ var _ref2 = _slicedToArray(_ref, 2),
39
+ property = _ref2[0],
40
+ value = _ref2[1];
41
+
42
+ return {
43
+ property: property,
44
+ type: "declaration",
45
+ value: value
46
+ };
47
+ });
48
+ };
49
+
50
+ var getRulesAst = function getRulesAst(jss) {
51
+ return Object.entries(jss).map(function (_ref3) {
52
+ var _ref4 = _slicedToArray(_ref3, 2),
53
+ selector = _ref4[0],
54
+ rules = _ref4[1];
55
+
56
+ return {
57
+ declarations: getDeclarationsAst(rules),
58
+ selectors: [".".concat(selector)],
59
+ type: "rule"
60
+ };
61
+ });
62
+ };
63
+
64
+ var getStylesheetAst = function getStylesheetAst(jss) {
65
+ return {
66
+ stylesheet: {
67
+ rules: getRulesAst(jss)
68
+ },
69
+ type: "stylesheet"
70
+ };
71
+ };
72
+
73
+ var stringifyJss = function stringifyJss(jss) {
74
+ return _css["default"].stringify(getStylesheetAst(jss));
75
+ };
76
+
77
+ var stylePrinter = function stylePrinter(serialize, accum, element) {
78
+ var mergedStyles = _objectSpread(_objectSpread({}, accum.rnw || {}), accum.inlineStyles || {});
79
+
80
+ var styleBlock = Object.keys(mergedStyles).length > 0 ? "<style>\n".concat(stringifyJss(mergedStyles), "\n</style>\n\n") : "";
81
+ return "".concat(styleBlock).concat(serialize(element));
82
+ };
83
+
84
+ exports.stylePrinter = stylePrinter;
@@ -1 +1,59 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.replacePropTransform=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _traverse=_interopRequireDefault(require("./traverse"));var _printers=_interopRequireDefault(require("./printers"));function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});}keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}var replacePropTransform=function replacePropTransform(replacer){return function(accum,node,props,children){var transformedProps=Object.entries(props).reduce(function(tProps,_ref){var _ref2=(0,_slicedToArray2.default)(_ref,2),key=_ref2[0],value=_ref2[1];return _objectSpread(_objectSpread({},tProps),{},(0,_defineProperty2.default)({},key,replacer(value,key)));},{});return{accum:accum,children:children,node:node,props:transformedProps};};};exports.replacePropTransform=replacePropTransform;var _default=function _default(){var replacer=arguments.length>0&&arguments[0]!==undefined?arguments[0]:function(x){return x;};return(0,_traverse.default)(_printers.default,replacePropTransform(replacer));};exports.default=_default;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.replacePropTransform = void 0;
7
+
8
+ var _traverse = _interopRequireDefault(require("./traverse"));
9
+
10
+ var _printers = _interopRequireDefault(require("./printers"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
+
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+
20
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
+
22
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
+
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+
28
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
29
+
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
+
32
+ var replacePropTransform = function replacePropTransform(replacer) {
33
+ return function (accum, node, props, children) {
34
+ var transformedProps = Object.entries(props).reduce(function (tProps, _ref) {
35
+ var _ref2 = _slicedToArray(_ref, 2),
36
+ key = _ref2[0],
37
+ value = _ref2[1];
38
+
39
+ return _objectSpread(_objectSpread({}, tProps), {}, _defineProperty({}, key, replacer(value, key)));
40
+ }, {});
41
+ return {
42
+ accum: accum,
43
+ children: children,
44
+ node: node,
45
+ props: transformedProps
46
+ };
47
+ };
48
+ };
49
+
50
+ exports.replacePropTransform = replacePropTransform;
51
+
52
+ var _default = function _default() {
53
+ var replacer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (x) {
54
+ return x;
55
+ };
56
+ return (0, _traverse["default"])(_printers["default"], replacePropTransform(replacer));
57
+ };
58
+
59
+ exports["default"] = _default;
package/dist/replace.js CHANGED
@@ -1 +1,70 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.replaceTransform=exports.meltNative=exports.justChildren=exports.propsNoChildren=void 0;var _traverse=_interopRequireDefault(require("./traverse"));var _printers=_interopRequireDefault(require("./printers"));var propsNoChildren=function propsNoChildren(node,props){return{children:[],node:node,props:props};};exports.propsNoChildren=propsNoChildren;var justChildren=function justChildren(node,props,children){return{children:children};};exports.justChildren=justChildren;var meltNative={Text:justChildren,View:justChildren};exports.meltNative=meltNative;var replaceTransform=function replaceTransform(config){return function(accum,node,props,children){if(config[node.type]===undefined){return{accum:accum,children:children,node:node,props:props};}if(!config[node.type]){return{accum:accum,node:null};}var _config$node$type=config[node.type](node,props,children),tNode=_config$node$type.node,tProps=_config$node$type.props,tChildren=_config$node$type.children;return{accum:accum,children:tChildren,node:tNode,props:tProps};};};exports.replaceTransform=replaceTransform;var _default=function _default(config){return(0,_traverse.default)(_printers.default,replaceTransform(config));};exports.default=_default;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.replaceTransform = exports.justChildren = exports.propsNoChildren = void 0;
7
+
8
+ var _traverse = _interopRequireDefault(require("./traverse"));
9
+
10
+ var _printers = _interopRequireDefault(require("./printers"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+
14
+ var propsNoChildren = function propsNoChildren(node, props) {
15
+ return {
16
+ children: [],
17
+ node: node,
18
+ props: props
19
+ };
20
+ };
21
+
22
+ exports.propsNoChildren = propsNoChildren;
23
+
24
+ var justChildren = function justChildren(node, props, children) {
25
+ return {
26
+ children: children
27
+ };
28
+ };
29
+
30
+ exports.justChildren = justChildren;
31
+
32
+ var replaceTransform = function replaceTransform(config) {
33
+ return function (accum, node, props, children) {
34
+ if (config[node.type] === undefined) {
35
+ return {
36
+ accum: accum,
37
+ children: children,
38
+ node: node,
39
+ props: props
40
+ };
41
+ }
42
+
43
+ if (!config[node.type]) {
44
+ return {
45
+ accum: accum,
46
+ node: null
47
+ };
48
+ }
49
+
50
+ var _config$node$type = config[node.type](node, props, children),
51
+ tNode = _config$node$type.node,
52
+ tProps = _config$node$type.props,
53
+ tChildren = _config$node$type.children;
54
+
55
+ return {
56
+ accum: accum,
57
+ children: tChildren,
58
+ node: tNode,
59
+ props: tProps
60
+ };
61
+ };
62
+ };
63
+
64
+ exports.replaceTransform = replaceTransform;
65
+
66
+ var _default = function _default(config) {
67
+ return (0, _traverse["default"])(_printers["default"], replaceTransform(config));
68
+ };
69
+
70
+ exports["default"] = _default;
package/dist/rnw.js CHANGED
@@ -1 +1,197 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.rnwTransform=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _server=_interopRequireDefault(require("react-dom/server"));var _css=_interopRequireDefault(require("css"));var _lodash=_interopRequireDefault(require("lodash.isequal"));var _traverse=_interopRequireDefault(require("./traverse"));var _printers=require("./printers");function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});}keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}var cleanClassNames=function cleanClassNames(names){var className=(names||"").replace(/rn-[^-^ ]+-[^-^ ]+/g,"").replace(/[ ]+/g," ").trim();return className.length?{className:className}:{};};var mergeStyles=function mergeStyles(style,_ref){var property=_ref.property,value=_ref.value;return _objectSpread(_objectSpread({},style),{},(0,_defineProperty2.default)({},property,value));};var mergeStylesToClassNames=function mergeStylesToClassNames(classMap,node){if(node.type!=="rule"){return classMap;}var className=node.selectors[0].slice(1);return _objectSpread(_objectSpread({},classMap),{},(0,_defineProperty2.default)({},className,node.declarations.reduce(mergeStyles,{})));};var getStyleSheet=function getStyleSheet(AppRegistry){AppRegistry.registerComponent("App",function(){return function(){};});var _AppRegistry$getAppli=AppRegistry.getApplication("App"),getStyleElement=_AppRegistry$getAppli.getStyleElement;var ssString=_server.default.renderToStaticMarkup(getStyleElement());var _ssString$match=ssString.match(/<style.*>(.*)<\/style>/s),_ssString$match2=(0,_slicedToArray2.default)(_ssString$match,2),match=_ssString$match2[1];if(!match){return{};}var ast=_css.default.parse(match);if(ast.stylesheet.parsingErrors.length>0){return{};}return ast.stylesheet.rules.reduce(mergeStylesToClassNames,{});};var classNamesToStyles=function classNamesToStyles(AppRegistry,className){if(!className){return{};}var ss=getStyleSheet(AppRegistry);return className.split(" ").reduce(function(m,c){return _objectSpread(_objectSpread({},m),{},(0,_defineProperty2.default)({},c,ss[c]));},{});};var filterNames=function filterNames(className,toInclude){if(!className){return[];}return className.split(" ").filter(function(c){var _c$split=c.split("-"),_c$split2=(0,_slicedToArray2.default)(_c$split,2),prop=_c$split2[1];return toInclude.has(prop);});};var findStyle=function findStyle(){var rnwStyles=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var style=arguments.length>1?arguments[1]:undefined;var kv=Object.entries(rnwStyles);for(var i=0;i<kv.length;i+=1){var _kv$i=(0,_slicedToArray2.default)(kv[i],2),key=_kv$i[0],value=_kv$i[1];if((0,_lodash.default)(value,style)){return key;}}return null;};var updateMap=function updateMap(cssStyles,styleMap,classNames){if(classNames.length===0){return{key:null,styleMap:styleMap};}var mergedStyle=classNames.reduce(function(m,c){if(cssStyles[c]){return _objectSpread(_objectSpread({},m),cssStyles[c]);}return m;},{});var existingStyle=findStyle(styleMap.rnw,mergedStyle);if(existingStyle){return{key:existingStyle,styleMap:styleMap};}var key="S"+(Object.keys(styleMap.rnw||{}).length+1);return{key:key,styleMap:_objectSpread(_objectSpread({},styleMap),{},{rnw:_objectSpread(_objectSpread({},styleMap.rnw),{},(0,_defineProperty2.default)({},key,mergedStyle))})};};var rnwTransform=function rnwTransform(AppRegistry,includeStyleProps){return function(accum,node,props,children){var className=props.className,other=(0,_objectWithoutProperties2.default)(props,["className"]);var cssStyles=classNamesToStyles(AppRegistry,className);var filteredNames=filterNames(className,new Set(includeStyleProps));var updatedMap=updateMap(cssStyles,accum,filteredNames);var newProps=_objectSpread(_objectSpread({},other),cleanClassNames(className));if(updatedMap.key){newProps.className=newProps.className?newProps.className+" "+updatedMap.key:updatedMap.key;}return{accum:updatedMap.styleMap,children:children,node:node,props:newProps};};};exports.rnwTransform=rnwTransform;var _default=function _default(AppRegistry,includeStyleProps){return(0,_traverse.default)(_printers.stylePrinter,rnwTransform(AppRegistry,includeStyleProps));};exports.default=_default;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.rnwTransform = void 0;
7
+
8
+ var _server = _interopRequireDefault(require("react-dom/server"));
9
+
10
+ var _css = _interopRequireDefault(require("css"));
11
+
12
+ var _lodash = _interopRequireDefault(require("lodash.isequal"));
13
+
14
+ var _traverse = _interopRequireDefault(require("./traverse"));
15
+
16
+ var _printers = require("./printers");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
21
+
22
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
23
+
24
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
+
26
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
27
+
28
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
29
+
30
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
31
+
32
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
33
+
34
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
+
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
37
+
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
39
+
40
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
+
42
+ var cleanClassNames = function cleanClassNames(names) {
43
+ var className = (names || "").replace(/rn-[^-^ ]+-[^-^ ]+/g, "").replace(/[ ]+/g, " ").trim();
44
+ return className.length ? {
45
+ className: className
46
+ } : {};
47
+ };
48
+
49
+ var mergeStyles = function mergeStyles(style, _ref) {
50
+ var property = _ref.property,
51
+ value = _ref.value;
52
+ return _objectSpread(_objectSpread({}, style), {}, _defineProperty({}, property, value));
53
+ };
54
+
55
+ var mergeStylesToClassNames = function mergeStylesToClassNames(classMap, node) {
56
+ if (node.type !== "rule") {
57
+ return classMap;
58
+ }
59
+
60
+ var className = node.selectors[0].slice(1);
61
+ return _objectSpread(_objectSpread({}, classMap), {}, _defineProperty({}, className, node.declarations.reduce(mergeStyles, {})));
62
+ };
63
+
64
+ var getStyleSheet = function getStyleSheet(AppRegistry) {
65
+ AppRegistry.registerComponent("App", function () {
66
+ return function () {};
67
+ });
68
+
69
+ var _AppRegistry$getAppli = AppRegistry.getApplication("App"),
70
+ getStyleElement = _AppRegistry$getAppli.getStyleElement;
71
+
72
+ var ssString = _server["default"].renderToStaticMarkup(getStyleElement());
73
+
74
+ var _ssString$match = ssString.match(/<style[\s\S]*>([\s\S]*)<\/style>/),
75
+ _ssString$match2 = _slicedToArray(_ssString$match, 2),
76
+ match = _ssString$match2[1];
77
+
78
+ if (!match) {
79
+ return {};
80
+ }
81
+
82
+ var ast = _css["default"].parse(match);
83
+
84
+ if (ast.stylesheet.parsingErrors.length > 0) {
85
+ return {};
86
+ }
87
+
88
+ return ast.stylesheet.rules.reduce(mergeStylesToClassNames, {});
89
+ };
90
+
91
+ var classNamesToStyles = function classNamesToStyles(AppRegistry, className) {
92
+ if (!className) {
93
+ return {};
94
+ }
95
+
96
+ var ss = getStyleSheet(AppRegistry);
97
+ return className.split(" ").reduce(function (m, c) {
98
+ return _objectSpread(_objectSpread({}, m), {}, _defineProperty({}, c, ss[c]));
99
+ }, {});
100
+ };
101
+
102
+ var filterNames = function filterNames(className, toInclude) {
103
+ if (!className) {
104
+ return [];
105
+ }
106
+
107
+ return className.split(" ").filter(function (c) {
108
+ var _c$split = c.split("-"),
109
+ _c$split2 = _slicedToArray(_c$split, 2),
110
+ prop = _c$split2[1];
111
+
112
+ return toInclude.has(prop);
113
+ });
114
+ };
115
+
116
+ var findStyle = function findStyle() {
117
+ var rnwStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
118
+ var style = arguments.length > 1 ? arguments[1] : undefined;
119
+ var kv = Object.entries(rnwStyles);
120
+
121
+ for (var i = 0; i < kv.length; i += 1) {
122
+ var _kv$i = _slicedToArray(kv[i], 2),
123
+ key = _kv$i[0],
124
+ value = _kv$i[1];
125
+
126
+ if ((0, _lodash["default"])(value, style)) {
127
+ return key;
128
+ }
129
+ }
130
+
131
+ return null;
132
+ };
133
+
134
+ var updateMap = function updateMap(cssStyles, styleMap, classNames) {
135
+ if (classNames.length === 0) {
136
+ return {
137
+ key: null,
138
+ styleMap: styleMap
139
+ };
140
+ }
141
+
142
+ var mergedStyle = classNames.reduce(function (m, c) {
143
+ if (cssStyles[c]) {
144
+ return _objectSpread(_objectSpread({}, m), cssStyles[c]);
145
+ }
146
+
147
+ return m;
148
+ }, {});
149
+ var existingStyle = findStyle(styleMap.rnw, mergedStyle);
150
+
151
+ if (existingStyle) {
152
+ return {
153
+ key: existingStyle,
154
+ styleMap: styleMap
155
+ };
156
+ }
157
+
158
+ var key = "S".concat(Object.keys(styleMap.rnw || {}).length + 1);
159
+ return {
160
+ key: key,
161
+ styleMap: _objectSpread(_objectSpread({}, styleMap), {}, {
162
+ rnw: _objectSpread(_objectSpread({}, styleMap.rnw), {}, _defineProperty({}, key, mergedStyle))
163
+ })
164
+ };
165
+ };
166
+
167
+ var rnwTransform = function rnwTransform(AppRegistry, includeStyleProps) {
168
+ return function (accum, node, props, children) {
169
+ var className = props.className,
170
+ other = _objectWithoutProperties(props, ["className"]);
171
+
172
+ var cssStyles = classNamesToStyles(AppRegistry, className);
173
+ var filteredNames = filterNames(className, new Set(includeStyleProps));
174
+ var updatedMap = updateMap(cssStyles, accum, filteredNames);
175
+
176
+ var newProps = _objectSpread(_objectSpread({}, other), cleanClassNames(className));
177
+
178
+ if (updatedMap.key) {
179
+ newProps.className = newProps.className ? "".concat(newProps.className, " ").concat(updatedMap.key) : updatedMap.key;
180
+ }
181
+
182
+ return {
183
+ accum: updatedMap.styleMap,
184
+ children: children,
185
+ node: node,
186
+ props: newProps
187
+ };
188
+ };
189
+ };
190
+
191
+ exports.rnwTransform = rnwTransform;
192
+
193
+ var _default = function _default(AppRegistry, includeStyleProps) {
194
+ return (0, _traverse["default"])(_printers.stylePrinter, rnwTransform(AppRegistry, includeStyleProps));
195
+ };
196
+
197
+ exports["default"] = _default;
package/dist/traverse.js CHANGED
@@ -1 +1,148 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=_interopRequireDefault(require("react"));function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});}keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}var withoutProps=function withoutProps(node){return _objectSpread(_objectSpread({},node),{},{props:{}});};var isReactElement=function isReactElement(_ref){var _ref2=(0,_slicedToArray2.default)(_ref,2),key=_ref2[0],value=_ref2[1];return key!=="children"&&_react.default.isValidElement(value);};var mergeTransformation=function mergeTransformation(transform,transformElement){return function(transformed,_ref3){var _ref4=(0,_slicedToArray2.default)(_ref3,2),key=_ref4[0],prop=_ref4[1];var _transform=transform(transformed.accum,transformElement,prop),propAccum=_transform.accum,element=_transform.element;return{accum:propAccum,props:_objectSpread(_objectSpread({},transformed.props),{},(0,_defineProperty2.default)({},key,element))};};};var transformRenderProps=function transformRenderProps(transform,accum,transformElement,props){var renderProps=Object.entries(props).filter(isReactElement);if(renderProps.length===0){return{accum:accum,props:props};}return renderProps.reduce(mergeTransformation(transform,transformElement),{accum:accum,props:props});};var transformChildren=function transformChildren(transform,transformElement){return function(merged,child){var _transform2=transform(merged.accum,transformElement,child),accum=_transform2.accum,element=_transform2.element;return{accum:accum,children:merged.children.concat(element)};};};var transform=function transform(accum,transformElement,node){if(!node||!node.props)return{accum:accum,element:node};var _concat$reduce=[].concat(node.children||node.props.children||[]).reduce(transformChildren(transform,transformElement),{accum:accum,children:[]}),childAccum=_concat$reduce.accum,children=_concat$reduce.children;var trp=transformRenderProps(transform,childAccum||accum,transformElement,node.props);var u=transformElement(trp.accum,withoutProps(node),trp.props,children);if(!u.node){if(u.children){return{accum:u.accum,element:u.children.length===1?u.children[0]:u.children};}return{accum:u.accum,element:null};}return{accum:u.accum,element:_react.default.cloneElement.apply(_react.default,[u.node,u.props].concat((0,_toConsumableArray2.default)(u.children)))};};var test=function test(value){return!!value&&value.$$typeof===(typeof Symbol==="function"?Symbol.for:"@@for")("react.test.json");};var print=function print(printer,transformElement){return function(node,serialize){var _transform3=transform({},transformElement,node),accum=_transform3.accum,element=_transform3.element;return printer(serialize,accum,element);};};module.exports=function(printer,transformElement){return{print:print(printer,transformElement),test:test};};
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6
+
7
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
+
9
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+
11
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
12
+
13
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
14
+
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
+
17
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+
19
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
+
21
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
22
+
23
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
24
+
25
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
26
+
27
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
28
+
29
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
30
+
31
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
32
+
33
+ var withoutProps = function withoutProps(node) {
34
+ return _objectSpread(_objectSpread({}, node), {}, {
35
+ props: {}
36
+ });
37
+ };
38
+
39
+ var isReactElement = function isReactElement(_ref) {
40
+ var _ref2 = _slicedToArray(_ref, 2),
41
+ key = _ref2[0],
42
+ value = _ref2[1];
43
+
44
+ return key !== "children" && _react["default"].isValidElement(value);
45
+ };
46
+
47
+ var mergeTransformation = function mergeTransformation(transform, transformElement) {
48
+ return function (transformed, _ref3) {
49
+ var _ref4 = _slicedToArray(_ref3, 2),
50
+ key = _ref4[0],
51
+ prop = _ref4[1];
52
+
53
+ var _transform = transform(transformed.accum, transformElement, prop),
54
+ propAccum = _transform.accum,
55
+ element = _transform.element;
56
+
57
+ return {
58
+ accum: propAccum,
59
+ props: _objectSpread(_objectSpread({}, transformed.props), {}, _defineProperty({}, key, element))
60
+ };
61
+ };
62
+ };
63
+
64
+ var transformRenderProps = function transformRenderProps(transform, accum, transformElement, props) {
65
+ var renderProps = Object.entries(props).filter(isReactElement);
66
+
67
+ if (renderProps.length === 0) {
68
+ return {
69
+ accum: accum,
70
+ props: props
71
+ };
72
+ }
73
+
74
+ return renderProps.reduce(mergeTransformation(transform, transformElement), {
75
+ accum: accum,
76
+ props: props
77
+ });
78
+ };
79
+
80
+ var transformChildren = function transformChildren(transform, transformElement) {
81
+ return function (merged, child) {
82
+ var _transform2 = transform(merged.accum, transformElement, child),
83
+ accum = _transform2.accum,
84
+ element = _transform2.element;
85
+
86
+ return {
87
+ accum: accum,
88
+ children: merged.children.concat(element)
89
+ };
90
+ };
91
+ };
92
+
93
+ var transform = function transform(accum, transformElement, node) {
94
+ if (!node || !node.props) return {
95
+ accum: accum,
96
+ element: node
97
+ };
98
+
99
+ var _concat$reduce = [].concat(node.children || node.props.children || []).reduce(transformChildren(transform, transformElement), {
100
+ accum: accum,
101
+ children: []
102
+ }),
103
+ childAccum = _concat$reduce.accum,
104
+ children = _concat$reduce.children;
105
+
106
+ var trp = transformRenderProps(transform, childAccum || accum, transformElement, node.props);
107
+ var u = transformElement(trp.accum, withoutProps(node), trp.props, children);
108
+
109
+ if (!u.node) {
110
+ if (u.children) {
111
+ return {
112
+ accum: u.accum,
113
+ element: u.children.length === 1 ? u.children[0] : u.children
114
+ };
115
+ }
116
+
117
+ return {
118
+ accum: u.accum,
119
+ element: null
120
+ };
121
+ }
122
+
123
+ return {
124
+ accum: u.accum,
125
+ element: _react["default"].cloneElement.apply(_react["default"], [u.node, u.props].concat(_toConsumableArray(u.children)))
126
+ };
127
+ };
128
+
129
+ var test = function test(value) {
130
+ return !!value && value.$$typeof === Symbol["for"]("react.test.json");
131
+ };
132
+
133
+ var print = function print(printer, transformElement) {
134
+ return function (node, serialize) {
135
+ var _transform3 = transform({}, transformElement, node),
136
+ accum = _transform3.accum,
137
+ element = _transform3.element;
138
+
139
+ return printer(serialize, accum, element);
140
+ };
141
+ };
142
+
143
+ module.exports = function (printer, transformElement) {
144
+ return {
145
+ print: print(printer, transformElement),
146
+ test: test
147
+ };
148
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@times-components/jest-serializer",
3
- "version": "3.3.1",
3
+ "version": "3.4.1",
4
4
  "description": "serializer",
5
5
  "main": "dist/index",
6
6
  "dev": "src/jest-serializer",
@@ -9,7 +9,7 @@
9
9
  "prettier:diff": "prettier --list-different '**/*.*'",
10
10
  "depcheck": "depcheck --ignores='@babel/*,babel-*,depcheck,eslint,identity-obj-proxy,jest,prettier,react-art,webpack*' --ignore-bin-package=false --skip-missing",
11
11
  "lint": "eslint . && yarn prettier:diff && yarn depcheck",
12
- "test:web": "jest --config='./jest.config.js'",
12
+ "test:web": "jest --config='./__tests__/jest.config.js'",
13
13
  "prepublishOnly": "yarn transpile",
14
14
  "cleanup-dist": "rm -rf dist",
15
15
  "transpile": "yarn cleanup-dist && babel src -d dist"
@@ -19,10 +19,7 @@
19
19
  "url": "git+https://github.com/newsuk/times-components.git"
20
20
  },
21
21
  "keywords": [
22
- "react-native-web",
23
22
  "react",
24
- "native",
25
- "web",
26
23
  "jest-serializer",
27
24
  "component"
28
25
  ],
@@ -34,22 +31,19 @@
34
31
  "devDependencies": {
35
32
  "@babel/core": "7.4.4",
36
33
  "@times-components/eslint-config-thetimes": "0.8.18",
34
+ "@times-components/jest-configurator-web": "0.8.0",
37
35
  "babel-jest": "24.8.0",
38
36
  "depcheck": "0.6.9",
39
37
  "enzyme": "3.9.0",
40
38
  "enzyme-adapter-react-16": "1.12.1",
41
39
  "eslint": "5.9.0",
42
- "identity-obj-proxy": "3.0.0",
43
40
  "jest": "24.8.0",
44
41
  "prettier": "1.14.3",
45
42
  "prop-types": "15.7.2",
46
- "react-art": "16.6.3",
47
- "react-native-web": "0.11.4",
48
43
  "react-test-renderer": "16.9.0"
49
44
  },
50
45
  "dependencies": {
51
- "@times-components/jest-configurator": "2.8.1",
52
- "@times-components/utils": "6.14.4",
46
+ "@times-components/utils": "6.15.1",
53
47
  "css": "^2.2.1",
54
48
  "enzyme-to-json": "3.3.5",
55
49
  "hyphenate-style-name": "1.0.2",
@@ -62,12 +56,10 @@
62
56
  },
63
57
  "peerDependencies": {
64
58
  "react": ">=16",
65
- "react-dom": ">=16",
66
- "react-native": ">=0.53.0",
67
- "react-native-web": "0.11.4"
59
+ "react-dom": ">=16"
68
60
  },
69
61
  "publishConfig": {
70
62
  "access": "public"
71
63
  },
72
- "gitHead": "fe60c81e878283bf0ca451dd4806232f6cd104ee"
64
+ "gitHead": "d33c3115e165e09794ffdfd7931e217620f7ce07"
73
65
  }
package/jest.config.js DELETED
@@ -1,3 +0,0 @@
1
- const jestConfigurator = require("@times-components/jest-configurator").default;
2
-
3
- module.exports = jestConfigurator("web", __dirname);