File tree Expand file tree Collapse file tree 4 files changed +34
-12
lines changed Expand file tree Collapse file tree 4 files changed +34
-12
lines changed Original file line number Diff line number Diff line change 11node_modules
2- .DS_Store
3- .cache
4- .mocha-puppeteer
5- * .log
6- build
7- dist
82package-lock.json
93yarn.lock
4+ dist
5+ coverage
6+ .DS_Store
7+ * .log
Original file line number Diff line number Diff line change 3333 "author" :
" Jason Miller <[email protected] > (http://jasonformat.com)" ,
3434 "license" : " MIT" ,
3535 "devDependencies" : {
36- "eslint" : " ^5.0 .0" ,
36+ "eslint" : " ^5.16 .0" ,
3737 "eslint-config-developit" : " ^1.1.1" ,
38- "karmatic" : " ^1.2.0 " ,
39- "microbundle" : " ^0.6 .0" ,
40- "webpack" : " ^4.17.1 "
38+ "karmatic" : " ^1.3.1 " ,
39+ "microbundle" : " ^0.11 .0" ,
40+ "webpack" : " ^4.39.2 "
4141 },
4242 "dependencies" : {
43- "loader-utils" : " ^1.1.0 "
43+ "loader-utils" : " ^1.2.3 "
4444 },
4545 "peerDependencies" : {
4646 "webpack" : " *"
Original file line number Diff line number Diff line change @@ -122,11 +122,16 @@ loader.pitch = function(request) {
122122 delete this . _compilation . assets [ worker . file ] ;
123123 }
124124
125+ let workerUrl = worker . url ;
126+ if ( options . import ) {
127+ workerUrl = `"data:,importScripts('"+location.origin+${ workerUrl } +"')"` ;
128+ }
129+
125130 return cb ( null , `
126131 var addMethods = require(${ loaderUtils . stringifyRequest ( this , path . resolve ( __dirname , 'rpc-wrapper.js' ) ) } )
127132 var methods = ${ JSON . stringify ( exports ) }
128133 module.exports = function() {
129- var w = new Worker(${ worker . url } , { name: ${ JSON . stringify ( filename ) } })
134+ var w = new Worker(${ workerUrl } , { name: ${ JSON . stringify ( filename ) } })
130135 addMethods(w, methods)
131136 ${ options . ready ? 'w.ready = new Promise(function(r) { w.addEventListener("ready", function(){ r(w) }) })' : '' }
132137 return w
Original file line number Diff line number Diff line change 11import './other' ;
22import Worker from 'workerize-loader?ready&name=test!./worker' ;
33import InlineWorker from 'workerize-loader?ready&inline&name=test!./worker' ;
4+ import ImportWorker from 'workerize-loader?import!./worker' ;
45
56describe ( 'worker' , ( ) => {
67 let worker ;
@@ -95,3 +96,21 @@ describe('async/await demo', () => {
9596 expect ( elapsed ) . toBeLessThan ( 20 ) ;
9697 } ) ;
9798} ) ;
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