diff --git a/.gitignore b/.gitignore index e7602b7..5d754ad 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,5 @@ /.pub packages /pubspec.lock - +node_modules /coverage \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..59964a7 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,7 @@ +analyzer: + strong-mode: true + +linter: + rules: + - cancel_subscriptions + - close_sinks \ No newline at end of file diff --git a/example/echo.dart b/example/echo.dart index 2e1bc16..731c743 100644 --- a/example/echo.dart +++ b/example/echo.dart @@ -2,7 +2,7 @@ library echo; import "dart:html"; import 'package:logging/logging.dart'; -import "package:sockjs_client/sockjs.dart" as SockJS; +import "package:sockjs_client/sockjs_client.dart" as SockJS; DivElement div = querySelector('#first div'); InputElement inp = querySelector('#first input'); diff --git a/lib/src/ajax.dart b/lib/src/ajax.dart index 5917091..999484c 100644 --- a/lib/src/ajax.dart +++ b/lib/src/ajax.dart @@ -119,9 +119,13 @@ class XHRLocalObject extends AbstractXHRObject { } } -XHRLocalObjectFactory(method, baseUrl, {bool noCredentials, payload}) => new XHRLocalObject(method, baseUrl, noCredentials: noCredentials, payload: payload); +AbstractXHRObject XHRLocalObjectFactory(String method, String baseUrl, {bool noCredentials, payload}) { + return new XHRLocalObject(method, baseUrl, noCredentials: noCredentials, payload: payload); +} -XHRCorsObjectFactory(method, baseUrl, {bool noCredentials, payload}) => new XHRCorsObject(method, baseUrl, noCredentials: noCredentials, payload: payload); +AbstractXHRObject XHRCorsObjectFactory(String method, String baseUrl, {bool noCredentials, payload}) { + return new XHRCorsObject(method, baseUrl, noCredentials: noCredentials, payload: payload); +} // 1. Is natively via XHR // 2. Is natively via XDR diff --git a/lib/src/info.dart b/lib/src/info.dart index 5c1db15..9c5d79a 100644 --- a/lib/src/info.dart +++ b/lib/src/info.dart @@ -133,9 +133,11 @@ class InfoReceiverFake extends InfoReceiver { class WInfoReceiverIframe { WInfoReceiverIframe(ri, _trans_url, baseUrl) { var ir = new AjaxInfoReceiver(baseUrl, XHRLocalObjectFactory); - ir.onFinish.listen( (evt) { + ir.onFinish.listen( (event.Event evt) { + if (evt is InfoReceiverEvent) { ri._didMessage('m${JSON.encode([evt.info, evt.rtt])}'); - ri._didClose(); + } + ri._didClose(); }); } doCleanup() {} diff --git a/lib/src/transport/receiver-xhr.dart b/lib/src/transport/receiver-xhr.dart index 2ccd61a..b4c4535 100644 --- a/lib/src/transport/receiver-xhr.dart +++ b/lib/src/transport/receiver-xhr.dart @@ -39,4 +39,6 @@ part of sockjs_client; } } -XhrReceiverFactory(String recvUrl, AjaxObjectFactory xhrFactory, {bool noCredentials}) => new XhrReceiver(recvUrl, xhrFactory, noCredentials: noCredentials); +Receiver XhrReceiverFactory(String recvUrl, AjaxObjectFactory xhrFactory, {bool noCredentials}) { + return new XhrReceiver(recvUrl, xhrFactory, noCredentials: noCredentials); +} diff --git a/lib/src/transport/sender.dart b/lib/src/transport/sender.dart index e44a27a..412ec7a 100644 --- a/lib/src/transport/sender.dart +++ b/lib/src/transport/sender.dart @@ -112,7 +112,7 @@ class JsonPGenericSender { } form.submit(); - var readyStateChangeHandler = (e) { + var readyStateChangeHandler = (html.Event e) { if (new JsObject.fromBrowserObject(iframe)["readyState"] == 'complete') completed(null); }; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..5493778 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,43 @@ +{ + "name": "sockjs-dart-client", + "version": "0.3.1", + "lockfileVersion": 1, + "dependencies": { + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true + }, + "http": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/http/-/http-0.0.0.tgz", + "integrity": "sha1-huYybSnF0Dnen6xYSkVon5KfT3I=", + "dev": true + }, + "sockjs": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", + "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", + "dev": true + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true + }, + "websocket-extensions": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz", + "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=", + "dev": true + } + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 08d25cc..ac173f9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -9,9 +9,9 @@ dependencies: browser: '>=0.9.0 <1.0.0' logging: '>=0.9.0 <1.0.0' dev_dependencies: - coverage: '^0.7.3' + coverage: '>=0.7.3 < 1.0.0' dart_dev: '^1.0.0' - dart_style: '^0.2.0' - test: '>=0.12.5' + dart_style: '>=0.2.0 < 1.0.0' + test: '>=0.12.5 < 1.0.0' environment: - sdk: '>=1.0.0 <2.0.0' + sdk: '>=1.0.0 <2.0.0' \ No newline at end of file diff --git a/smithy.yaml b/smithy.yaml index 43a9ac0..6cae857 100644 --- a/smithy.yaml +++ b/smithy.yaml @@ -1,11 +1,11 @@ project: dart language: dart -# dart 1.19.1 -runner_image: drydock-prod.workiva.org/workiva/smithy-runner-generator:92530 +runner_image: drydock-prod.workiva.net/workiva/smithy-runner-generator:165358 # 62.0.0 script: - pub get + - pub run dart_dev analyze artifacts: build: diff --git a/test/xhr_streaming_test.dart b/test/xhr_streaming_test.dart index ef64a24..5e3a01d 100644 --- a/test/xhr_streaming_test.dart +++ b/test/xhr_streaming_test.dart @@ -46,7 +46,10 @@ void main() { } -MockXHRCorsObjectFactory(String method, String baseUrl, {bool noCredentials, payload}) => new MockXHRCorsObject(); +AbstractXHRObject MockXHRCorsObjectFactory(String method, String baseUrl, {bool noCredentials, payload}) { + return new MockXHRCorsObject(); +} + class MockXHRCorsObject extends AbstractXHRObject { MockXHRCorsObject(); } diff --git a/tool/dev.dart b/tool/dev.dart index 956bb65..0200307 100644 --- a/tool/dev.dart +++ b/tool/dev.dart @@ -1,15 +1,15 @@ library tool.dev; import 'dart:async'; -import 'dart:io'; - import 'package:dart_dev/dart_dev.dart' show dev, config; import 'package:dart_dev/util.dart' show TaskProcess, reporter; main(List args) async { // https://github.com/Workiva/dart_dev - config.analyze.entryPoints = ['example/', 'lib/', 'tool/']; + config.analyze + ..entryPoints = ['example/', 'lib/', 'tool/'] + ..strong = true; config.format.directories = ['example/', 'lib/', 'tool/']; config.coverage