Guest User

Untitled

a guest
Apr 20th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. {
  2. "single-action": {
  3. "prefix": "actions",
  4. "body": [
  5. "export const ${1} = '@${TM_FILENAME_BASE/(.*)\\..+$/$1/}/${2}';",
  6. "export const $3 = ${4:()} => ({",
  7. "\ttype: ${1},${5}",
  8. "});",
  9. ""
  10. ]
  11. },
  12. "sigle-action-async": {
  13. "prefix": "actions",
  14. "body": [
  15. "export const ${1} = ${2:slug} => (dispatch, getState) => {",
  16. "\tconst { ${TM_FILENAME_BASE/(.*)\\..+$/$1/} } = getState();",
  17. "",
  18. "\tconst ${3} = propOr({ isFetching: false, lastUpdate: null }, ${2});",
  19. "\tconst ${4} = ${TM_FILENAME_BASE/(.*)\\..+$/$1/} |> ${3};",
  20. "",
  21. "\tif (shouldFetch(${4})) {",
  22. "\t\tdispatch(${5}(${2}));",
  23. "\t\ttry {",
  24. "\t\t\tconst response = API.${6}.${7}(${2:slug});",
  25. "\t\t\tdispatch(${8}(${2}, response.data));",
  26. "\t\t} catch (err) {",
  27. "\t\t\tdispatch(${9}(${2}, err));",
  28. "\t\t}",
  29. "\t}",
  30. "};",
  31. ""
  32. ]
  33. },
  34. "actions": {
  35. "prefix": "actions",
  36. "body": [
  37. "import API from '@monetus/resources';",
  38. "import { propOr } from 'ramda';",
  39. "",
  40. "import shouldFetch from './utils/shouldFetch';",
  41. "",
  42. "export const ${1:REQUEST_${TM_FILENAME_BASE/(.*)\\..+$/${1:/upcase}/}} = '@${TM_FILENAME_BASE/(.*)\\..+$/$1/}/request';",
  43. "export const ${2:request${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}} = () => ({",
  44. "\ttype: ${1}",
  45. "});",
  46. "",
  47. "export const ${3:RECEIVE_${TM_FILENAME_BASE/(.*)\\..+$/${1:/upcase}/}_SUCCESS} = '@${TM_FILENAME_BASE/(.*)\\..+$/$1/}/receiveSuccess';",
  48. "export const ${4:receive${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}Success} = ${TM_FILENAME_BASE/(.*)\\..+$/$1/} => ({",
  49. "\ttype: ${3},",
  50. "\tpayload: ${TM_FILENAME_BASE/(.*)\\..+$/$1/}",
  51. "});",
  52. "",
  53. "export const ${5:RECEIVE_${TM_FILENAME_BASE/(.*)\\..+$/${1:/upcase}/}_ERROR} = '@${TM_FILENAME_BASE/(.*)\\..+$/$1/}/receiveError';",
  54. "export const ${6:receive${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}Error} = err => ({",
  55. "\ttype: ${5},",
  56. "\tpayload: err",
  57. "});",
  58. "",
  59. "export const ${7:fetchAccount${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}} = ${8:slug} => (dispatch, getState) => {",
  60. "\tconst { ${TM_FILENAME_BASE/(.*)\\..+$/$1/} } = getState();",
  61. "",
  62. "\tconst ${9:get${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}OfAccount} = propOr({ isFetching: false, lastUpdate: null }, ${8});",
  63. "\tconst ${10:account${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}} = ${TM_FILENAME_BASE/(.*)\\..+$/$1/} |> ${9};",
  64. "",
  65. "\tif (shouldFetch(${10})) {",
  66. "\t\tdispatch(${2}(${8}));",
  67. "\t\ttry {",
  68. "\t\t\tconst response = API.accounts.${TM_FILENAME_BASE/(.*)\\..+$/$1/}(${8});",
  69. "\t\t\tdispatch(${4}(${8}, response.data));",
  70. "\t\t} catch (err) {",
  71. "\t\t\tdispatch(${6}(${8}, err));",
  72. "\t\t}",
  73. "\t}",
  74. "};",
  75. "",
  76. ]
  77. },
  78. "actions-test": {
  79. "prefix": "test-actions",
  80. "body": [
  81. "import {",
  82. "\t${1:fetchAccount${TM_FILENAME_BASE/^([^.]*).*/${1:/capitalize}/}},",
  83. "\t${2:RECEIVE_${TM_FILENAME_BASE/^([^.]*).*/${1:/upcase}/}_ERROR},",
  84. "\t${3:RECEIVE_${TM_FILENAME_BASE/^([^.]*).*/${1:/upcase}/}_SUCCESS},",
  85. "\t${4:receive${TM_FILENAME_BASE/^([^.]*).*/${1:/capitalize}/}Error},",
  86. "\t${5:receive${TM_FILENAME_BASE/^([^.]*).*/${1:/capitalize}/}Success},",
  87. "\t${6:REQUEST_${TM_FILENAME_BASE/^([^.]*).*/${1:/upcase}/}},",
  88. "\t${7:request${TM_FILENAME_BASE/^([^.]*).*/${1:/capitalize}/}}",
  89. "} from '../${TM_FILENAME_BASE/^([^.]*).*/$1/}.actions';",
  90. "",
  91. "describe('@actions/${TM_FILENAME_BASE/^([^.]*).*/$1/}', () => {",
  92. "\ttest('${7}() returns right object', () => {",
  93. "\t\texpect(${7}()).toEqual({",
  94. "\t\t\ttype: ${6},",
  95. "\t\t\tkey: undefined,",
  96. "\t\t});",
  97. "\t});",
  98. "",
  99. "\ttest('${5}() returns right object', () => {",
  100. "\t\texpect(${5}()).toEqual({",
  101. "\t\t\ttype: ${3},",
  102. "\t\t\tkey: undefined,",
  103. "\t\t\tpayload: undefined,",
  104. "\t\t});",
  105. "\t});",
  106. "",
  107. "\ttest('${4}() returns right object', () => {",
  108. "\t\texpect(${4}()).toEqual({",
  109. "\t\t\ttype: ${2},",
  110. "\t\t\tkey: undefined,",
  111. "\t\t\tpayload: undefined,",
  112. "\t\t});",
  113. "\t});",
  114. "",
  115. "\ttest('${1}() exists', () => {",
  116. "\t\texpect(${1}).toBeTruthy();",
  117. "\t});",
  118. "});",
  119. ""
  120. ]
  121. }
  122. }
Add Comment
Please, Sign In to add comment