{"action":"created","comment":{"url":"https://api.github.com/repos/Invoca/backdraft/pulls/comments/183571264","pull_request_review_id":114594783,"id":183571264,"diff_hunk":"@@ -1,71 +1,69 @@\n import _ from \"underscore\";\n \n-import Class from \"./utils/class\";\n+const pluginRegistry = {};\n \n-var Plugin = Class.extend({\n+class Plugin {","path":"src/legacy/plugin.js","position":7,"original_position":7,"commit_id":"2a122e88a7e4387ff893d5943566fba200fd1c22","original_commit_id":"2a122e88a7e4387ff893d5943566fba200fd1c22","user":{"login":"houndci-bot","id":6697940,"avatar_url":"https://avatars0.githubusercontent.com/u/6697940?v=4","gravatar_id":"","url":"https://api.github.com/users/houndci-bot","html_url":"https://github.com/houndci-bot","followers_url":"https://api.github.com/users/houndci-bot/followers","following_url":"https://api.github.com/users/houndci-bot/following{/other_user}","gists_url":"https://api.github.com/users/houndci-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/houndci-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houndci-bot/subscriptions","organizations_url":"https://api.github.com/users/houndci-bot/orgs","repos_url":"https://api.github.com/users/houndci-bot/repos","events_url":"https://api.github.com/users/houndci-bot/events{/privacy}","received_events_url":"https://api.github.com/users/houndci-bot/received_events","type":"User","site_admin":false},"body":"Block must not be padded by blank lines  padded-blocks","created_at":"2018-04-23T23:56:41Z","updated_at":"2018-04-23T23:56:42Z","html_url":"https://github.com/Invoca/backdraft/pull/100#discussion_r183571264","pull_request_url":"https://api.github.com/repos/Invoca/backdraft/pulls/100","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/Invoca/backdraft/pulls/comments/183571264"},"html":{"href":"https://github.com/Invoca/backdraft/pull/100#discussion_r183571264"},"pull_request":{"href":"https://api.github.com/repos/Invoca/backdraft/pulls/100"}}},"pull_request":{"url":"https://api.github.com/repos/Invoca/backdraft/pulls/100","id":183587286,"html_url":"https://github.com/Invoca/backdraft/pull/100","diff_url":"https://github.com/Invoca/backdraft/pull/100.diff","patch_url":"https://github.com/Invoca/backdraft/pull/100.patch","issue_url":"https://api.github.com/repos/Invoca/backdraft/issues/100","number":100,"state":"open","locked":false,"title":"WIP: Reorganize to allow for future use through ESM (TECH-2322)","user":{"login":"dtognazzini","id":90865,"avatar_url":"https://avatars3.githubusercontent.com/u/90865?v=4","gravatar_id":"","url":"https://api.github.com/users/dtognazzini","html_url":"https://github.com/dtognazzini","followers_url":"https://api.github.com/users/dtognazzini/followers","following_url":"https://api.github.com/users/dtognazzini/following{/other_user}","gists_url":"https://api.github.com/users/dtognazzini/gists{/gist_id}","starred_url":"https://api.github.com/users/dtognazzini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dtognazzini/subscriptions","organizations_url":"https://api.github.com/users/dtognazzini/orgs","repos_url":"https://api.github.com/users/dtognazzini/repos","events_url":"https://api.github.com/users/dtognazzini/events{/privacy}","received_events_url":"https://api.github.com/users/dtognazzini/received_events","type":"User","site_admin":false},"body":"Summary:\r\n* The original aim of this work is to provide source ESM for consumers to use.\r\n* In support of the original aim, the internals were refactored to use ESM and reorganized to steer consumers away from using the namespacing methods for access.\r\n* Upon further consideration, our main consumer of Backdraft will need to function in a hybrid world whereby some JS can access Backdraft modules via ESM while others continue to access via the namespacing methods.\r\n* Supporting ESM access and namespacing access using the same underlying code, while possible, requires a lot of bundler configuration (Webpack) and results in the test environment differing significantly from dev/production environments (i.e. envs providing Backdraft as an external).\r\n* We'd prefer to have our tests run against the same configuration as used in production. This requires all the code to use the greatest common denominator: namespacing access.\r\n* Our main consumer will use ESM shims to provide a level of indirection for in-repo consumers. Once converting a critical mass worth of consumers over to using ESMs, we can fully use a Backdraft library providing ESMs.\r\n\r\nChanges:\r\n* Internals converted to ESM.\r\n* Tests added to verify ESM implementations.\r\n* Consumers wanting ESM access can get at the underlying ESM via the existing `Backdraft.plugin` registry. For example, to access the base view class:\r\n```javascript\r\nconst View = Backdraft.plugin(\"Base\").View;\r\n```\r\n* Classes have been updated to allow for ES6 class extension. Prior to these changes, consumers had to access the internals via the namespacing methods because the namespacing methods called things like `finalize` that is necessary for the internal code to work.\r\n* The following improvements were made to remove the requirements to call the namespacing methods:\r\n  * \r\n\r\nWIP TBD ~donnie\r\n","created_at":"2018-04-23T23:55:07Z","updated_at":"2018-04-23T23:56:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"02a7a7c257da71f69b085a5cace634b72992415d","assignee":null,"assignees":[],"requested_reviewers":[{"login":"nburwell","id":372310,"avatar_url":"https://avatars0.githubusercontent.com/u/372310?v=4","gravatar_id":"","url":"https://api.github.com/users/nburwell","html_url":"https://github.com/nburwell","followers_url":"https://api.github.com/users/nburwell/followers","following_url":"https://api.github.com/users/nburwell/following{/other_user}","gists_url":"https://api.github.com/users/nburwell/gists{/gist_id}","starred_url":"https://api.github.com/users/nburwell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nburwell/subscriptions","organizations_url":"https://api.github.com/users/nburwell/orgs","repos_url":"https://api.github.com/users/nburwell/repos","events_url":"https://api.github.com/users/nburwell/events{/privacy}","received_events_url":"https://api.github.com/users/nburwell/received_events","type":"User","site_admin":false},{"login":"garvank","id":5351670,"avatar_url":"https://avatars1.githubusercontent.com/u/5351670?v=4","gravatar_id":"","url":"https://api.github.com/users/garvank","html_url":"https://github.com/garvank","followers_url":"https://api.github.com/users/garvank/followers","following_url":"https://api.github.com/users/garvank/following{/other_user}","gists_url":"https://api.github.com/users/garvank/gists{/gist_id}","starred_url":"https://api.github.com/users/garvank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garvank/subscriptions","organizations_url":"https://api.github.com/users/garvank/orgs","repos_url":"https://api.github.com/users/garvank/repos","events_url":"https://api.github.com/users/garvank/events{/privacy}","received_events_url":"https://api.github.com/users/garvank/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Invoca/backdraft/pulls/100/commits","review_comments_url":"https://api.github.com/repos/Invoca/backdraft/pulls/100/comments","review_comment_url":"https://api.github.com/repos/Invoca/backdraft/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Invoca/backdraft/issues/100/comments","statuses_url":"https://api.github.com/repos/Invoca/backdraft/statuses/2a122e88a7e4387ff893d5943566fba200fd1c22","head":{"label":"Invoca:1801/m/TECH-2322_expose_es6_modules","ref":"1801/m/TECH-2322_expose_es6_modules","sha":"2a122e88a7e4387ff893d5943566fba200fd1c22","user":{"login":"Invoca","id":808155,"avatar_url":"https://avatars1.githubusercontent.com/u/808155?v=4","gravatar_id":"","url":"https://api.github.com/users/Invoca","html_url":"https://github.com/Invoca","followers_url":"https://api.github.com/users/Invoca/followers","following_url":"https://api.github.com/users/Invoca/following{/other_user}","gists_url":"https://api.github.com/users/Invoca/gists{/gist_id}","starred_url":"https://api.github.com/users/Invoca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Invoca/subscriptions","organizations_url":"https://api.github.com/users/Invoca/orgs","repos_url":"https://api.github.com/users/Invoca/repos","events_url":"https://api.github.com/users/Invoca/events{/privacy}","received_events_url":"https://api.github.com/users/Invoca/received_events","type":"Organization","site_admin":false},"repo":{"id":17420609,"name":"backdraft","full_name":"Invoca/backdraft","owner":{"login":"Invoca","id":808155,"avatar_url":"https://avatars1.githubusercontent.com/u/808155?v=4","gravatar_id":"","url":"https://api.github.com/users/Invoca","html_url":"https://github.com/Invoca","followers_url":"https://api.github.com/users/Invoca/followers","following_url":"https://api.github.com/users/Invoca/following{/other_user}","gists_url":"https://api.github.com/users/Invoca/gists{/gist_id}","starred_url":"https://api.github.com/users/Invoca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Invoca/subscriptions","organizations_url":"https://api.github.com/users/Invoca/orgs","repos_url":"https://api.github.com/users/Invoca/repos","events_url":"https://api.github.com/users/Invoca/events{/privacy}","received_events_url":"https://api.github.com/users/Invoca/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Invoca/backdraft","description":"Wrapper around Backbone providing jQuery dataTable integration and plugin framework","fork":false,"url":"https://api.github.com/repos/Invoca/backdraft","forks_url":"https://api.github.com/repos/Invoca/backdraft/forks","keys_url":"https://api.github.com/repos/Invoca/backdraft/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Invoca/backdraft/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Invoca/backdraft/teams","hooks_url":"https://api.github.com/repos/Invoca/backdraft/hooks","issue_events_url":"https://api.github.com/repos/Invoca/backdraft/issues/events{/number}","events_url":"https://api.github.com/repos/Invoca/backdraft/events","assignees_url":"https://api.github.com/repos/Invoca/backdraft/assignees{/user}","branches_url":"https://api.github.com/repos/Invoca/backdraft/branches{/branch}","tags_url":"https://api.github.com/repos/Invoca/backdraft/tags","blobs_url":"https://api.github.com/repos/Invoca/backdraft/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Invoca/backdraft/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Invoca/backdraft/git/refs{/sha}","trees_url":"https://api.github.com/repos/Invoca/backdraft/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Invoca/backdraft/statuses/{sha}","languages_url":"https://api.github.com/repos/Invoca/backdraft/languages","stargazers_url":"https://api.github.com/repos/Invoca/backdraft/stargazers","contributors_url":"https://api.github.com/repos/Invoca/backdraft/contributors","subscribers_url":"https://api.github.com/repos/Invoca/backdraft/subscribers","subscription_url":"https://api.github.com/repos/Invoca/backdraft/subscription","commits_url":"https://api.github.com/repos/Invoca/backdraft/commits{/sha}","git_commits_url":"https://api.github.com/repos/Invoca/backdraft/git/commits{/sha}","comments_url":"https://api.github.com/repos/Invoca/backdraft/comments{/number}","issue_comment_url":"https://api.github.com/repos/Invoca/backdraft/issues/comments{/number}","contents_url":"https://api.github.com/repos/Invoca/backdraft/contents/{+path}","compare_url":"https://api.github.com/repos/Invoca/backdraft/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Invoca/backdraft/merges","archive_url":"https://api.github.com/repos/Invoca/backdraft/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Invoca/backdraft/downloads","issues_url":"https://api.github.com/repos/Invoca/backdraft/issues{/number}","pulls_url":"https://api.github.com/repos/Invoca/backdraft/pulls{/number}","milestones_url":"https://api.github.com/repos/Invoca/backdraft/milestones{/number}","notifications_url":"https://api.github.com/repos/Invoca/backdraft/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Invoca/backdraft/labels{/name}","releases_url":"https://api.github.com/repos/Invoca/backdraft/releases{/id}","deployments_url":"https://api.github.com/repos/Invoca/backdraft/deployments","created_at":"2014-03-04T23:07:25Z","updated_at":"2018-03-15T18:22:15Z","pushed_at":"2018-04-23T23:55:07Z","git_url":"git://github.com/Invoca/backdraft.git","ssh_url":"git@github.com:Invoca/backdraft.git","clone_url":"https://github.com/Invoca/backdraft.git","svn_url":"https://github.com/Invoca/backdraft","homepage":"","size":4605,"stargazers_count":4,"watchers_count":4,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":14,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":1,"open_issues":14,"watchers":4,"default_branch":"master"}},"base":{"label":"Invoca:master","ref":"master","sha":"86cd36adc5fe3fffe56952956e52e708dd14b816","user":{"login":"Invoca","id":808155,"avatar_url":"https://avatars1.githubusercontent.com/u/808155?v=4","gravatar_id":"","url":"https://api.github.com/users/Invoca","html_url":"https://github.com/Invoca","followers_url":"https://api.github.com/users/Invoca/followers","following_url":"https://api.github.com/users/Invoca/following{/other_user}","gists_url":"https://api.github.com/users/Invoca/gists{/gist_id}","starred_url":"https://api.github.com/users/Invoca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Invoca/subscriptions","organizations_url":"https://api.github.com/users/Invoca/orgs","repos_url":"https://api.github.com/users/Invoca/repos","events_url":"https://api.github.com/users/Invoca/events{/privacy}","received_events_url":"https://api.github.com/users/Invoca/received_events","type":"Organization","site_admin":false},"repo":{"id":17420609,"name":"backdraft","full_name":"Invoca/backdraft","owner":{"login":"Invoca","id":808155,"avatar_url":"https://avatars1.githubusercontent.com/u/808155?v=4","gravatar_id":"","url":"https://api.github.com/users/Invoca","html_url":"https://github.com/Invoca","followers_url":"https://api.github.com/users/Invoca/followers","following_url":"https://api.github.com/users/Invoca/following{/other_user}","gists_url":"https://api.github.com/users/Invoca/gists{/gist_id}","starred_url":"https://api.github.com/users/Invoca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Invoca/subscriptions","organizations_url":"https://api.github.com/users/Invoca/orgs","repos_url":"https://api.github.com/users/Invoca/repos","events_url":"https://api.github.com/users/Invoca/events{/privacy}","received_events_url":"https://api.github.com/users/Invoca/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Invoca/backdraft","description":"Wrapper around Backbone providing jQuery dataTable integration and plugin framework","fork":false,"url":"https://api.github.com/repos/Invoca/backdraft","forks_url":"https://api.github.com/repos/Invoca/backdraft/forks","keys_url":"https://api.github.com/repos/Invoca/backdraft/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Invoca/backdraft/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Invoca/backdraft/teams","hooks_url":"https://api.github.com/repos/Invoca/backdraft/hooks","issue_events_url":"https://api.github.com/repos/Invoca/backdraft/issues/events{/number}","events_url":"https://api.github.com/repos/Invoca/backdraft/events","assignees_url":"https://api.github.com/repos/Invoca/backdraft/assignees{/user}","branches_url":"https://api.github.com/repos/Invoca/backdraft/branches{/branch}","tags_url":"https://api.github.com/repos/Invoca/backdraft/tags","blobs_url":"https://api.github.com/repos/Invoca/backdraft/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Invoca/backdraft/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Invoca/backdraft/git/refs{/sha}","trees_url":"https://api.github.com/repos/Invoca/backdraft/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Invoca/backdraft/statuses/{sha}","languages_url":"https://api.github.com/repos/Invoca/backdraft/languages","stargazers_url":"https://api.github.com/repos/Invoca/backdraft/stargazers","contributors_url":"https://api.github.com/repos/Invoca/backdraft/contributors","subscribers_url":"https://api.github.com/repos/Invoca/backdraft/subscribers","subscription_url":"https://api.github.com/repos/Invoca/backdraft/subscription","commits_url":"https://api.github.com/repos/Invoca/backdraft/commits{/sha}","git_commits_url":"https://api.github.com/repos/Invoca/backdraft/git/commits{/sha}","comments_url":"https://api.github.com/repos/Invoca/backdraft/comments{/number}","issue_comment_url":"https://api.github.com/repos/Invoca/backdraft/issues/comments{/number}","contents_url":"https://api.github.com/repos/Invoca/backdraft/contents/{+path}","compare_url":"https://api.github.com/repos/Invoca/backdraft/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Invoca/backdraft/merges","archive_url":"https://api.github.com/repos/Invoca/backdraft/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Invoca/backdraft/downloads","issues_url":"https://api.github.com/repos/Invoca/backdraft/issues{/number}","pulls_url":"https://api.github.com/repos/Invoca/backdraft/pulls{/number}","milestones_url":"https://api.github.com/repos/Invoca/backdraft/milestones{/number}","notifications_url":"https://api.github.com/repos/Invoca/backdraft/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Invoca/backdraft/labels{/name}","releases_url":"https://api.github.com/repos/Invoca/backdraft/releases{/id}","deployments_url":"https://api.github.com/repos/Invoca/backdraft/deployments","created_at":"2014-03-04T23:07:25Z","updated_at":"2018-03-15T18:22:15Z","pushed_at":"2018-04-23T23:55:07Z","git_url":"git://github.com/Invoca/backdraft.git","ssh_url":"git@github.com:Invoca/backdraft.git","clone_url":"https://github.com/Invoca/backdraft.git","svn_url":"https://github.com/Invoca/backdraft","homepage":"","size":4605,"stargazers_count":4,"watchers_count":4,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":14,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":1,"open_issues":14,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Invoca/backdraft/pulls/100"},"html":{"href":"https://github.com/Invoca/backdraft/pull/100"},"issue":{"href":"https://api.github.com/repos/Invoca/backdraft/issues/100"},"comments":{"href":"https://api.github.com/repos/Invoca/backdraft/issues/100/comments"},"review_comments":{"href":"https://api.github.com/repos/Invoca/backdraft/pulls/100/comments"},"review_comment":{"href":"https://api.github.com/repos/Invoca/backdraft/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Invoca/backdraft/pulls/100/commits"},"statuses":{"href":"https://api.github.com/repos/Invoca/backdraft/statuses/2a122e88a7e4387ff893d5943566fba200fd1c22"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"houndci-bot"}}