Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const releasesTrackerMachine = Machine({
- key: 'releasesTracker',
- initial: 'setup',
- context: {
- releases: null,
- error: null
- },
- states: {
- setup: {
- type: 'parallel',
- states: {
- packageJsonUpload: {
- initial: 'notUploaded',
- states: {
- notUploaded: {
- on: {
- UPLOAD_PACKAGE_JSON: 'uploaded'
- }
- },
- uploaded: {
- type: 'final'
- }
- }
- },
- yarnLockUpload: {
- initial: 'notUploaded',
- states: {
- notUploaded: {
- on: {
- UPLOAD_YARN_LOCK: 'uploaded'
- }
- },
- uploaded: {
- type: 'final'
- }
- }
- }
- },
- onDone: 'releases'
- },
- releases: {
- initial: 'start',
- states: {
- start: {
- on: {
- FETCH_RELEASES: 'fetching'
- }
- },
- fetching: {
- invoke: {
- id: 'fetchReleases',
- src: (context, event) =>
- new Promise((resolve) =>
- resolve({})
- ),
- onDone: {
- target: 'fetched',
- actions: assign({
- releases: (context, event) =>
- event.data
- })
- },
- onError: {
- target: 'error',
- actions: assign({
- error: (context, event) =>
- event.data
- })
- }
- },
- on: {
- SUCCESS_FETCHING_RELEASES: 'fetched',
- ERROR_FETCHING_RELEASES: 'error'
- }
- },
- fetched: {},
- error: {}
- }
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement