{"action":"created","issue":{"url":"https://api.github.com/repos/cyclejs/core/issues/287","repository_url":"https://api.github.com/repos/cyclejs/core","labels_url":"https://api.github.com/repos/cyclejs/core/issues/287/labels{/name}","comments_url":"https://api.github.com/repos/cyclejs/core/issues/287/comments","events_url":"https://api.github.com/repos/cyclejs/core/issues/287/events","html_url":"https://github.com/cyclejs/core/issues/287","id":144999472,"number":287,"title":"@cycle/proxy idea for circular dependecy","user":{"login":"whitecolor","id":736697,"avatar_url":"https://avatars.githubusercontent.com/u/736697?v=3","gravatar_id":"","url":"https://api.github.com/users/whitecolor","html_url":"https://github.com/whitecolor","followers_url":"https://api.github.com/users/whitecolor/followers","following_url":"https://api.github.com/users/whitecolor/following{/other_user}","gists_url":"https://api.github.com/users/whitecolor/gists{/gist_id}","starred_url":"https://api.github.com/users/whitecolor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/whitecolor/subscriptions","organizations_url":"https://api.github.com/users/whitecolor/orgs","repos_url":"https://api.github.com/users/whitecolor/repos","events_url":"https://api.github.com/users/whitecolor/events{/privacy}","received_events_url":"https://api.github.com/users/whitecolor/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/cyclejs/core/labels/issue%20is%20feature%20suggestion","name":"issue is feature suggestion","color":"33eeee"},{"url":"https://api.github.com/repos/cyclejs/core/labels/scope:%20misc","name":"scope: misc","color":"bfd4f2"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-03-31T19:45:45Z","updated_at":"2016-03-31T20:23:22Z","closed_at":null,"body":"After discussion with @TylorS what about such api for proxying curcular deps?\r\n```js\r\nimport proxy from '@cycle/proxy'\r\n//...\r\nfunction MyComponent () {\r\n  const {imitate, stream} = proxy()\r\n  const componentFoo = ComponentFoo({stream, DOM})\r\n  const componentBar = ComponentBar({HTTP, componentFoo.props$})\r\n  imitate(componentBar.value$)\r\n```\r\n\r\nas alternative to https://github.com/cyclejs/core/issues/170"},"comment":{"url":"https://api.github.com/repos/cyclejs/core/issues/comments/204109418","html_url":"https://github.com/cyclejs/core/issues/287#issuecomment-204109418","issue_url":"https://api.github.com/repos/cyclejs/core/issues/287","id":204109418,"user":{"login":"staltz","id":90512,"avatar_url":"https://avatars.githubusercontent.com/u/90512?v=3","gravatar_id":"","url":"https://api.github.com/users/staltz","html_url":"https://github.com/staltz","followers_url":"https://api.github.com/users/staltz/followers","following_url":"https://api.github.com/users/staltz/following{/other_user}","gists_url":"https://api.github.com/users/staltz/gists{/gist_id}","starred_url":"https://api.github.com/users/staltz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/staltz/subscriptions","organizations_url":"https://api.github.com/users/staltz/orgs","repos_url":"https://api.github.com/users/staltz/repos","events_url":"https://api.github.com/users/staltz/events{/privacy}","received_events_url":"https://api.github.com/users/staltz/received_events","type":"User","site_admin":false},"created_at":"2016-03-31T20:23:22Z","updated_at":"2016-03-31T20:23:22Z","body":"```js\r\nconst {imitate, stream} = proxy()\r\n```\r\n\r\nIf this `imitate` anyway refers to `stream`, why can't we attach it like `stream.imitate`? Then it would be\r\n\r\n```js\r\nfunction MyComponent () {\r\n  const stream = proxy()\r\n  const componentFoo = ComponentFoo({stream, DOM})\r\n  const componentBar = ComponentBar({HTTP, componentFoo.props$})\r\n  stream.imitate(componentBar.value$)\r\n}\r\n```"}}