# parse-import-specifiers

> Simplest possible way to parse ImportSpecifiers

Latest version **1.0.3** (published 2024-03-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install parse-import-specifiers
pnpm add parse-import-specifiers
yarn add parse-import-specifiers
bun add parse-import-specifiers
```

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2024-03-06 |
| First published | 2023-06-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=16 |
| Dependencies | 0 |
| Unpacked size | 5.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | coderaiser |
| Maintainers | coderaiser |
| Keywords | putout, AST, babel, import, specifier, import-specifier, parser |

## Links

- npm: https://www.npmjs.com/package/parse-import-specifiers
- Repository: https://github.com/putoutjs/parse-import-specifiers
- Homepage: https://github.com/putoutjs/parse-import-specifiers#readme
- Issues: https://github.com/putoutjs/parse-import-specifiers/issues
- npm.io page: https://npm.io/package/parse-import-specifiers

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 1.0.3 (latest) — 2024-03-06
- 1.0.2 — 2023-06-07
- 1.0.1 — 2023-06-07
- 1.0.0 — 2023-06-07

## README

# parse-import-specifiers [![NPM version][NPMIMGURL]][NPMURL]

[NPMIMGURL]: https://img.shields.io/npm/v/parse-import-specifiers.svg?style=flat&longCache=true
[NPMURL]: https://npmjs.org/package/parse-import-specifiers "npm"

Parse [`ImportSpecifiers`](https://github.com/estree/estree/blob/master/es2015.md#importspecifier) to `3 arrays` according to type.

## Reasoning

There is `3` types of `ImportSpecifiers`:

- ✅[`ImportDefaultSpecifier`](https://github.com/estree/estree/blob/master/es2015.md#importdefaultspecifier)

```js
import test from 'supertape';
```

- ✅[`ImportNamespaceSpecifier`](https://github.com/estree/estree/blob/master/es2015.md#importnamespacespecifier)

```js
import * as test from 'supertape';
```

- ✅[`ImportSpecifier`](https://github.com/estree/estree/blob/master/es2015.md#importspecifier)

```js
import {stub} from 'supertape';
```

So:

- ☝️ *When you [generate code](https://github.com/putoutjs/printer) you should remember that after code transformations `ImportDefaultSpecifier` can be at the placce of an array.*
- ☝️ *When you check [specifiers to destructure](https://github.com/coderaiser/putout/tree/master/packages/eslint-plugin-putout/lib/multiple-properties-destructuring#readme) you should distinguish Import Specifiers from each other to determine what to do next*.

## Install

```
npm i parse-import-specifiers
```

## API

```js
const {parseImportSpecifiers} = require('parse-imports-specifiers');
const {
    defaults,
    namespaces,
    imports,
} = parseImportSpecifiers(specifiers);

for (const spec of defaults) {}

for (const spec of namespaces) {}

for (const spec of imports) {}
```

## License

MIT

---
_Source: https://npm.io/package/parse-import-specifiers · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
