# @vangware/window-open-promise

> 🪟 Promised Window.open();

Latest version **5.1.51** (published 2023-10-19) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install @vangware/window-open-promise
pnpm add @vangware/window-open-promise
yarn add @vangware/window-open-promise
bun add @vangware/window-open-promise
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 5.1.51 |
| Published | 2023-10-19 |
| First published | 2018-02-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=21 |
| Dependencies | 3 |
| Unpacked size | 14.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Vangware |
| Maintainers | lukeshiru |
| Keywords | front, front-end, javascript, open, promise, promised, window |

## Links

- npm: https://www.npmjs.com/package/@vangware/window-open-promise
- Repository: https://github.com/vangware/libraries
- Homepage: https://vangware.com/libraries/vangware_window_open_promise/
- Issues: https://github.com/vangware/libraries/issues
- npm.io page: https://npm.io/package/@vangware/window-open-promise

## Dependencies (3)

- [@vangware/types](https://npm.io/package/@vangware/types.md) 6.3.7
- [@vangware/iterables](https://npm.io/package/@vangware/iterables.md) 3.1.30
- [@vangware/predicates](https://npm.io/package/@vangware/predicates.md) 2.2.6

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 5.1.51 (latest) — 2023-10-19
- 5.1.50 — 2023-10-18
- 5.1.49 — 2023-10-11
- 5.1.48 — 2023-10-07
- 5.1.47 — 2023-10-07
- 5.1.46 — 2023-10-05
- 5.1.45 — 2023-10-04
- 5.1.44 — 2023-10-03
- 5.1.42 — 2023-09-25
- 5.1.41 — 2023-09-21
- 5.1.40 — 2023-09-21
- 5.1.39 — 2023-09-14
- 5.1.38 — 2023-09-14
- 5.1.37 — 2023-09-14
- 5.1.36 — 2023-09-12
- … 120 more at https://npm.io/package/@vangware/window-open-promise/versions

## README

<img id="logo" alt="@vangware/window-open-promise" src="https://vangware.com/logos/vangware_window_open_promise.svg" height="128" />

![Coverage][coverage-badge] ![License][license-badge]
![NPM Version][npm-version-badge] ![Open Issues][open-issues-badge]
![Size][size-badge]

🪟 Promised `Window.open();`.

## Usage

### 📦 Node

Install `@vangware/window-open-promise` as a dependency:

```bash
pnpm add @vangware/window-open-promise
# or
npm install @vangware/window-open-promise
# or
yarn add @vangware/window-open-promise
```

Import it and use it:

```typescript
import { windowOpenPromise } from "@vangware/window-open-promise";

const windowOpen = windowOpenPromise(globalThis);

windowOpen({
	url: "https://example.com", // URL is not required, you can open a blank window
	top: 10,
	left: 10,
})
	.then(newWindow => {
		newWindow.console.log("This will log in the new window.");
		newWindow.addEventListener("beforeunload", _event => {
			console.log("This will log when the new window is closed.");
		});
	})
	.catch(_error => {
		console.error("This will log if the new window can't be opened.");
	});
```

### 🦕 Deno

Import `@vangware/window-open-promise` using the `npm:` prefix, and use it
directly:

```typescript
import { windowOpenPromise } from "npm:@vangware/window-open-promise";

const windowOpen = windowOpenPromise(globalThis);

try {
	const newWindow = await windowOpen({
		url: "https://example.com", // URL is not required, you can open a blank window
		top: 10,
		left: 10,
	});
	newWindow.console.log("This will log in the new window.");
	newWindow.addEventListener("beforeunload", _event => {
		console.log("This will log when the new window is closed.");
	});
} catch (_error) {
	console.error("This will log if the new window can't be opened.");
}
```

### 🌎 Browser

Import `@vangware/window-open-promise` using [esm.sh][esm.sh], and use it
directly:

```html
<script type="module">
	import { windowOpenPromise } from "https://esm.sh/@vangware/window-open-promise";

	const windowOpen = windowOpenPromise(globalThis);

	try {
		const newWindow = await windowOpen({
			url: "https://example.com", // URL is not required, you can open a blank window
			top: 10,
			left: 10,
		});
		newWindow.console.log("This will log in the new window.");
		newWindow.addEventListener("beforeunload", _event => {
			console.log("This will log when the new window is closed.");
		});
	} catch (_error) {
		console.error("This will log if the new window can't be opened.");
	}
</script>
```

## Useful links

-   📝 [Documentation][documentation]: TypeDoc generated documentation.
-   ⏳ [Changelog][changelog]: List of changes between versions.
-   ✅ [Tests Coverage][coverage]: Coveralls page with tests coverage.

<!-- Reference -->

[changelog]:
	https://github.com/vangware/libraries/blob/main/packages/@vangware/window-open-promise/CHANGELOG.md
[coverage-badge]:
	https://img.shields.io/coveralls/github/vangware/libraries.svg?labelColor=666&color=0a8
[coverage]: https://coveralls.io/github/vangware/libraries
[documentation]: https://vangware.com/libraries/vangware_window_open_promise/
[esm.sh]: https://esm.sh
[license-badge]:
	https://img.shields.io/npm/l/@vangware/window-open-promise.svg?labelColor=666&color=0a8
[npm-version-badge]:
	https://img.shields.io/npm/v/@vangware/window-open-promise.svg?labelColor=666&color=0a8
[open-issues-badge]:
	https://img.shields.io/github/issues/vangware/libraries.svg?labelColor=666&color=0a8
[size-badge]:
	https://img.shields.io/badge/dynamic/json?label=size&labelColor=666&color=0a8&suffix=KiB&query=%24.size&url=https%3A%2F%2Fraw.githubusercontent.com%2Fvangware%2Flibraries%2Fmain%2Fpackages%2F%40vangware%2Fwindow-open-promise%2Fpackage.json

---
_Source: https://npm.io/package/@vangware/window-open-promise · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
