{"action":"opened","issue":{"url":"https://api.github.com/repos/Encapsule/jbus-common-filter/issues/12","labels_url":"https://api.github.com/repos/Encapsule/jbus-common-filter/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/Encapsule/jbus-common-filter/issues/12/comments","events_url":"https://api.github.com/repos/Encapsule/jbus-common-filter/issues/12/events","html_url":"https://github.com/Encapsule/jbus-common-filter/issues/12","id":119630282,"number":12,"title":"Move Filter Spec compilation to build time.","user":{"login":"ChrisRus","id":1718987,"avatar_url":"https://avatars.githubusercontent.com/u/1718987?v=3","gravatar_id":"","url":"https://api.github.com/users/ChrisRus","html_url":"https://github.com/ChrisRus","followers_url":"https://api.github.com/users/ChrisRus/followers","following_url":"https://api.github.com/users/ChrisRus/following{/other_user}","gists_url":"https://api.github.com/users/ChrisRus/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisRus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisRus/subscriptions","organizations_url":"https://api.github.com/users/ChrisRus/orgs","repos_url":"https://api.github.com/users/ChrisRus/repos","events_url":"https://api.github.com/users/ChrisRus/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisRus/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Encapsule/jbus-common-filter/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"ChrisRus","id":1718987,"avatar_url":"https://avatars.githubusercontent.com/u/1718987?v=3","gravatar_id":"","url":"https://api.github.com/users/ChrisRus","html_url":"https://github.com/ChrisRus","followers_url":"https://api.github.com/users/ChrisRus/followers","following_url":"https://api.github.com/users/ChrisRus/following{/other_user}","gists_url":"https://api.github.com/users/ChrisRus/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisRus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisRus/subscriptions","organizations_url":"https://api.github.com/users/ChrisRus/orgs","repos_url":"https://api.github.com/users/ChrisRus/repos","events_url":"https://api.github.com/users/ChrisRus/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisRus/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/Encapsule/jbus-common-filter/milestones/1","html_url":"https://github.com/Encapsule/jbus-common-filter/milestones/v0.1.0","labels_url":"https://api.github.com/repos/Encapsule/jbus-common-filter/milestones/1/labels","id":1430501,"number":1,"title":"v0.1.0","description":"Fixes/enhancements. Synchronized with derived lib jbus-common-filter-dag.","creator":{"login":"ChrisRus","id":1718987,"avatar_url":"https://avatars.githubusercontent.com/u/1718987?v=3","gravatar_id":"","url":"https://api.github.com/users/ChrisRus","html_url":"https://github.com/ChrisRus","followers_url":"https://api.github.com/users/ChrisRus/followers","following_url":"https://api.github.com/users/ChrisRus/following{/other_user}","gists_url":"https://api.github.com/users/ChrisRus/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisRus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisRus/subscriptions","organizations_url":"https://api.github.com/users/ChrisRus/orgs","repos_url":"https://api.github.com/users/ChrisRus/repos","events_url":"https://api.github.com/users/ChrisRus/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisRus/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":0,"state":"open","created_at":"2015-11-26T03:17:56Z","updated_at":"2015-12-01T02:56:07Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-12-01T02:56:07Z","updated_at":"2015-12-01T02:56:07Z","closed_at":null,"body":"Filter Spec objects are currently validated in the context of the main Filter factory function. It would be preferable to skip this heavy lifting at Filter construction time and instead push the task to build-time where it really belongs.\r\n\r\nWe need a simple tool that reads a Filter Spec from a JavaScript file, compiles the \"specification\" into a \"manifest\" and writes the manifest out to another JavaScript file at build time.\r\n\r\nThe Filter factory function will be modified to accept only pre-compiled Filter Spec manifests - not the raw specification.\r\n\r\nNot only is this a useful optimization but it also aligns the workflow for Filter with derived library FilterDAG that uses higher-order system specifications to synthesize Filter Spec's for use in reactive system simulations. Filter library build tool will be used to compile all Filter Spec's regardless of if they're hand-authored or synthesized by some other build-time tool (e.g. FilterDAG), so that they all are handled identically, and efficiently by a smaller Filter runtime."}}