Skip to content

Adds targets for the other environments #1062

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jul 19, 2021
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 28 additions & 1 deletion deploy/createTypesPackages.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,34 @@ export const packages = [
readme: "./readmes/web.md",
files: [
{ from: "../generated/dom.generated.d.ts", to: "index.d.ts" },
{ from: "../generated/dom.iterable.generated.d.ts", to: "index.iterable.d.ts" }
{ from: "../generated/dom.iterable.generated.d.ts", to: "index.iterable.d.ts" },
],
},
{
name: "@types/serviceworker",
description: "Types for the global scope of Service Workers",
readme: "./readmes/serviceworker.md",
files: [
{ from: "../generated/serviceworker.generated.d.ts", to: "index.d.ts" },
{ from: "../generated/serviceworker.iterable.generated.d.ts", to: "index.iterable.d.ts" },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While you are at it: how can index.iterable.d.ts be referenced? 👀 Should the step be added to readme?

Copy link
Contributor Author

@orta orta Jul 19, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hrm, I thought it would be automatically be included in all builds because it lives in @types and we read all the files in there. Haven't actually checked though.

Copy link
Contributor

@saschanaz saschanaz Jul 19, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Somehow it doesn't work like that in my environment (see there is no index.iterable.d.ts):

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree, the build pipeline will probably need to add something like /// <reference path="..." /> to the index.dt.s

A user can probably get these imported into their globals via import "web/index.iterable" but that's weaksauce

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But that would mean packages will require es6+ 🤔

Copy link
Contributor Author

@orta orta Jul 19, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding /// <reference path="./index.iterable.d.ts" /> to the top of index.d.ts automatically includes it. I think this is a reasonable enough default if we document it as supporting ES6+

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, since it's probably time to concentrate on es6+ 😁

],
},
{
name: "@types/audioworklet",
description: "Types for the global scope of Audio Worklets",
readme: "./readmes/audioworklet.md",
files: [
{ from: "../generated/audioworklet.generated.d.ts", to: "index.d.ts" },
{ from: "../generated/audioworklet.iterable.generated.d.ts", to: "index.iterable.d.ts" },
],
},
{
name: "@types/sharedworker",
description: "Types for the global scope of Shared Workers",
readme: "./readmes/sharedworker.md",
files: [
{ from: "../generated/sharedworker.generated.d.ts", to: "index.d.ts" },
{ from: "../generated/sharedworker.iterable.generated.d.ts", to: "index.iterable.d.ts" },
],
},
];
Expand Down
30 changes: 30 additions & 0 deletions deploy/readmes/audioworklet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
### `@types/audioworklet` - Types for the global scope of Audio Worklets

> The AudioWorklet interface of the Web Audio API is used to supply custom audio processing scripts that execute in a separate thread to provide very low latency audio processing. The worklet's code is run in the AudioWorkletGlobalScope global execution context, using a separate Web Audio thread which is shared by the worklet and other audio nodes.

From [MDN Web Docs: AudioWorklet](https://developer.mozilla.org/en-US/docs/Web/API/AudioWorklet)

This package contains type definitions which will set up the global environment for your TypeScript project to match the runtime environment of an Audio Worklet. The APIs inside `@types/audioworklet` are [generated from](https://github.com/microsoft/TypeScript-DOM-lib-generator/) the specifications for [Web Audio](https://webaudio.github.io/web-audio-api/).

## Installation

To use `@types/audioworklet` you need to do two things:

1. Install the dependency: `npm install @types/audioworklet --save-dev`, `yarn add @types/audioworklet --dev` or `pnpm add @types/audioworklet --dev`.
1. Update your [`tsconfig.json`](https://www.typescriptlang.org/tsconfig) to avoid clashing with the DOM APIs. There are two cases to consider depending on if you have `lib` defined in your `tsconfig.json` or not.

1. **Without "lib"** - You will need to add `"lib": []`. The value you want to add inside your lib should correlate to your [`"target"`](https://www.typescriptlang.org/tsconfig#target). For example if you had `"target": "es2017"`, then you would add `"lib": ["es2017"]`
1. **With "lib"** - You should remove `"dom"`.

That's all.


## SemVer

This project does not respect semantic versioning as almost every change could potentially break a project, though we try to minimize removing types.

`@types/audioworklet` follow the specifications, so when they mark a function/object/API/type as deprecated or removed - that is respected.

## Deploy Metadata

You can read what changed in version {{version}} at {{release_href}}.
30 changes: 30 additions & 0 deletions deploy/readmes/serviceworker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
### `@types/serviceworker` - Types for the global scope of Service Workers

> Service workers essentially act as proxy servers that sit between web applications, the browser, and the network (when available). They are intended, among other things, to enable the creation of effective offline experiences, intercept network requests and take appropriate action based on whether the network is available, and update assets residing on the server. They will also allow access to push notifications and background sync APIs.

From [MDN Web Docs: Service Worker API](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API)

This package contains type definitions which will set up the global environment for your TypeScript project to match the runtime environment of a Service Worker. The APIs inside `@types/serviceworker` are [generated from](https://github.com/microsoft/TypeScript-DOM-lib-generator/) the specifications for JavaScript. Given the size and state of constant change in web browsers, `@types/serviceworker` only has APIs which have passed a certain level of standardization and are available in at least two of the most popular browser engines.

## Installation

To use `@types/serviceworker` you need to do two things:

1. Install the dependency: `npm install @types/serviceworker --save-dev`, `yarn add @types/serviceworker --dev` or `pnpm add @types/serviceworker --dev`.
1. Update your [`tsconfig.json`](https://www.typescriptlang.org/tsconfig) to avoid clashing with the DOM APIs. There are two cases to consider depending on if you have `lib` defined in your `tsconfig.json` or not.

1. **Without "lib"** - You will need to add `"lib": []`. The value you want to add inside your lib should correlate to your [`"target"`](https://www.typescriptlang.org/tsconfig#target). For example if you had `"target": "es2017"`, then you would add `"lib": ["es2017"]`
1. **With "lib"** - You should remove `"dom"`.

That's all.


## SemVer

This project does not respect semantic versioning as almost every change could potentially break a project, though we try to minimize removing types.

`@types/serviceworker` follow the specifications, so when they mark a function/object/API/type as deprecated or removed - that is respected.

## Deploy Metadata

You can read what changed in version {{version}} at {{release_href}}.
30 changes: 30 additions & 0 deletions deploy/readmes/sharedworker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
### `@types/sharedworker` - Types for the global scope of Web Workers

> The SharedWorker interface represents a specific kind of worker that can be accessed from several browsing contexts, such as several windows, iframes or even workers. They implement an interface different than dedicated workers and have a different global scope, `SharedWorkerGlobalScope`.

From [MDN Web Docs: SharedWorker API](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker)

This package contains type definitions which will set up the global environment for your TypeScript project to match the runtime environment of a Web Worker. The APIs inside `@types/sharedworker` are [generated from](https://github.com/microsoft/TypeScript-DOM-lib-generator/) the specifications for JavaScript.

## Installation

To use `@types/sharedworker` you need to do two things:

1. Install the dependency: `npm install @types/sharedworker --save-dev`, `yarn add @types/sharedworker --dev` or `pnpm add @types/sharedworker --dev`.
1. Update your [`tsconfig.json`](https://www.typescriptlang.org/tsconfig) to avoid clashing with the DOM APIs. There are two cases to consider depending on if you have `lib` defined in your `tsconfig.json` or not.

1. **Without "lib"** - You will need to add `"lib": []`. The value you want to add inside your lib should correlate to your [`"target"`](https://www.typescriptlang.org/tsconfig#target). For example if you had `"target": "es2017"`, then you would add `"lib": ["es2017"]`
1. **With "lib"** - You should remove `"dom"`.

That's all.


## SemVer

This project does not respect semantic versioning as almost every change could potentially break a project, though we try to minimize removing types.

`@types/sharedworker` follow the specifications, so when they mark a function/object/API/type as deprecated or removed - that is respected.

## Deploy Metadata

You can read what changed in version {{version}} at {{release_href}}.
2 changes: 1 addition & 1 deletion deploy/readmes/web.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This module contains the DOM types for the majority of the web APIs used in a web browser.

The APIs inside `@types/web` are generated from the specifications for CSS, HTML and JavaScript. Given the size and state of constant change in web browsers, `@types/web` only has APIs which have passed a certain level of standardization and are available in at least two different browser engines.
The APIs inside `@types/web` are [generated from](https://github.com/microsoft/TypeScript-DOM-lib-generator/) the specifications for CSS, HTML and JavaScript. Given the size and state of constant change in web browsers, `@types/web` only has APIs which have passed a certain level of standardization and are available in at least two of the most popular browser engines.

`@types/web` is also included inside TypeScript, available as `dom` in the [`lib`](https://www.typescriptlang.org/tsconfig#lib) section and included in projects by default. By using `@types/web` you can lock your the web APIs used in your projects, easing the process of updating TypeScript and offering more control in your environment.

Expand Down
30 changes: 30 additions & 0 deletions deploy/readmes/webworker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
### `@types/webworker` - Types for the global scope of Web Workers

> The Worker interface of the Web Workers API represents a background task that can be created via script, which can send messages back to its creator. Creating a worker is done by calling the `Worker("path/to/worker/script")` constructor.

From [MDN Web Docs: Worker API](https://developer.mozilla.org/en-US/docs/Web/API/Worker)

This package contains type definitions which will set up the global environment for your TypeScript project to match the runtime environment of a Web Worker. The APIs inside `@types/webworker` are [generated from](https://github.com/microsoft/TypeScript-DOM-lib-generator/) the specifications for JavaScript.

## Installation

To use `@types/webworker` you need to do two things:

1. Install the dependency: `npm install @types/webworker --save-dev`, `yarn add @types/webworker --dev` or `pnpm add @types/webworker --dev`.
1. Update your [`tsconfig.json`](https://www.typescriptlang.org/tsconfig) to avoid clashing with the DOM APIs. There are two cases to consider depending on if you have `lib` defined in your `tsconfig.json` or not.

1. **Without "lib"** - You will need to add `"lib": []`. The value you want to add inside your lib should correlate to your [`"target"`](https://www.typescriptlang.org/tsconfig#target). For example if you had `"target": "es2017"`, then you would add `"lib": ["es2017"]`
1. **With "lib"** - You should remove `"dom"`.

That's all.


## SemVer

This project does not respect semantic versioning as almost every change could potentially break a project, though we try to minimize removing types.

`@types/webworker` follow the specifications, so when they mark a function/object/API/type as deprecated or removed - that is respected.

## Deploy Metadata

You can read what changed in version {{version}} at {{release_href}}.