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..cc04c11
--- /dev/null
+++ b/.idea/libraries/Dart_Packages.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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..fb14028
--- /dev/null
+++ b/.idea/libraries/Dart_SDK.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..6e86672
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ 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/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/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..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.12.0 <3.0.0'
+ sdk: '>=3.0.0 <4.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
diff --git a/test/isolated_worker_test.dart b/test/isolated_worker_test.dart
deleted file mode 100644
index f363fce..0000000
--- a/test/isolated_worker_test.dart
+++ /dev/null
@@ -1,157 +0,0 @@
-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) {
- 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,
- );
- },
- );
- });
-
- 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,
- );
- });
- });
-}
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