{"_id":"@antondavidenko/fsm","_rev":"2-9b2d72fc1f41203a0fcecb47d124457f","name":"@antondavidenko/fsm","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@antondavidenko/fsm","version":"0.0.1","description":"Finite-state machine","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc"},"author":{"name":"Anton Davidenko"},"license":"MIT","devDependencies":{"typescript":"2.9.2"},"gitHead":"f30991f2525c994b5cb23681006266ab72468194","_id":"@antondavidenko/fsm@0.0.1","_nodeVersion":"12.16.1","_npmVersion":"6.14.2","dist":{"integrity":"sha512-tnaDg5EvLeX2st03SkqqMwb/yR88hVSgkRcMRnrlFqc7nxCcBm+q8C+XmaylESwo7490UONz4pZqIfcoGa68yw==","shasum":"731b9d8b0cb5acc007785b822ba1583d766c257b","tarball":"https://registry.npmjs.org/@antondavidenko/fsm/-/fsm-0.0.1.tgz","fileCount":44,"unpackedSize":37862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgczLqCRA9TVsSAnZWagAAoRsP/2qK4fH2fNE0fAoPbGKT\n1rIAcQsU28nIz4S4BJYsLMJaUCZdYsHFppSThuLvKzo36RImujzVDL0qeJYt\nwbCN9g6mIA0Odq7AHF19GsQcarY2rzPOSbKZIAcnk7p2qkXivv+W2zedLB+t\nbYU1Bg7eT2SW4xQ1UzhcdSKEaGyAHOTdLfox6Y1oi1foatn2+vsPj4qGdzzF\ncUMPXMDKaGTyx9u7PlgzWPH0nAc2y9K4SCJsMZ5x7XrEroBaN45xM+W1Kgpz\nyR2NlW+i04W9S7lH+MvKjVxpMcoEGx8/5BsNeKB+bObm8mbhiglZNuee/FX5\nsC6R3Wryf6Kv75iCbc5G2bb5WlawCqOBZdfm3mMGU8ATCrpJ4HtrKvOLbxtt\njj5XxTL1oAhJbCANP8Xfp3Fo9LodPjJyxKJ4OaeVM1aAHs00aaSOwlZiuWn7\nrx4pxzPSozh+zvPSjMyA7kGI2PCrK7CUeZQyg3G0FtwecsylK21sb7qfr8JE\nI9OGhkCw4xHGtZIC08V6ufKMZeYEPhyx5eMBrf/Sb6AtoxaCbCjyGe6dCc45\nb02WIcxGOQMCmF/xqGZqwhRpASRwb0VpdocFLrhKUzo8VSZWgK4zWIFE/IYO\nV/MwF4A5LA2rbXLWUfHMSuX9gEKbrqDNiELMPz4nesP7mpGPoCOZXSYqiiiC\n8vhc\r\n=dDxq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCo/ZTnZPBWeoBx1d9KyAAMD0NGY8RLzau7a3EId1RXPwIgX6aTcjiRbM5jGlJ4At/jp2yNc5A/bshsfj7jpWd7pD0="}]},"_npmUser":{"name":"antondavidenko","email":"anton.davidenko@gmail.com"},"directories":{},"maintainers":[{"name":"antondavidenko","email":"anton.davidenko@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fsm_0.0.1_1618162409704_0.7361782960231456"},"_hasShrinkwrap":false},"0.0.2":{"name":"@antondavidenko/fsm","version":"0.0.2","description":"Finite-state machine","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc"},"author":{"name":"Anton Davidenko"},"license":"MIT","devDependencies":{"typescript":"2.9.2"},"gitHead":"f30991f2525c994b5cb23681006266ab72468194","_id":"@antondavidenko/fsm@0.0.2","_nodeVersion":"12.16.1","_npmVersion":"6.14.2","dist":{"integrity":"sha512-f5vJfdUgsqqolyLb4qplZgYxeRl23vpx6FN2o7IlzynMrjxzOBDmF0dFWHo2exidQA5/gWrQtho0/x+mfUUfZw==","shasum":"dd980d7e87b9099031578b17b0d4f3ed11cd376e","tarball":"https://registry.npmjs.org/@antondavidenko/fsm/-/fsm-0.0.2.tgz","fileCount":44,"unpackedSize":37949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgc06aCRA9TVsSAnZWagAAiwgP/25YwZ/xPfvzkNchtsfE\nr2jP3Zd7FR2/8RjrF4bKagq+VjSCR6aoU7s78Q0RDbosC5tZquY2q0M8fZ8X\nAXhA0SF/ICkf+qFz9G3sjKN4SsSdY4nFqWI0kT5IiWqavHZpzbiKCgz2hVcd\nO7JBOBsJ91xAWQSFiVVQTJ17IHvbGZZrf8AqWjaQCnSTBAe2ZZ9fRD8I24j6\nxbJbT+b5dK07xeFapU9MM+HJ3/HgIT0DGWzkS/Ky7Kd8e/aE7pSeJ1WT5Jgh\nTO586giShX6IgweSLFi0EeOzlUfguHmg2lqRdvfbbKhybIw4aK/3PkF5ovnP\nmD7vA4cLa+PrlV8Dol0gyxBmIbIeN1GWqUeIgPZwRgg4WNctL5wf11jXgjHU\nonsFJK235NjPNC5Yj5aX5SoKn5q/Xpxt3Md1UDKy6I6Hzl78nx9R+JZErF44\n0mW2gWh4XC1m4HPAq+3lr2g1KOcAydRkOwrwL7m0NtZTqjptxxUuJBq5JKdF\nuQtf1sWor5D4HScqZvbZPX4lqZLK2O256yjZMGuxszYnnzSkGifpWFKB9PXv\nJH8jSgCPYOrZPERBalkQDzw/egWU9wPWLlJg/pgb9S8E8rKQgURnFklsEfQu\n57VJS6/0uwVI7g5Ovx7JrQW/fU0wp7Nn1/9g/aN8Ae4pW6SXs8smHD1byz7f\nzmmg\r\n=ga0B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQkn20V/NrjnLgxJmLWV8LcrO9qf5BeqtdmjdkHxl9CAiALggp4xqTbuFSK+B74OYhv9e6XpKKXvVyxwT+KtroRRg=="}]},"_npmUser":{"name":"antondavidenko","email":"anton.davidenko@gmail.com"},"directories":{},"maintainers":[{"name":"antondavidenko","email":"anton.davidenko@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fsm_0.0.2_1618169497637_0.5014136745174322"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-11T17:33:29.652Z","0.0.1":"2021-04-11T17:33:29.864Z","modified":"2022-04-04T14:23:07.005Z","0.0.2":"2021-04-11T19:31:37.793Z"},"maintainers":[{"name":"antondavidenko","email":"anton.davidenko@gmail.com"}],"description":"Finite-state machine","author":{"name":"Anton Davidenko"},"license":"MIT","readme":"# WHAT?\n### Solution based on combination of design patterns\n\n- State: https://en.wikipedia.org/wiki/State_pattern\n\n- State Machines: https://www.ni.com/en-ie/support/documentation/supplemental/16/simple-state-machine-template-documentation.html#section–843084029\n\nMain idea is organise logic of your game flow similar to flowchart ( https://en.wikipedia.org/wiki/Flowchart )\n\n# WHY?\n- avoiding superclass anti pattern in file who connect all components\n\n- makes flow of your game easy to read and modify (like work with blocks in flowchart)\n\n# HOW?\n- Step1: Define states end event you will be use in your game flow `example\\model\\fsm\\fsm.enum.ts`\n- Step2: Define flow in file: `example\\model\\fsm\\fsm.config.ts`\n- Step3: Define context and create in the main file: `example\\main.ts`\n- Step4: Define state actions folder: `example\\states`\n\nThere are 5 optional actions for each sete:\n```\ntouchMove\ntouchStart\ntouchEnd\nstateStart\nstateEnd \n```\n- Step5: Setup and start fsm in the main file","readmeFilename":"readme.md"}