---
url: https://scruple.dev/rules/resources/no-leaked-resources.md
description: Disallow owned resources left unreleased.
---

# resources/no-leaked-resources

Disallow owned resources left unreleased.

## What it checks

Functions should release acquired files, streams, sockets, connections, subscriptions, watchers, locks, transactions, and handles or visibly transfer ownership.

## Rule metadata

* Package: `@scruple/resources`
* Category: Resource lifecycle
* Tags: cleanup, ownership, handles
* Default threshold: `0.65`
* Minimum confidence: `0.5`

## Examples

### Reported

```ts
async function read() { const file = await open(path); return file.read(); }
```

### Accepted

```ts
async function read() { await using file = await open(path); return file.read(); }
```
