{"action":"created","issue":{"url":"https://api.github.com/repos/mobxjs/mobx-state-tree/issues/947","repository_url":"https://api.github.com/repos/mobxjs/mobx-state-tree","labels_url":"https://api.github.com/repos/mobxjs/mobx-state-tree/issues/947/labels{/name}","comments_url":"https://api.github.com/repos/mobxjs/mobx-state-tree/issues/947/comments","events_url":"https://api.github.com/repos/mobxjs/mobx-state-tree/issues/947/events","html_url":"https://github.com/mobxjs/mobx-state-tree/issues/947","id":344879949,"node_id":"MDU6SXNzdWUzNDQ4Nzk5NDk=","number":947,"title":"Kill pre / post processing of snapshots?","user":{"login":"mweststrate","id":1820292,"node_id":"MDQ6VXNlcjE4MjAyOTI=","avatar_url":"https://avatars0.githubusercontent.com/u/1820292?v=4","gravatar_id":"","url":"https://api.github.com/users/mweststrate","html_url":"https://github.com/mweststrate","followers_url":"https://api.github.com/users/mweststrate/followers","following_url":"https://api.github.com/users/mweststrate/following{/other_user}","gists_url":"https://api.github.com/users/mweststrate/gists{/gist_id}","starred_url":"https://api.github.com/users/mweststrate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mweststrate/subscriptions","organizations_url":"https://api.github.com/users/mweststrate/orgs","repos_url":"https://api.github.com/users/mweststrate/repos","events_url":"https://api.github.com/users/mweststrate/events{/privacy}","received_events_url":"https://api.github.com/users/mweststrate/received_events","type":"User","site_admin":false},"labels":[{"id":659796982,"node_id":"MDU6TGFiZWw2NTk3OTY5ODI=","url":"https://api.github.com/repos/mobxjs/mobx-state-tree/labels/breaking%20change","name":"breaking change","color":"fbca04","default":false},{"id":578573815,"node_id":"MDU6TGFiZWw1Nzg1NzM4MTU=","url":"https://api.github.com/repos/mobxjs/mobx-state-tree/labels/wild%20idea","name":"wild idea","color":"c5def5","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2018-07-26T14:55:37Z","updated_at":"2018-08-10T21:17:21Z","closed_at":null,"author_association":"MEMBER","body":"These features leads often to confusion:\r\n\r\n* preProcessors are run multiple times, and expensive for all the object allocations\r\n* these hooks don't fit nicely in the rest of the MST model, as they are unlike all other model things defined \r\nstatically\r\n* it kills optimizations like `getSnapshot` just returning the original snapshot when the node was never touched (see #926 for an example)\r\n\r\nWhat would be the impact? What are typical usage patterns and what are the alternatives? For example: introduce views that use `getSnapshot` as replacement for postProcessing"},"comment":{"url":"https://api.github.com/repos/mobxjs/mobx-state-tree/issues/comments/412209028","html_url":"https://github.com/mobxjs/mobx-state-tree/issues/947#issuecomment-412209028","issue_url":"https://api.github.com/repos/mobxjs/mobx-state-tree/issues/947","id":412209028,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMjIwOTAyOA==","user":{"login":"xaviergonz","id":6306796,"node_id":"MDQ6VXNlcjYzMDY3OTY=","avatar_url":"https://avatars2.githubusercontent.com/u/6306796?v=4","gravatar_id":"","url":"https://api.github.com/users/xaviergonz","html_url":"https://github.com/xaviergonz","followers_url":"https://api.github.com/users/xaviergonz/followers","following_url":"https://api.github.com/users/xaviergonz/following{/other_user}","gists_url":"https://api.github.com/users/xaviergonz/gists{/gist_id}","starred_url":"https://api.github.com/users/xaviergonz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xaviergonz/subscriptions","organizations_url":"https://api.github.com/users/xaviergonz/orgs","repos_url":"https://api.github.com/users/xaviergonz/repos","events_url":"https://api.github.com/users/xaviergonz/events{/privacy}","received_events_url":"https://api.github.com/users/xaviergonz/received_events","type":"User","site_admin":false},"created_at":"2018-08-10T21:17:21Z","updated_at":"2018-08-10T21:17:21Z","author_association":"CONTRIBUTOR","body":"the use case of versioning types would nicely fit `types.snapshotProcessor(subModel, { preProcessor, postProcessor})` since it would only require a pre processor for each type that needs versioning and update it to the latest version as needed upon \"loading\" "}}
{"actor":{"display_login":"xaviergonz"}}