Advertisement
Guest User

Untitled

a guest
Jul 20th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.46 KB | None | 0 0
  1. "use strict";
  2.  
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.combineMutations = exports.useCycle = exports.usePrepend = exports.useMap = exports.useFilter = exports.useConcat = exports.useAppend = exports.prepend = exports.mutate = exports.map = exports.filter = exports.direct = exports.cycle = exports.concat = exports.append = exports.prependState = exports.mutateState = exports.mapState = exports.filterState = exports.directState = exports.cycleState = exports.concatState = exports.appendState = exports.useToggle = exports.useIncrement = exports.useDecrement = exports.toggle = exports.increment = exports.decrement = exports.toggleState = exports.incrementState = exports.decrementState = exports.makeArgumentHook = exports.makeArgumentMutation = exports.makeStandaloneHook = exports.makeStandaloneMutation = void 0;
  7.  
  8. var _react = require("react");
  9.  
  10. function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
  11.  
  12. function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
  13.  
  14. function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
  15.  
  16. function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
  17.  
  18. function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
  19.  
  20. function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
  21.  
  22. function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
  23.  
  24. function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }
  25.  
  26. function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
  27.  
  28. 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; }
  29.  
  30. var makeStandaloneMutation = function makeStandaloneMutation(apply) {
  31. return function (field) {
  32. var mutation = function mutation(state) {
  33. return _defineProperty({}, field, apply(state[field]));
  34. };
  35.  
  36. mutation.standalone = true;
  37. return mutation;
  38. };
  39. };
  40.  
  41. exports.makeStandaloneMutation = makeStandaloneMutation;
  42.  
  43. var makeStandaloneHook = function makeStandaloneHook(apply, defaultValue) {
  44. return function () {
  45. var initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultValue;
  46.  
  47. var _useState = (0, _react.useState)(initialValue),
  48. _useState2 = _slicedToArray(_useState, 2),
  49. value = _useState2[0],
  50. setValue = _useState2[1];
  51.  
  52. var onMutate = (0, _react.useCallback)(function () {
  53. return setValue(apply);
  54. }, [setValue]);
  55. return [value, onMutate];
  56. };
  57. };
  58.  
  59. exports.makeStandaloneHook = makeStandaloneHook;
  60.  
  61. var makeArgumentMutation = function makeArgumentMutation(apply) {
  62. return function (field) {
  63. return function (object) {
  64. var mutation = apply(object);
  65. return function (state) {
  66. return _defineProperty({}, field, mutation(state[field]));
  67. };
  68. };
  69. };
  70. };
  71.  
  72. exports.makeArgumentMutation = makeArgumentMutation;
  73.  
  74. var makeArgumentHook = function makeArgumentHook(apply, defaultValue) {
  75. return function () {
  76. var initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultValue;
  77.  
  78. var _useState3 = (0, _react.useState)(initialValue),
  79. _useState4 = _slicedToArray(_useState3, 2),
  80. value = _useState4[0],
  81. setValue = _useState4[1];
  82.  
  83. var onMutate = (0, _react.useCallback)(function (object) {
  84. return setValue(apply(object));
  85. }, [setValue]);
  86. return [value, onMutate];
  87. };
  88. };
  89.  
  90. exports.makeArgumentHook = makeArgumentHook;
  91.  
  92. var decrementState = function decrementState(value) {
  93. return value - 1;
  94. };
  95.  
  96. exports.decrementState = decrementState;
  97.  
  98. var incrementState = function incrementState(value) {
  99. return value + 1;
  100. };
  101.  
  102. exports.incrementState = incrementState;
  103.  
  104. var toggleState = function toggleState(value) {
  105. return !value;
  106. };
  107.  
  108. exports.toggleState = toggleState;
  109. var decrement = makeStandaloneMutation(decrementState);
  110. exports.decrement = decrement;
  111. var increment = makeStandaloneMutation(incrementState);
  112. exports.increment = increment;
  113. var toggle = makeStandaloneMutation(toggleState);
  114. exports.toggle = toggle;
  115. var useDecrement = makeStandaloneHook(decrementState, 0);
  116. exports.useDecrement = useDecrement;
  117. var useIncrement = makeStandaloneHook(incrementState, 0);
  118. exports.useIncrement = useIncrement;
  119. var useToggle = makeStandaloneHook(toggleState, true);
  120. exports.useToggle = useToggle;
  121.  
  122. var appendState = function appendState(object) {
  123. return function (value) {
  124. return _toConsumableArray(value).concat([object]);
  125. };
  126. };
  127.  
  128. exports.appendState = appendState;
  129.  
  130. var concatState = function concatState(object) {
  131. return function (value) {
  132. return _toConsumableArray(value).concat(_toConsumableArray(object));
  133. };
  134. };
  135.  
  136. exports.concatState = concatState;
  137.  
  138. var cycleState = function cycleState(object) {
  139. return function (value) {
  140. return object[(object.indexOf(value) + 1) % object.length];
  141. };
  142. };
  143.  
  144. exports.cycleState = cycleState;
  145.  
  146. var directState = function directState(object) {
  147. return function () {
  148. return object;
  149. };
  150. };
  151.  
  152. exports.directState = directState;
  153.  
  154. var filterState = function filterState(callback) {
  155. return function (value) {
  156. return value.filter(callback);
  157. };
  158. };
  159.  
  160. exports.filterState = filterState;
  161.  
  162. var mapState = function mapState(callback) {
  163. return function (value) {
  164. return value.map(callback);
  165. };
  166. };
  167.  
  168. exports.mapState = mapState;
  169.  
  170. var mutateState = function mutateState(object) {
  171. return function (value) {
  172. return _objectSpread2({}, value, {}, object);
  173. };
  174. };
  175.  
  176. exports.mutateState = mutateState;
  177.  
  178. var prependState = function prependState(object) {
  179. return function (value) {
  180. return [object].concat(_toConsumableArray(value));
  181. };
  182. };
  183.  
  184. exports.prependState = prependState;
  185. var append = makeArgumentMutation(appendState);
  186. exports.append = append;
  187. var concat = makeArgumentMutation(concatState);
  188. exports.concat = concat;
  189. var cycle = makeArgumentMutation(cycleState);
  190. exports.cycle = cycle;
  191. var direct = makeArgumentMutation(directState);
  192. exports.direct = direct;
  193. var filter = makeArgumentMutation(filterState);
  194. exports.filter = filter;
  195. var map = makeArgumentMutation(mapState);
  196. exports.map = map;
  197. var mutate = makeArgumentMutation(mutateState);
  198. exports.mutate = mutate;
  199. var prepend = makeArgumentMutation(prependState);
  200. exports.prepend = prepend;
  201. var useAppend = makeArgumentHook(appendState, []);
  202. exports.useAppend = useAppend;
  203. var useConcat = makeArgumentHook(concatState, []);
  204. exports.useConcat = useConcat;
  205. var useFilter = makeArgumentHook(filterState, []);
  206. exports.useFilter = useFilter;
  207. var useMap = makeArgumentHook(mapState, []);
  208. exports.useMap = useMap;
  209. var usePrepend = makeArgumentHook(prependState, []);
  210. exports.usePrepend = usePrepend;
  211.  
  212. var useCycle = function useCycle(object) {
  213. var _useState5 = (0, _react.useState)(object[0]),
  214. _useState6 = _slicedToArray(_useState5, 2),
  215. value = _useState6[0],
  216. setValue = _useState6[1];
  217.  
  218. var cycleValue = (0, _react.useCallback)(cycleState(object), [object]);
  219. var onCycle = (0, _react.useCallback)(function () {
  220. return setValue(cycleValue);
  221. }, [cycleValue]);
  222. return [value, onCycle];
  223. };
  224.  
  225. exports.useCycle = useCycle;
  226.  
  227. var combineMutations = function combineMutations() {
  228. for (var _len = arguments.length, mutations = new Array(_len), _key = 0; _key < _len; _key++) {
  229. mutations[_key] = arguments[_key];
  230. }
  231.  
  232. var normalized = mutations.map(function (mutation) {
  233. if (typeof mutation === "function") {
  234. return mutation;
  235. }
  236.  
  237. var directMutation = function directMutation() {
  238. return mutation;
  239. };
  240.  
  241. directMutation.standalone = true;
  242. return directMutation;
  243. });
  244.  
  245. if (normalized.some(function (mutation) {
  246. return !mutation.standalone;
  247. })) {
  248. return function () {
  249. for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
  250. args[_key2] = arguments[_key2];
  251. }
  252.  
  253. return function (state) {
  254. var argIndex = -1;
  255. return normalized.reduce(function (nextState, mutation) {
  256. if (mutation.standalone) {
  257. return _objectSpread({}, nextState, {}, mutation(nextState));
  258. }
  259.  
  260. argIndex += 1;
  261. return _objectSpread({}, nextState, {}, mutation(args[argIndex])(nextState));
  262. }, state);
  263. };
  264. };
  265. }
  266.  
  267. return function (state) {
  268. return normalized.reduce(function (nextState, mutation) {
  269. return _objectSpread({}, nextState, {}, mutation(nextState));
  270. }, state);
  271. };
  272. };
  273.  
  274. exports.combineMutations = combineMutations;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement