From ff57f93b6b888c279454611e3797da138cd8d2c9 Mon Sep 17 00:00:00 2001 From: Naimul Kabir Date: Mon, 8 May 2023 09:42:56 +0600 Subject: [PATCH 1/3] upgrade project dependencies and lint --- lib/src/isolated_worker_default.dart | 2 +- lib/src/isolated_worker_default_impl.dart | 8 ++--- lib/src/isolated_worker_default_unimpl.dart | 2 +- lib/src/isolated_worker_web.dart | 2 +- lib/src/isolated_worker_web_impl.dart | 2 +- lib/src/isolated_worker_web_unimpl.dart | 2 +- lib/src/worker_delegator/worker_delegate.dart | 6 ++-- .../worker_delegator/worker_delegator.dart | 8 ++--- pubspec.yaml | 8 ++--- test/isolated_worker_test.dart | 36 ------------------- 10 files changed, 20 insertions(+), 56 deletions(-) diff --git a/lib/src/isolated_worker_default.dart b/lib/src/isolated_worker_default.dart index eab81e1..c07667c 100644 --- a/lib/src/isolated_worker_default.dart +++ b/lib/src/isolated_worker_default.dart @@ -1,6 +1,6 @@ import 'dart:async' show FutureOr; -import 'isolated_worker_default_impl.dart' +import 'package:isolated_worker/src/isolated_worker_default_impl.dart' if (dart.library.html) 'isolated_worker_default_unimpl.dart'; /// An isolated worker spawning a single Isolate. diff --git a/lib/src/isolated_worker_default_impl.dart b/lib/src/isolated_worker_default_impl.dart index 3339b0b..db53962 100644 --- a/lib/src/isolated_worker_default_impl.dart +++ b/lib/src/isolated_worker_default_impl.dart @@ -1,9 +1,9 @@ import 'dart:async' show Completer, FutureOr, StreamSubscription; import 'dart:collection' show LinkedHashMap; import 'dart:isolate' show Isolate, ReceivePort, SendPort; -import 'package:meta/meta.dart'; -import 'isolated_worker_default.dart'; +import 'package:isolated_worker/src/isolated_worker_default.dart'; +import 'package:meta/meta.dart'; const int _kMaxCallbackMessageId = 1000; @@ -188,7 +188,7 @@ class IsolatedWorkerImpl implements IsolatedWorker { } } -void _workerEntryPoint(final SendPort parentSendPort) { +void _workerEntryPoint( SendPort parentSendPort) { _Worker(parentSendPort); } @@ -222,7 +222,7 @@ class _Worker { } Future _runCallback( - final _CallbackMessage parentMessage, + _CallbackMessage parentMessage, ) async { try { final dynamic result = diff --git a/lib/src/isolated_worker_default_unimpl.dart b/lib/src/isolated_worker_default_unimpl.dart index 6f82924..531c2df 100644 --- a/lib/src/isolated_worker_default_unimpl.dart +++ b/lib/src/isolated_worker_default_unimpl.dart @@ -1,6 +1,6 @@ import 'dart:async' show FutureOr; -import 'isolated_worker_default.dart'; +import 'package:isolated_worker/src/isolated_worker_default.dart'; class IsolatedWorkerImpl implements IsolatedWorker { factory IsolatedWorkerImpl() { diff --git a/lib/src/isolated_worker_web.dart b/lib/src/isolated_worker_web.dart index bcd9af1..a4fa353 100644 --- a/lib/src/isolated_worker_web.dart +++ b/lib/src/isolated_worker_web.dart @@ -1,4 +1,4 @@ -import 'isolated_worker_web_impl.dart' +import 'package:isolated_worker/src/isolated_worker_web_impl.dart' if (dart.library.io) 'isolated_worker_web_unimpl.dart'; /// An isolated worker spawning a single Web Worker diff --git a/lib/src/isolated_worker_web_impl.dart b/lib/src/isolated_worker_web_impl.dart index 293f379..b75f1fe 100644 --- a/lib/src/isolated_worker_web_impl.dart +++ b/lib/src/isolated_worker_web_impl.dart @@ -2,7 +2,7 @@ import 'dart:async' show Completer, StreamSubscription; import 'dart:collection' show LinkedHashMap; import 'dart:html'; -import 'isolated_worker_web.dart'; +import 'package:isolated_worker/src/isolated_worker_web.dart'; const int _kMaxCallbackMessageId = 1000; diff --git a/lib/src/isolated_worker_web_unimpl.dart b/lib/src/isolated_worker_web_unimpl.dart index 609bf50..eef4b9c 100644 --- a/lib/src/isolated_worker_web_unimpl.dart +++ b/lib/src/isolated_worker_web_unimpl.dart @@ -1,4 +1,4 @@ -import 'isolated_worker_web.dart'; +import 'package:isolated_worker/src/isolated_worker_web.dart'; class JsIsolatedWorkerImpl implements JsIsolatedWorker { factory JsIsolatedWorkerImpl() { diff --git a/lib/src/worker_delegator/worker_delegate.dart b/lib/src/worker_delegator/worker_delegate.dart index 304aa58..88e3d15 100644 --- a/lib/src/worker_delegator/worker_delegate.dart +++ b/lib/src/worker_delegator/worker_delegate.dart @@ -1,6 +1,6 @@ -import '../flutter_constants.dart'; -import 'default_delegate.dart'; -import 'js_delegate.dart'; +import 'package:isolated_worker/src/flutter_constants.dart'; +import 'package:isolated_worker/src/worker_delegator/default_delegate.dart'; +import 'package:isolated_worker/src/worker_delegator/js_delegate.dart'; /// A worker delegate for both Dart's Isolate and Web Worker. abstract class WorkerDelegate { diff --git a/lib/src/worker_delegator/worker_delegator.dart b/lib/src/worker_delegator/worker_delegator.dart index 514afbb..3a3cf92 100644 --- a/lib/src/worker_delegator/worker_delegator.dart +++ b/lib/src/worker_delegator/worker_delegator.dart @@ -1,7 +1,7 @@ -import '../flutter_constants.dart'; -import '../isolated_worker_default.dart'; -import '../isolated_worker_web.dart'; -import 'worker_delegate.dart'; +import 'package:isolated_worker/src/flutter_constants.dart'; +import 'package:isolated_worker/src/isolated_worker_default.dart'; +import 'package:isolated_worker/src/isolated_worker_web.dart'; +import 'package:isolated_worker/src/worker_delegator/worker_delegate.dart'; part 'worker_delegator_impl.dart'; diff --git a/pubspec.yaml b/pubspec.yaml index ba20262..8419342 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,11 +5,11 @@ repository: https://www.github.com/iandis/isolated_worker issue_tracker: https://www.github.com/iandis/isolated_worker/issues environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.19.6 <3.0.0' dependencies: - meta: ^1.7.0 + meta: ^1.9.1 dev_dependencies: - lint: ^1.6.0 - test: ^1.16.0 + lint: ^2.0.1 + test: ^1.24.2 diff --git a/test/isolated_worker_test.dart b/test/isolated_worker_test.dart index f363fce..48e80ef 100644 --- a/test/isolated_worker_test.dart +++ b/test/isolated_worker_test.dart @@ -1,6 +1,5 @@ import 'package:isolated_worker/isolated_worker.dart'; import 'package:isolated_worker/src/isolated_worker_default_impl.dart'; -import 'package:isolated_worker/worker_delegator.dart'; import 'package:test/test.dart'; List isolatedWork(int number) { @@ -119,39 +118,4 @@ void main() { ); }); - group('Test [WorkerDelegator] on Dart VM\n', () { - setUpAll(() { - const JsDelegate dummyJsDelegate = JsDelegate(callback: 'callback'); - - const DefaultDelegate> dummyDefDelegate = - DefaultDelegate>(callback: isolatedWork); - - const WorkerDelegate> dummyWorkerDelegate = - WorkerDelegate>( - key: 'dummy1to9', - defaultDelegate: dummyDefDelegate, - jsDelegate: dummyJsDelegate, - ); - - WorkerDelegator().addDelegate(dummyWorkerDelegate); - }); - - test( - 'Verify [isolatedWork] running with [WorkerDelegator]\n' - 'returns a List of integers containing 1 to 9\n', () { - expectLater( - WorkerDelegator().run>('dummy1to9', 9).then( - (value) { - expect(value, isA>()); - - expect( - value, - containsAllInOrder(Iterable.generate(9, (n) => n + 1)), - ); - }, - ), - completes, - ); - }); - }); } From fb1df406e45c8a9d54454d192cc327568d87c251 Mon Sep 17 00:00:00 2001 From: Naimul Kabir Date: Mon, 8 May 2023 09:46:26 +0600 Subject: [PATCH 2/3] degrade meta version to match with other dependencies --- .idea/.gitignore | 3 + .idea/isolated_worker.iml | 15 ++ .idea/libraries/Dart_Packages.xml | 380 ++++++++++++++++++++++++++++++ .idea/libraries/Dart_SDK.xml | 27 +++ .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + pubspec.yaml | 2 +- 8 files changed, 446 insertions(+), 1 deletion(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/isolated_worker.iml create mode 100644 .idea/libraries/Dart_Packages.xml create mode 100644 .idea/libraries/Dart_SDK.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/isolated_worker.iml b/.idea/isolated_worker.iml new file mode 100644 index 0000000..ae9af97 --- /dev/null +++ b/.idea/isolated_worker.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml new file mode 100644 index 0000000..6f3ea83 --- /dev/null +++ b/.idea/libraries/Dart_Packages.xml @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml new file mode 100644 index 0000000..91dae00 --- /dev/null +++ b/.idea/libraries/Dart_SDK.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..639900d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..99107fd --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index 8419342..8a6a4c1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -8,7 +8,7 @@ environment: sdk: '>=2.19.6 <3.0.0' dependencies: - meta: ^1.9.1 + meta: ^1.8.0 dev_dependencies: lint: ^2.0.1 From 447a7cbc5adc5b8ccce3cbad1cfa4824e3c5963d Mon Sep 17 00:00:00 2001 From: Naimul Kabir Date: Mon, 12 Jun 2023 22:09:59 +0600 Subject: [PATCH 3/3] build: upgrade dependency constraints --- .idea/libraries/Dart_Packages.xml | 356 +------------------------- .idea/libraries/Dart_SDK.xml | 39 +-- .idea/misc.xml | 1 - example/isolated_worker_example.dart | 4 +- pubspec.yaml | 9 +- test/isolated_worker_test.dart | 121 --------- test/web/js_isolated_worker_test.dart | 104 -------- test/web/user_defined_js_fn.js | 15 -- test/web/worker.js | 1 - 9 files changed, 29 insertions(+), 621 deletions(-) delete mode 100644 test/isolated_worker_test.dart delete mode 100644 test/web/js_isolated_worker_test.dart delete mode 100644 test/web/user_defined_js_fn.js delete mode 100644 test/web/worker.js diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml index 6f3ea83..cc04c11 100644 --- a/.idea/libraries/Dart_Packages.xml +++ b/.idea/libraries/Dart_Packages.xml @@ -2,136 +2,10 @@ - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml index 91dae00..fb14028 100644 --- a/.idea/libraries/Dart_SDK.xml +++ b/.idea/libraries/Dart_SDK.xml @@ -1,25 +1,26 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 639900d..6e86672 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/example/isolated_worker_example.dart b/example/isolated_worker_example.dart index 0f95a34..4323817 100644 --- a/example/isolated_worker_example.dart +++ b/example/isolated_worker_example.dart @@ -1,7 +1,9 @@ +import 'dart:developer' as dev; + import 'package:isolated_worker/isolated_worker.dart'; void tryPrint(void _) { - print('Hello from IsolatedWorker'); + dev.log('Hello from IsolatedWorker'); } void main() { diff --git a/pubspec.yaml b/pubspec.yaml index 8a6a4c1..a53a9be 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,15 +1,14 @@ name: isolated_worker description: A singleton isolated worker for Flutter (Isolate) and Web (Web Worker). version: 0.1.1 -repository: https://www.github.com/iandis/isolated_worker -issue_tracker: https://www.github.com/iandis/isolated_worker/issues +repository: https://www.github.com/kabirnayeem99/isolated_worker +issue_tracker: https://www.github.com/kabirnayeem99/isolated_worker/issues environment: - sdk: '>=2.19.6 <3.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: - meta: ^1.8.0 + meta: ^1.9.1 dev_dependencies: lint: ^2.0.1 - test: ^1.24.2 diff --git a/test/isolated_worker_test.dart b/test/isolated_worker_test.dart deleted file mode 100644 index 48e80ef..0000000 --- a/test/isolated_worker_test.dart +++ /dev/null @@ -1,121 +0,0 @@ -import 'package:isolated_worker/isolated_worker.dart'; -import 'package:isolated_worker/src/isolated_worker_default_impl.dart'; -import 'package:test/test.dart'; - -List isolatedWork(int number) { - return List.generate(number, (index) => index + 1); -} - -Future delayedFunc([void noArgs]) { - return Future.delayed(const Duration(seconds: 2)); -} - -void main() { - tearDownAll(() { - IsolatedWorker().close(); - }); - - group('Test [IsolatedWorker]\n', () { - test( - 'Verify [isolatedWork] running with [IsolatedWorker]\n' - 'returns a List of integers containing 1 to 9', () { - expectLater( - IsolatedWorker().run(isolatedWork, 9).then( - (value) { - expect(value, isA>()); - - expect( - value, - containsAllInOrder(Iterable.generate(9, (n) => n + 1)), - ); - }, - ), - completes, - ); - }); - - test( - 'Verify 2 [isolatedWork]s running with [IsolatedWorker]\n' - 'returns 2 Lists of integers containing the expected numbers', - () async { - final Future> result1 = IsolatedWorker().run(isolatedWork, 10); - final Future> result2 = IsolatedWorker().run(isolatedWork, 15); - result1.then((value) { - expect(value, isA>()); - - expect( - value, - containsAllInOrder(Iterable.generate(10, (n) => n + 1)), - ); - }); - - result2.then((value) { - expect(value, isA>()); - - expect( - value, - containsAllInOrder(Iterable.generate(15, (n) => n + 1)), - ); - }); - }); - - test( - 'Verify 4 [isolatedWork]s running with [IsolatedWorker]\n' - 'returns 4 Lists of integers containing the expected numbers', - () async { - final Future> result1 = IsolatedWorker().run(isolatedWork, 10); - final Future> result2 = IsolatedWorker().run(isolatedWork, 15); - final Future> result3 = IsolatedWorker().run(isolatedWork, 20); - final Future> result4 = IsolatedWorker().run(isolatedWork, 25); - result1.then((value) { - expect(value, isA>()); - - expect( - value, - containsAllInOrder(Iterable.generate(10, (n) => n + 1)), - ); - }); - - result2.then((value) { - expect(value, isA>()); - - expect( - value, - containsAllInOrder(Iterable.generate(15, (n) => n + 1)), - ); - }); - - result3.then((value) { - expect(value, isA>()); - - expect( - value, - containsAllInOrder(Iterable.generate(20, (n) => n + 1)), - ); - }); - - result4.then((value) { - expect(value, isA>()); - - expect( - value, - containsAllInOrder(Iterable.generate(25, (n) => n + 1)), - ); - }); - }); - - test( - 'Verify closing [IsolatedWorker] immediately after calling [IsolatedWorker.run] ' - 'should not throw LateInitializationError', - () { - final IsolatedWorker isolatedWorker = IsolatedWorkerImpl.create(); - isolatedWorker.run(delayedFunc, null); - expect( - isolatedWorker.close(), - completes, - ); - }, - ); - }); - -} diff --git a/test/web/js_isolated_worker_test.dart b/test/web/js_isolated_worker_test.dart deleted file mode 100644 index e6f0a91..0000000 --- a/test/web/js_isolated_worker_test.dart +++ /dev/null @@ -1,104 +0,0 @@ -import 'dart:collection'; - -import 'package:isolated_worker/js_isolated_worker.dart'; -import 'package:isolated_worker/worker_delegator.dart'; -import 'package:test/test.dart'; - -void main() { - tearDownAll(() { - JsIsolatedWorker().close(); - }); - group('Test [JsIsolatedWorker]\n', () { - test( - 'Verify [JSON.stringify] returns "{}"\n' - 'when running on [JsIsolatedWorker]', () { - expectLater( - JsIsolatedWorker().run( - functionName: [ - 'JSON', - 'stringify', - ], - arguments: {}, - ).then((dynamic jsonString) { - expect(jsonString, isA()); - expect(jsonString, equals('{}')); - }), - completes, - ); - }); - - test( - 'Verify [JSON.parse] returns {}\n' - 'when running on [JsIsolatedWorker]', () { - expectLater( - JsIsolatedWorker().run( - functionName: [ - 'JSON', - 'parse', - ], - arguments: '{}', - ).then((dynamic jsonString) { - expect(jsonString, isA()); - expect(jsonString, equals({})); - }), - completes, - ); - }); - - const String targetUrl = - "https://jsonplaceholder.typicode.com/posts/1/comments"; - - test( - 'Verify user-defined JS function [get] returns JSArray\n' - 'when fetching $targetUrl\n' - 'while running on [JsIsolatedWorker]', () async { - await JsIsolatedWorker().importScripts(['user_defined_js_fn.js']); - expectLater( - JsIsolatedWorker().run(functionName: 'get', arguments: targetUrl).then( - (dynamic responseData) { - expect(responseData, isA()); - expect(responseData.length, equals(5)); - expect(responseData[0], isA()); - expect(responseData[0]['email'], equals('Eliseo@gardner.biz')); - }, - ), - completes, - ); - }); - }); - - group('Test [WorkerDelegator] on Web\n', () { - setUpAll(() { - const JsDelegate dummyJsDelegate = JsDelegate( - callback: ['JSON', 'stringify'], - ); - - final DefaultDelegate dummyDefDelegate = DefaultDelegate( - callback: (String a) => '', - ); - - final WorkerDelegate dummyWorkerDelegate = WorkerDelegate( - key: 'dummyJsonStringify', - defaultDelegate: dummyDefDelegate, - jsDelegate: dummyJsDelegate, - ); - - WorkerDelegator().addDelegate(dummyWorkerDelegate); - }); - - test( - 'Verify [JSON.stringify] returns "{}"\n' - 'when running on [WorkerDelegator]', () { - expectLater( - WorkerDelegator().run( - 'dummyJsonStringify', - {}, - ).then((dynamic jsonString) { - expect(jsonString, isA()); - expect(jsonString, equals('{}')); - }), - completes, - ); - }); - }); -} diff --git a/test/web/user_defined_js_fn.js b/test/web/user_defined_js_fn.js deleted file mode 100644 index 493f9da..0000000 --- a/test/web/user_defined_js_fn.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - * @param {string} url - * @returns {*} - */ -async function get(url) { - const response = await fetch(url, { - method: 'GET', - mode: 'cors', - headers: { - 'Accept': 'application/json', - }, - }); - return await response.json(); -} \ No newline at end of file diff --git a/test/web/worker.js b/test/web/worker.js deleted file mode 100644 index 8c001d5..0000000 --- a/test/web/worker.js +++ /dev/null @@ -1 +0,0 @@ -onmessage=a=>{var t,s;void 0!==a.data[0]&&"$init_scripts"===a.data[0]?(s=a.data.slice(1),_i(s)):(t=a.data[0],s=a.data[1],a=a.data[2],_d(t,s,a))};const _i=a=>{importScripts(...a)},_d=async(s,e,a)=>{try{let t;if("string"==typeof e)t=self[e];else{var r=e.length;t=self[e[0]];for(let a=1;a