From eb7d8beddc02179d72aeb06843b95317ce8a70b2 Mon Sep 17 00:00:00 2001 From: Marten Richter Date: Wed, 21 Feb 2024 07:04:58 +0000 Subject: [PATCH] Hopefully fix types for universal package --- main/lib/index.browser.js | 1 + main/lib/index.node.js | 1 + main/lib/index.types.js | 33 +++++++++++++++++++++++++++++++++ main/package.json | 2 +- 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 main/lib/index.types.js diff --git a/main/lib/index.browser.js b/main/lib/index.browser.js index 8158df0c..974b8873 100644 --- a/main/lib/index.browser.js +++ b/main/lib/index.browser.js @@ -23,6 +23,7 @@ * @typedef {import('./types').HttpServerInit} HttpServerInit */ +// also edit index.types.js export { WebTransportPonyfill, WebTransportPolyfill diff --git a/main/lib/index.node.js b/main/lib/index.node.js index 50a4b50c..254fada4 100644 --- a/main/lib/index.node.js +++ b/main/lib/index.node.js @@ -23,5 +23,6 @@ * @typedef {import('./types').HttpServerInit} HttpServerInit */ +// also edit index.types.js export { HttpServer, Http3Server, Http2Server } from './server.js' export { WebTransport } from './webtransport.node.js' diff --git a/main/lib/index.types.js b/main/lib/index.types.js new file mode 100644 index 00000000..e5576cb3 --- /dev/null +++ b/main/lib/index.types.js @@ -0,0 +1,33 @@ +/* eslint-disable no-prototype-builtins */ +// Copyright (c) 2022 Marten Richter or other contributers (see commit). All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * // Spec + * @typedef {import('./dom').WebTransportDatagramStats} WebTransportDatagramStats + * @typedef {import('./dom').WebTransportStats} WebTransportStats + * @typedef {import('./dom').WebTransportCloseInfo} WebTransportCloseInfo + * @typedef {import('./dom').WebTransportDatagramDuplexStream} WebTransportDatagramDuplexStream + * @typedef {import('./dom').WebTransportBidirectionalStream} WebTransportBidirectionalStream + * @typedef {import('./dom').WebTransportSendStreamStats} WebTransportSendStreamStats + * @typedef {import('./dom').WebTransportSendStream} WebTransportSendStream + * @typedef {import('./dom').WebTransportReceiveStreamStats} WebTransportReceiveStreamStats + * @typedef {import('./dom').WebTransportReceiveStream} WebTransportReceiveStream + * @typedef {import('./dom').WebTransportHash} WebTransportHash + * @typedef {import('./dom').WebTransportOptions} WebTransportOptions + * @typedef {import('./dom').WebTransportReliabilityMode} WebTransportReliabilityMode + * + * Public API + * @typedef {import('./types').WebTransportSessionImpl} WebTransportSession + * @typedef {import('./types').HttpServerInit} HttpServerInit + */ + +// both imports from the browser side and for nodes to generate a joint type file +export { HttpServer, Http3Server, Http2Server } from './server.js' +export { WebTransport } from './webtransport.node.js' + +export { + WebTransportPonyfill, + WebTransportPolyfill +} from './webtransport.browser.js' diff --git a/main/package.json b/main/package.json index e756f178..0760679d 100644 --- a/main/package.json +++ b/main/package.json @@ -12,7 +12,7 @@ "node": ">=16.5" }, "type": "module", - "types": "./dist/lib/index.d.ts", + "types": "./dist/lib/index.types.d.ts", "scripts": { "start": "node test/echoserver.js", "test": "npm run test:node && npm run test:node:http2 && npm run test:chromium && npm run test:chromium:http2:polyfill && npm run test:chromium:http2:ponyfill && npm run test:firefox:http2:polyfill && npm run test:firefox:http2:ponyfill && npm run test:webkit:http2:polyfill && npm run test:webkit:http2:ponyfill",