bare-worker 4.1.6 → 4.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -7,6 +7,7 @@ const constants = require('./lib/constants')
7
7
 
8
8
  const preloads = new Map()
9
9
 
10
+ let environmentData = new Map()
10
11
  let parentPort = null
11
12
  let workerData = null
12
13
 
@@ -17,6 +18,7 @@ if (WorkerState.parent) {
17
18
 
18
19
  parentPort = WorkerState.parent.port
19
20
  workerData = WorkerState.parent.data
21
+ environmentData = WorkerState.parent.environmentData
20
22
  }
21
23
 
22
24
  const worker = Thread.prepare(require.resolve('./lib/worker-thread'), { shared: true })
@@ -36,7 +38,8 @@ module.exports = exports = class Worker extends MessagePort {
36
38
  source: Thread.prepare(entry, { shared: true }),
37
39
  channel: channel.handle,
38
40
  data: workerData,
39
- preloads
41
+ preloads,
42
+ environmentData
40
43
  }
41
44
  })
42
45
 
@@ -59,6 +62,10 @@ module.exports = exports = class Worker extends MessagePort {
59
62
  return this._terminating.promise
60
63
  }
61
64
 
65
+ async [Symbol.asyncDispose]() {
66
+ await this.terminate()
67
+ }
68
+
62
69
  [Symbol.for('bare.inspect')]() {
63
70
  return {
64
71
  __proto__: { constructor: Worker },
@@ -78,6 +85,14 @@ module.exports = exports = class Worker extends MessagePort {
78
85
  }
79
86
  }
80
87
 
88
+ exports.setEnvironmentData = function setEnvironmentData(key, value) {
89
+ environmentData.set(key, value)
90
+ }
91
+
92
+ exports.getEnvironmentData = function getEnvironmentData(key) {
93
+ return environmentData.get(key)
94
+ }
95
+
81
96
  exports.Worker = exports
82
97
 
83
98
  exports.MessageChannel = MessageChannel
@@ -59,6 +59,10 @@ module.exports = exports = class MessagePort extends EventEmitter {
59
59
  this._unref()
60
60
  }
61
61
 
62
+ hasRef() {
63
+ return (this._state & constants.state.REFED) !== 0
64
+ }
65
+
62
66
  [Symbol.for('bare.inspect')]() {
63
67
  return {
64
68
  __proto__: { constructor: MessagePort },
@@ -1,6 +1,4 @@
1
1
  const Channel = require('bare-channel')
2
- const MessageChannel = require('./message-channel')
3
- const MessagePort = require('./message-port')
4
2
 
5
3
  const state = Symbol.for('bare.worker.state')
6
4
  const kind = Symbol.for('bare.worker.state.kind')
@@ -11,15 +9,19 @@ class WorkerState {
11
9
  }
12
10
 
13
11
  constructor() {
14
- const { source, preloads, data, channel: handle } = Bare.Thread.self.data
12
+ this._MessageChannel = require('./message-channel')
13
+ this._MessagePort = require('./message-port')
14
+
15
+ const { source, preloads, data, environmentData, channel: handle } = Bare.Thread.self.data
15
16
 
16
17
  this.source = source
17
18
  this.preloads = preloads
18
19
  this.data = Bare.Thread.self.data = data
20
+ this.environmentData = environmentData
19
21
 
20
- const channel = Channel.from(handle, { interfaces: [MessagePort] })
22
+ const channel = Channel.from(handle, { interfaces: [this._MessagePort] })
21
23
 
22
- this.port = new MessagePort(channel)
24
+ this.port = new this._MessagePort(channel)
23
25
  this.port._online()
24
26
 
25
27
  global[state] = this
@@ -30,11 +32,11 @@ class WorkerState {
30
32
  }
31
33
 
32
34
  get MessageChannel() {
33
- return MessageChannel
35
+ return this._MessageChannel
34
36
  }
35
37
 
36
38
  get MessagePort() {
37
- return MessagePort
39
+ return this._MessagePort
38
40
  }
39
41
  }
40
42
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-worker",
3
- "version": "4.1.6",
3
+ "version": "4.1.8",
4
4
  "description": "Higher-level worker threads for JavaScript",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -17,7 +17,9 @@
17
17
  "lib"
18
18
  ],
19
19
  "scripts": {
20
- "test": "prettier . --check && bare test.js"
20
+ "format": "prettier --write . && lunte --fix",
21
+ "lint": "prettier --check . && lunte",
22
+ "test": "brittle-bare --coverage test.js"
21
23
  },
22
24
  "repository": {
23
25
  "type": "git",
@@ -33,10 +35,11 @@
33
35
  "bare-channel": "^5.1.5",
34
36
  "bare-events": "^2.2.1",
35
37
  "bare-module": "^6.0.1",
36
- "bare-thread": "^1.1.3"
38
+ "bare-thread": "^1.2.2"
37
39
  },
38
40
  "devDependencies": {
39
41
  "brittle": "^3.2.1",
42
+ "lunte": "^1.8.0",
40
43
  "prettier": "^3.4.1",
41
44
  "prettier-config-holepunch": "^2.0.0"
42
45
  }