File tree Expand file tree Collapse file tree 3 files changed +26
-2
lines changed Expand file tree Collapse file tree 3 files changed +26
-2
lines changed Original file line number Diff line number Diff line change 33
33
"author" :
" Jason Miller <[email protected] > (http://jasonformat.com)" ,
34
34
"license" : " MIT" ,
35
35
"devDependencies" : {
36
- "eslint" : " ^5.0 .0" ,
36
+ "eslint" : " ^5.16 .0" ,
37
37
"eslint-config-developit" : " ^1.1.1" ,
38
38
"karmatic" : " ^1.2.0" ,
39
39
"microbundle" : " ^0.6.0" ,
Original file line number Diff line number Diff line change @@ -122,11 +122,16 @@ loader.pitch = function(request) {
122
122
delete this . _compilation . assets [ worker . file ] ;
123
123
}
124
124
125
+ let workerUrl = worker . url ;
126
+ if ( options . import ) {
127
+ workerUrl = `"data:,importScripts('"+location.origin+${ workerUrl } +"')"` ;
128
+ }
129
+
125
130
return cb ( null , `
126
131
var addMethods = require(${ loaderUtils . stringifyRequest ( this , path . resolve ( __dirname , 'rpc-wrapper.js' ) ) } )
127
132
var methods = ${ JSON . stringify ( exports ) }
128
133
module.exports = function() {
129
- var w = new Worker(${ worker . url } , { name: ${ JSON . stringify ( filename ) } })
134
+ var w = new Worker(${ workerUrl } , { name: ${ JSON . stringify ( filename ) } })
130
135
addMethods(w, methods)
131
136
${ options . ready ? 'w.ready = new Promise(function(r) { w.addEventListener("ready", function(){ r(w) }) })' : '' }
132
137
return w
Original file line number Diff line number Diff line change 1
1
import './other' ;
2
2
import Worker from 'workerize-loader?ready&name=test!./worker' ;
3
3
import InlineWorker from 'workerize-loader?ready&inline&name=test!./worker' ;
4
+ import ImportWorker from 'workerize-loader?import!./worker' ;
4
5
5
6
describe ( 'worker' , ( ) => {
6
7
let worker ;
@@ -95,3 +96,21 @@ describe('async/await demo', () => {
95
96
expect ( elapsed ) . toBeLessThan ( 20 ) ;
96
97
} ) ;
97
98
} ) ;
99
+
100
+ describe ( '?import option' , ( ) => {
101
+ let worker ;
102
+
103
+ it ( 'should be an instance of Worker' , ( ) => {
104
+ worker = new ImportWorker ( ) ;
105
+ expect ( worker ) . toEqual ( jasmine . any ( window . Worker ) ) ;
106
+ } ) ;
107
+
108
+ it ( 'worker.foo()' , async ( ) => {
109
+ expect ( await worker . foo ( ) ) . toBe ( 1 ) ;
110
+ } ) ;
111
+
112
+ it ( 'worker.bar()' , async ( ) => {
113
+ let out = await worker . bar ( 'a' , 'b' ) ;
114
+ expect ( out ) . toEqual ( 'a [bar:3] b' ) ;
115
+ } ) ;
116
+ } ) ;
You can’t perform that action at this time.
0 commit comments