Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "single-action": {
- "prefix": "actions",
- "body": [
- "export const ${1} = '@${TM_FILENAME_BASE/(.*)\\..+$/$1/}/${2}';",
- "export const $3 = ${4:()} => ({",
- "\ttype: ${1},${5}",
- "});",
- ""
- ]
- },
- "sigle-action-async": {
- "prefix": "actions",
- "body": [
- "export const ${1} = ${2:slug} => (dispatch, getState) => {",
- "\tconst { ${TM_FILENAME_BASE/(.*)\\..+$/$1/} } = getState();",
- "",
- "\tconst ${3} = propOr({ isFetching: false, lastUpdate: null }, ${2});",
- "\tconst ${4} = ${TM_FILENAME_BASE/(.*)\\..+$/$1/} |> ${3};",
- "",
- "\tif (shouldFetch(${4})) {",
- "\t\tdispatch(${5}(${2}));",
- "\t\ttry {",
- "\t\t\tconst response = API.${6}.${7}(${2:slug});",
- "\t\t\tdispatch(${8}(${2}, response.data));",
- "\t\t} catch (err) {",
- "\t\t\tdispatch(${9}(${2}, err));",
- "\t\t}",
- "\t}",
- "};",
- ""
- ]
- },
- "actions": {
- "prefix": "actions",
- "body": [
- "import API from '@monetus/resources';",
- "import { propOr } from 'ramda';",
- "",
- "import shouldFetch from './utils/shouldFetch';",
- "",
- "export const ${1:REQUEST_${TM_FILENAME_BASE/(.*)\\..+$/${1:/upcase}/}} = '@${TM_FILENAME_BASE/(.*)\\..+$/$1/}/request';",
- "export const ${2:request${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}} = () => ({",
- "\ttype: ${1}",
- "});",
- "",
- "export const ${3:RECEIVE_${TM_FILENAME_BASE/(.*)\\..+$/${1:/upcase}/}_SUCCESS} = '@${TM_FILENAME_BASE/(.*)\\..+$/$1/}/receiveSuccess';",
- "export const ${4:receive${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}Success} = ${TM_FILENAME_BASE/(.*)\\..+$/$1/} => ({",
- "\ttype: ${3},",
- "\tpayload: ${TM_FILENAME_BASE/(.*)\\..+$/$1/}",
- "});",
- "",
- "export const ${5:RECEIVE_${TM_FILENAME_BASE/(.*)\\..+$/${1:/upcase}/}_ERROR} = '@${TM_FILENAME_BASE/(.*)\\..+$/$1/}/receiveError';",
- "export const ${6:receive${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}Error} = err => ({",
- "\ttype: ${5},",
- "\tpayload: err",
- "});",
- "",
- "export const ${7:fetchAccount${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}} = ${8:slug} => (dispatch, getState) => {",
- "\tconst { ${TM_FILENAME_BASE/(.*)\\..+$/$1/} } = getState();",
- "",
- "\tconst ${9:get${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}OfAccount} = propOr({ isFetching: false, lastUpdate: null }, ${8});",
- "\tconst ${10:account${TM_FILENAME_BASE/(.*)\\..+$/${1:/capitalize}/}} = ${TM_FILENAME_BASE/(.*)\\..+$/$1/} |> ${9};",
- "",
- "\tif (shouldFetch(${10})) {",
- "\t\tdispatch(${2}(${8}));",
- "\t\ttry {",
- "\t\t\tconst response = API.accounts.${TM_FILENAME_BASE/(.*)\\..+$/$1/}(${8});",
- "\t\t\tdispatch(${4}(${8}, response.data));",
- "\t\t} catch (err) {",
- "\t\t\tdispatch(${6}(${8}, err));",
- "\t\t}",
- "\t}",
- "};",
- "",
- ]
- },
- "actions-test": {
- "prefix": "test-actions",
- "body": [
- "import {",
- "\t${1:fetchAccount${TM_FILENAME_BASE/^([^.]*).*/${1:/capitalize}/}},",
- "\t${2:RECEIVE_${TM_FILENAME_BASE/^([^.]*).*/${1:/upcase}/}_ERROR},",
- "\t${3:RECEIVE_${TM_FILENAME_BASE/^([^.]*).*/${1:/upcase}/}_SUCCESS},",
- "\t${4:receive${TM_FILENAME_BASE/^([^.]*).*/${1:/capitalize}/}Error},",
- "\t${5:receive${TM_FILENAME_BASE/^([^.]*).*/${1:/capitalize}/}Success},",
- "\t${6:REQUEST_${TM_FILENAME_BASE/^([^.]*).*/${1:/upcase}/}},",
- "\t${7:request${TM_FILENAME_BASE/^([^.]*).*/${1:/capitalize}/}}",
- "} from '../${TM_FILENAME_BASE/^([^.]*).*/$1/}.actions';",
- "",
- "describe('@actions/${TM_FILENAME_BASE/^([^.]*).*/$1/}', () => {",
- "\ttest('${7}() returns right object', () => {",
- "\t\texpect(${7}()).toEqual({",
- "\t\t\ttype: ${6},",
- "\t\t\tkey: undefined,",
- "\t\t});",
- "\t});",
- "",
- "\ttest('${5}() returns right object', () => {",
- "\t\texpect(${5}()).toEqual({",
- "\t\t\ttype: ${3},",
- "\t\t\tkey: undefined,",
- "\t\t\tpayload: undefined,",
- "\t\t});",
- "\t});",
- "",
- "\ttest('${4}() returns right object', () => {",
- "\t\texpect(${4}()).toEqual({",
- "\t\t\ttype: ${2},",
- "\t\t\tkey: undefined,",
- "\t\t\tpayload: undefined,",
- "\t\t});",
- "\t});",
- "",
- "\ttest('${1}() exists', () => {",
- "\t\texpect(${1}).toBeTruthy();",
- "\t});",
- "});",
- ""
- ]
- }
- }
Add Comment
Please, Sign In to add comment