# eslint-plugin-suitescript

> ESLint plugin for NetSuite's SuiteScript v1/v2 API

Latest version **3.0.0** (published 2026-07-17) · MIT license · 0 weekly downloads

## Install

```sh
npm install eslint-plugin-suitescript
pnpm add eslint-plugin-suitescript
yarn add eslint-plugin-suitescript
bun add eslint-plugin-suitescript
```

## Health

**Score 65/100 (B)** — status: active.

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

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 3.0.0 |
| Published | 2026-07-17 |
| First published | 2016-02-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | ^20.19.0 \|\| ^22.13.0 \|\| >=24 |
| Dependencies | 2 |
| Unpacked size | 54.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 23 |
| Author | Adam Davies |
| Maintainers | acdvs |
| Keywords | suitescript, netsuite, eslint, plugin |

## Links

- npm: https://www.npmjs.com/package/eslint-plugin-suitescript
- Repository: https://github.com/acdvs/eslint-plugin-suitescript
- Issues: https://github.com/acdvs/eslint-plugin-suitescript/issues
- npm.io page: https://npm.io/package/eslint-plugin-suitescript

## Dependencies (2)

- [globals](https://npm.io/package/globals.md) ^17.7.0
- [@acdvs/eslint-plugin-amd](https://npm.io/package/@acdvs/eslint-plugin-amd.md) ^1.0.0

## Alternatives

- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) — 2.9M weekly downloads
- [eslint-config-expo](https://npm.io/package/eslint-config-expo.md) — 1.5M weekly downloads
- [@matter/protocol](https://npm.io/package/@matter/protocol.md) — 63.5K weekly downloads
- [@eventcatalog/linter](https://npm.io/package/@eventcatalog/linter.md) — 24.8K weekly downloads
- [@pandacss/eslint-plugin](https://npm.io/package/@pandacss/eslint-plugin.md) — 18.7K weekly downloads

## Recent versions

- 3.0.0 (latest) — 2026-07-17
- 2.0.0 — 2026-05-01
- 1.4.1 — 2025-06-06
- 1.4.0 — 2025-05-22
- 1.3.2 — 2024-05-31
- 1.3.1 — 2023-12-27
- 1.3.0 — 2023-10-11
- 1.2.1 — 2021-01-20
- 1.1.1 — 2021-01-14
- 1.1.0 — 2021-01-11
- 1.0.3 — 2020-11-28
- 1.0.2 — 2020-07-06
- 1.0.1 — 2020-07-06
- 1.0.0 — 2020-07-06
- 0.1.1 — 2016-02-29
- … 1 more at https://npm.io/package/eslint-plugin-suitescript/versions

## README

[![License][license-img]][license-link]
[![npm][npm-img]][npm-link]
[![CI][ci-img]][ci-link]

# eslint-plugin-suitescript

NetSuite SuiteScript v1/v2 linting rules for ESLint

## Installation

```sh
npm i -D eslint eslint-plugin-suitescript
```

Requires `eslint@>=9`. Users on `eslint@<9` (or `.eslintrc.*` configs with `eslint@^9`) should stay on `eslint-plugin-suitescript@^1`.

## Configuration

Create `eslint.config.js` (or `eslint.config.mjs`) in your project root:

```js
import suitescript from 'eslint-plugin-suitescript';

export default [
  ...suitescript.configs.recommended,
  // optional: enable SuiteScript 2.x globals (`log`, `util`)
  ...suitescript.configs.suitescript2,
  // or 1.0 globals (`nlapi*`, `nlobj*`)
  // ...suitescript.configs.suitescript1,
];
```

Or wire rules manually:

```js
import suitescript from 'eslint-plugin-suitescript';

export default [
  {
    plugins: { suitescript },
    rules: {
      'suitescript/script-type': 'error',
      'suitescript/no-log-module': 'error',
    },
  },
];
```

## Upgrading

See the [upgrade guide](docs/upgrade.md) for details on upgrading the package to a new major version.

## List of supported rules

- [suitescript/api-version](docs/rules/api-version.md): Enforces valid `@NApiVersion` tag values
- [suitescript/entry-points](docs/rules/entry-points.md): Enforces inclusion of at least one entry point based on `@NScriptType`
- [suitescript/log-args](docs/rules/log-args.md): Enforces correct log arguments
- [suitescript/module-vars](docs/rules/module-vars.md): Enforces correct module identifiers for each configured module
- [suitescript/no-invalid-modules](docs/rules/no-invalid-modules.md): Enforces valid SuiteScript modules in `define` array
- [suitescript/no-log-module](docs/rules/no-log-module.md): Restricts loading of the N/log module in favor of global `log`
- [suitescript/script-type](docs/rules/script-type.md): Enforces valid `@NScriptType` tag values

## License

eslint-plugin-suitescript is licensed under the [MIT License](http://www.opensource.org/licenses/mit-license.php).

[license-img]: https://img.shields.io/github/license/acdvs/eslint-plugin-suitescript
[license-link]: https://github.com/acdvs/eslint-plugin-suitescript/blob/master/LICENSE
[npm-img]: https://img.shields.io/npm/v/eslint-plugin-suitescript
[npm-link]: https://www.npmjs.com/package/eslint-plugin-suitescript
[ci-img]: https://github.com/acdvs/eslint-plugin-suitescript/workflows/CI/badge.svg
[ci-link]: https://github.com/acdvs/eslint-plugin-suitescript/actions

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