Compare commits
3 Commits
a808724383
...
ebde519925
Author | SHA1 | Date |
---|---|---|
Ambrose Chua | ebde519925 | |
dependabot[bot] | 24db10d1ac | |
dependabot[bot] | 55e48e18fa |
File diff suppressed because it is too large
Load Diff
36
package.json
36
package.json
|
@ -4,6 +4,7 @@
|
||||||
"description": "Compare various implementations of the WHATWG fetch API",
|
"description": "Compare various implementations of the WHATWG fetch API",
|
||||||
"author": "Ambrose Chua",
|
"author": "Ambrose Chua",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node --loader ts-node/esm --no-warnings src/index.ts",
|
"start": "node --loader ts-node/esm --no-warnings src/index.ts",
|
||||||
"type-check": "tsc --pretty --noEmit",
|
"type-check": "tsc --pretty --noEmit",
|
||||||
|
@ -11,26 +12,26 @@
|
||||||
"lint": "xo"
|
"lint": "xo"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@swc/core": "^1.2.85",
|
"@swc/core": "^1.2.140",
|
||||||
"@wdio/logger": "^7.7.0",
|
"@wdio/logger": "^7.16.0",
|
||||||
"chromedriver": "^93.0.1",
|
"chromedriver": "^98.0.1",
|
||||||
"cli-table3": "^0.6.0",
|
"cli-table3": "^0.6.1",
|
||||||
"geckodriver": "^2.0.4",
|
"geckodriver": "^3.0.1",
|
||||||
"get-port": "^5.1.1",
|
"get-port": "^6.0.0",
|
||||||
"koa": "^2.13.1",
|
"koa": "^2.13.4",
|
||||||
"koa-files": "^1.0.3",
|
"koa-files": "^2.0.0",
|
||||||
"node-fetch": "^3.0.0",
|
"node-fetch": "^3.2.0",
|
||||||
"tcp-port-used": "^1.0.2",
|
"tcp-port-used": "^1.0.2",
|
||||||
"ts-node": "^10.2.1",
|
"ts-node": "^10.5.0",
|
||||||
"webdriver": "^7.12.2"
|
"webdriver": "^7.16.14"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/koa": "^2.13.4",
|
"@types/koa": "^2.13.4",
|
||||||
"@types/node": "^16.9.0",
|
"@types/node": "^17.0.18",
|
||||||
"node-abort-controller": "^3.0.0",
|
"node-abort-controller": "^3.0.1",
|
||||||
"prettier": "^2.4.0",
|
"prettier": "^2.5.1",
|
||||||
"typescript": "^4.4.2",
|
"typescript": "^4.6.1-rc",
|
||||||
"xo": "^0.44.0"
|
"xo": "^0.48.0"
|
||||||
},
|
},
|
||||||
"prettier": {
|
"prettier": {
|
||||||
"semi": true,
|
"semi": true,
|
||||||
|
@ -43,7 +44,8 @@
|
||||||
"xo": {
|
"xo": {
|
||||||
"prettier": true,
|
"prettier": true,
|
||||||
"rules": {
|
"rules": {
|
||||||
"unicorn/prefer-node-protocol": "off"
|
"unicorn/prefer-node-protocol": "off",
|
||||||
|
"@typescript-eslint/naming-convention": "off"
|
||||||
},
|
},
|
||||||
"globals": [
|
"globals": [
|
||||||
"Deno",
|
"Deno",
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
import {path as chromepath} from 'chromedriver';
|
import {path as chromepath} from 'chromedriver';
|
||||||
import {path as firefoxpath} from 'geckodriver';
|
import {path as firefoxpath} from 'geckodriver';
|
||||||
|
|
||||||
import {BrowserDriver} from './types';
|
import {BrowserDriver} from './types.js';
|
||||||
|
|
||||||
export const chrome: BrowserDriver = {
|
export const chrome: BrowserDriver = {
|
||||||
path: chromepath as string,
|
path: chromepath as string,
|
||||||
args: (port: number, logLevel = 'warn') => {
|
args(port: number, logLevel = 'warn') {
|
||||||
const logLevelArg = {
|
const logLevelArg = {
|
||||||
trace: 'ALL',
|
trace: 'ALL',
|
||||||
debug: 'DEBUG',
|
debug: 'DEBUG',
|
||||||
|
@ -24,7 +24,7 @@ export const chrome: BrowserDriver = {
|
||||||
};
|
};
|
||||||
export const firefox: BrowserDriver = {
|
export const firefox: BrowserDriver = {
|
||||||
path: firefoxpath,
|
path: firefoxpath,
|
||||||
args: (port: number, logLevel = 'warn') => {
|
args(port: number, logLevel = 'warn') {
|
||||||
const logLevelArg = {
|
const logLevelArg = {
|
||||||
trace: 'trace',
|
trace: 'trace',
|
||||||
debug: 'debug',
|
debug: 'debug',
|
||||||
|
|
15
src/index.ts
15
src/index.ts
|
@ -1,15 +1,16 @@
|
||||||
import process from 'process';
|
import process from 'process';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import logger from '@wdio/logger';
|
import loggerCompat from '@wdio/logger';
|
||||||
import Table from 'cli-table3';
|
import Table from 'cli-table3';
|
||||||
|
|
||||||
import {Platform, Result, ResultObject, Context} from './types';
|
import {Platform, Result, ResultObject, Context} from './types.js';
|
||||||
import PlatformBrowser from './platform-browser';
|
import PlatformBrowser from './platform-browser.js';
|
||||||
import PlatformNode from './platform-node';
|
import PlatformNode from './platform-node.js';
|
||||||
import PlatformDeno from './platform-deno';
|
import PlatformDeno from './platform-deno.js';
|
||||||
import {chrome, firefox, safari} from './browser-drivers';
|
import {chrome, firefox, safari} from './browser-drivers.js';
|
||||||
import {FixturesServer} from './server';
|
import {FixturesServer} from './server.js';
|
||||||
|
|
||||||
|
const logger = loggerCompat.default
|
||||||
const log = logger('fetch-compare');
|
const log = logger('fetch-compare');
|
||||||
logger.setLevel('fetch-compare', 'warn');
|
logger.setLevel('fetch-compare', 'warn');
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,12 @@ import path from 'path';
|
||||||
import getPort from 'get-port';
|
import getPort from 'get-port';
|
||||||
// @ts-expect-error: Missing types
|
// @ts-expect-error: Missing types
|
||||||
import tcpPortUsed from 'tcp-port-used';
|
import tcpPortUsed from 'tcp-port-used';
|
||||||
import WebDriver from 'webdriver';
|
import WebDriverCompat from 'webdriver';
|
||||||
|
|
||||||
import {Platform, Context, Result, BrowserDriver} from './types.js';
|
import {Platform, Context, Result, BrowserDriver} from './types.js';
|
||||||
|
|
||||||
|
const WebDriver = WebDriverCompat.default
|
||||||
|
|
||||||
async function start(
|
async function start(
|
||||||
driver: BrowserDriver,
|
driver: BrowserDriver,
|
||||||
silent = false,
|
silent = false,
|
||||||
|
@ -28,7 +30,7 @@ async function start(
|
||||||
child.once('error', reject);
|
child.once('error', reject);
|
||||||
child.once('spawn', resolve);
|
child.once('spawn', resolve);
|
||||||
});
|
});
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
||||||
await tcpPortUsed.waitUntilUsed(port, 100, 10_000);
|
await tcpPortUsed.waitUntilUsed(port, 100, 10_000);
|
||||||
return {child, port};
|
return {child, port};
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ export default class PlatformDeno implements Platform {
|
||||||
const stdout = await new Promise<string>((resolve, reject) => {
|
const stdout = await new Promise<string>((resolve, reject) => {
|
||||||
let stdout = '';
|
let stdout = '';
|
||||||
child.stdout.on('data', (data) => {
|
child.stdout.on('data', (data) => {
|
||||||
stdout += data;
|
stdout += data as string;
|
||||||
});
|
});
|
||||||
child.once('error', reject);
|
child.once('error', reject);
|
||||||
child.once('exit', (code) => {
|
child.once('exit', (code) => {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {ServerAddress} from './types.js';
|
||||||
export class FixturesServer {
|
export class FixturesServer {
|
||||||
private readonly koa: Koa;
|
private readonly koa: Koa;
|
||||||
|
|
||||||
private server: net.Server | null = null;
|
private server?: net.Server;
|
||||||
|
|
||||||
constructor(path: string) {
|
constructor(path: string) {
|
||||||
this.koa = new Koa();
|
this.koa = new Koa();
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
/* eslint-disable @typescript-eslint/ban-types */
|
||||||
export type ResultObject =
|
export type ResultObject =
|
||||||
| string
|
| string
|
||||||
| number
|
| number
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "es2020",
|
"target": "es2020",
|
||||||
|
"module": "es2020",
|
||||||
|
"moduleResolution": "node",
|
||||||
"types": ["node"],
|
"types": ["node"],
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"moduleResolution": "node",
|
|
||||||
"strict": true
|
"strict": true
|
||||||
},
|
},
|
||||||
"exclude": ["node_modules"],
|
"exclude": ["node_modules"],
|
||||||
"ts-node": {
|
"ts-node": {
|
||||||
"transpileOnly": true,
|
"swc": true
|
||||||
"transpiler": "ts-node/transpilers/swc-experimental"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue