New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@arrirpc/eslint-plugin

Package Overview
Dependencies
Maintainers
1
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@arrirpc/eslint-plugin

This library provides some useful lint rules when building schemas for Arri-RPC.

Source
npmnpm
Version
0.80.2
Version published
Weekly downloads
94
-2.08%
Maintainers
1
Weekly downloads
 
Created
Source

Arri-RPC Eslint Plugin and Configs

This library provides some useful lint rules when building schemas for Arri-RPC.

If you are using Arri Schema standalone and are not using any of the codegen features the only lint rule you will probably need is arri/prefer-modular-imports.

Installation

# npm
npm i --save-dev @arrirpc/eslint-plugin

# pnpm
pnpm i --save-dev @arrirpc/eslint-plugin

Usage

Flat File Config

Use one of the premade configurations

  • recommended: turns on all of the lint rules related to schema building and codegen
  • all: the same as recommended but also includes the prefer-modular-imports rule
// eslint.config.js
import arri from '@arrirpc/eslint-plugin/configs';

// turn on lint rules related to schema building and codegen
export default [
    arri.recommended,
    {
        files: ['src/**/*.ts'],
    },
];


// turn on all arri lint rules
export default [
    arri.all,
    {
        files: ['src/**/*.ts']
    }
]

Manual setup

The plugin can be enabled in flat file configs like so.

// eslint.config.js
import arri from '@arrirpc/eslint';

export default [
    {
        plugins: {
            arri,
        },
        rules: {
            // check to see if an ID has been assigned to root a.object() schemas
            'arri/no-anonymous-object': 2,
            // check to see if an ID has been assigned to a.enumerator() or a.stringEnum() schemas
            'arri/no-anonymous-enumerator': 2,
            // check to see if an ID has been assigned to a.discriminator() schemas
            'arri/no-anonymous-discriminator': 2,
            // check to see if an ID has been assigned to a.recursive() schemas
            'arri/no-anonymous-recursive': 2,
            // enforce using arri's tree-shakable imports instead of the non tree-shakable imports to keep bundle sizes lower
            'arri/prefer-modular-imports': 2,
        },
    },
];

Legacy Eslint Config

// Arri-RPC recommended
{
    "extends": ["plugin:@arrirpc/legacy-config-recommended"],
    "files": ["**/*.ts"],
}

// all rules
{
    "extends": ["plugin:@arrirpc/legacy-config-all"],
    "files": ["**/*.ts"]
}

Manual Setup

{
    "plugins": ["@arrirpc"],
    "rules": {
        // check to see if an ID has been assigned to root a.object() schemas
        "@arrirpc/no-anonymous-object": 2,
        // check to see if an ID has been assigned to a.enumerator() or a.stringEnum() schemas
        "@arrirpc/no-anonymous-enumerator": 2,
        // check to see if an ID has been assigned to a.discriminator() schemas
        "@arrirpc/no-anonymous-discriminator": 2,
        // check to see if an ID has been assigned to a.recursive() schemas
        "@arrirpc/no-anonymous-recursive": 2,
        // enforce usage of modular imports to reduce bundle size
        "@arrirpc/prefer-modular-imports": 2,
    },
}

FAQs

Package last updated on 09 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts