# @techor/query-workspaces

> Query workspaces with package.json

Latest version **2.4.6** (published 2023-07-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install @techor/query-workspaces
pnpm add @techor/query-workspaces
yarn add @techor/query-workspaces
bun add @techor/query-workspaces
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.4.6 |
| Published | 2023-07-25 |
| First published | 2023-03-31 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 3 |
| Unpacked size | 11.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Aron |
| Maintainers | 1aron |
| Keywords | package, json, packagejson, utils, workspaces, npm, pnpm, yarn |

## Links

- npm: https://www.npmjs.com/package/@techor/query-workspaces
- Repository: https://github.com/1aron/techor
- Homepage: https://aron.tw
- Issues: https://github.com/1aron/techor/issues
- npm.io page: https://npm.io/package/@techor/query-workspaces

## Dependencies (3)

- [@techor/fs](https://npm.io/package/@techor/fs.md) ^2.4.6
- [@techor/glob](https://npm.io/package/@techor/glob.md) ^2.4.6
- [@techor/extend](https://npm.io/package/@techor/extend.md) ^2.4.6

## Recent versions

- 2.4.6 (latest) — 2023-07-25
- 2.4.5 — 2023-07-15
- 2.4.4 — 2023-07-12
- 2.4.3 — 2023-07-11
- 2.4.2 — 2023-07-10
- 2.4.1 — 2023-07-09
- 2.4.0 — 2023-07-09
- 2.3.8 — 2023-07-06
- 2.3.7 — 2023-07-06
- 2.3.6 — 2023-07-06
- 2.3.5 — 2023-07-05
- 2.3.4 — 2023-07-05
- 2.3.3 — 2023-07-05
- 2.3.2 — 2023-07-04
- 2.3.1 — 2023-07-04
- … 35 more at https://npm.io/package/@techor/query-workspaces/versions

## README

<br>
<div align="center">

<p align="center">Query workspaces with package.json</p>

<p align="center">
    <a aria-label="overview" href="https://github.com/1aron/techor">
        <picture>
            <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/badge/%E2%AC%85%20back-%20?color=212022&style=for-the-badge">
            <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/badge/%E2%AC%85%20back-%20?color=f6f7f8&style=for-the-badge">
            <img alt="NPM Version" src="https://img.shields.io/badge/%E2%AC%85%20back-%20?color=f6f7f8&style=for-the-badge">
        </picture>
    </a>
    <a aria-label="GitHub release (latest by date including pre-releases)" href="https://github.com/1aron/techor/releases">
        <picture>
            <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/v/release/1aron/techor?include_prereleases&color=212022&label=&style=for-the-badge&logo=github&logoColor=fff">
            <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/v/release/1aron/techor?include_prereleases&color=f6f7f8&label=&style=for-the-badge&logo=github&logoColor=%23000">
            <img alt="NPM Version" src="https://img.shields.io/github/v/release/1aron/techor?include_prereleases&color=f6f7f8&label=&style=for-the-badge&logo=github">
        </picture>
    </a>
    <a aria-label="NPM Package" href="https://www.npmjs.com/package/@techor/query-workspaces">
        <picture>
            <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/dm/@techor/query-workspaces?color=212022&label=%20&logo=npm&style=for-the-badge">
            <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/npm/dm/@techor/query-workspaces?color=f6f7f8&label=%20&logo=npm&style=for-the-badge">
            <img alt="NPM package ( download / month )" src="https://img.shields.io/npm/dm/@techor/query-workspaces?color=f6f7f8&label=%20&logo=npm&style=for-the-badge">
        </picture>
    </a>
    <a aria-label="Follow @aron1tw" href="https://twitter.com/aron1tw">
        <picture>
            <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/static/v1?label=%20&message=twitter&color=212022&logo=twitter&style=for-the-badge">
            <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/static/v1?label=%20&message=twitter&color=f6f7f8&logo=twitter&style=for-the-badge">
            <img alt="Follow @mastercorg" src="https://img.shields.io/static/v1?label=%20&message=twitter&color=f6f7f8&logo=twitter&style=for-the-badge">
        </picture>
    </a>
    <a aria-label="Github Actions" href="https://github.com/1aron/techor/actions/workflows/release.yml">
        <picture>
            <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/actions/workflow/status/1aron/techor/release.yml?branch=main&label=%20&message=twitter&color=212022&logo=githubactions&style=for-the-badge">
            <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/actions/workflow/status/1aron/techor/release.yml?branch=main&label=%20&message=twitter&color=f6f7f8&logo=githubactions&style=for-the-badge&logoColor=%23000">
            <img alt="Github release actions" src="https://img.shields.io/github/actions/workflow/status/1aron/techor/release.yml?branch=main&label=%20&message=twitter&color=f6f7f8&logo=githubactions&style=for-the-badge&logoColor=%23000">
        </picture>
    </a>
</p>

</div>

<br>

- By default, read `.workspaces` of package.json in the current working directory
- By default, workspaces in node_modules are excluded

<br>

## Getting Started

```bash
npm install @techor/query-workspaces
```

## Preparation
Your monorepo usually looks like this:

```diff
.
├── package.json
└── packages
+   ├─── a
    │    └─── package.json
+   ├─── b
    │    ├─── node_modules
    │    │    └─── fake-module
    │    │         └─── package.json
+   │    ├─── bb
    │    │    └─── package.json
    │    └─── package.json
    └─── c
```
./package.json
```json
{
    "workspaces": ["packages/**"]
}
```

## Usage
`queryWorkspaces(patterns?, options?): string[]`
```js
import queryWorkspaces from '@techor/query-workspaces'

const workspaces = queryWorkspaces()
// ['packages/a', 'packages/b', 'packages/b/bb']

const workspaces = queryWorkspaces(['packages/*'])
// ['packages/a', 'packages/b']
```

## Options
Inherited from [fast-glob options](https://github.com/mrmlnc/fast-glob#options-3)
```js
{
    cwd: process.cwd(),
    ignore: ['**/node_modules/**']
}
```

<br>

<a aria-label="overview" href="https://github.com/1aron/techor#utilities">
<picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/badge/%E2%AC%85%20back%20to%20contents-%20?color=212022&style=for-the-badge">
    <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/badge/%E2%AC%85%20back%20to%20contents-%20?color=f6f7f8&style=for-the-badge">
    <img alt="NPM Version" src="https://img.shields.io/badge/%E2%AC%85%20back%20to%20contents-%20?color=f6f7f8&style=for-the-badge">
</picture>
</a>

---
_Source: https://npm.io/package/@techor/query-workspaces · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
