You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					48 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					48 lines
				
				1.5 KiB
			| 
											3 years ago
										 | import { test } from 'tap' | ||
|  | import { readFile } from 'fs' | ||
|  | import ThreadStream from '../index.js' | ||
|  | import { join } from 'desm' | ||
|  | import { pathToFileURL } from 'url' | ||
|  | import { file } from './helper.js' | ||
|  | 
 | ||
|  | function basic (text, filename) { | ||
|  |   test(text, function (t) { | ||
|  |     t.plan(5) | ||
|  | 
 | ||
|  |     const dest = file() | ||
|  |     const stream = new ThreadStream({ | ||
|  |       filename, | ||
|  |       workerData: { dest }, | ||
|  |       sync: true | ||
|  |     }) | ||
|  | 
 | ||
|  |     stream.on('finish', () => { | ||
|  |       readFile(dest, 'utf8', (err, data) => { | ||
|  |         t.error(err) | ||
|  |         t.equal(data, 'hello world\nsomething else\n') | ||
|  |       }) | ||
|  |     }) | ||
|  | 
 | ||
|  |     stream.on('close', () => { | ||
|  |       t.pass('close emitted') | ||
|  |     }) | ||
|  | 
 | ||
|  |     t.ok(stream.write('hello world\n')) | ||
|  |     t.ok(stream.write('something else\n')) | ||
|  | 
 | ||
|  |     stream.end() | ||
|  |   }) | ||
|  | } | ||
|  | 
 | ||
|  | basic('esm with path', join(import.meta.url, 'to-file.mjs')) | ||
|  | basic('esm with file URL', pathToFileURL(join(import.meta.url, 'to-file.mjs')).href) | ||
|  | 
 | ||
|  | basic('(ts -> es6) esm with path', join(import.meta.url, 'ts', 'to-file.es6.mjs')) | ||
|  | basic('(ts -> es6) esm with file URL', pathToFileURL(join(import.meta.url, 'ts', 'to-file.es6.mjs')).href) | ||
|  | 
 | ||
|  | basic('(ts -> es2017) esm with path', join(import.meta.url, 'ts', 'to-file.es2017.mjs')) | ||
|  | basic('(ts -> es2017) esm with file URL', pathToFileURL(join(import.meta.url, 'ts', 'to-file.es2017.mjs')).href) | ||
|  | 
 | ||
|  | basic('(ts -> esnext) esm with path', join(import.meta.url, 'ts', 'to-file.esnext.mjs')) | ||
|  | basic('(ts -> esnext) esm with file URL', pathToFileURL(join(import.meta.url, 'ts', 'to-file.esnext.mjs')).href) |