Skip to content

Libraries

The libraries option enables integrations that usually correspond to major project dependencies.

IntegrationEnumUse It WhenAuto-Detected
AI SDKLibrary.AiSdkThe project uses Vercel AI SDK or provider packages such as ai / @ai-sdk/openai.Yes
OpenAI Agents SDKLibrary.OpenAiAgentsThe project uses OpenAI’s TypeScript Agents SDK.Yes
MastraLibrary.MastraThe project uses Mastra agents, workflows, tools, or memory.Yes
Model Context ProtocolLibrary.McpThe project uses the MCP TypeScript SDK.Yes
LangChainLibrary.LangchainThe project uses LangChain.js (langchain or @langchain/* packages).Yes
LlamaIndexLibrary.LlamaIndexThe project uses LlamaIndex.TS (llamaindex or @llamaindex/* packages).Yes
Google Gen AILibrary.GoogleGenAiThe project uses the official Google Gen AI SDK.Yes
AutoGenLibrary.AutogenThe project uses Microsoft AutoGen (@microsoft/autogen* packages).Yes
TurborepoLibrary.TurboThe project uses Turborepo.Yes
ZodLibrary.ZodThe project uses Zod schema validation.Yes
TypeORMLibrary.TypeormThe project uses TypeORM entities, repositories, data sources, subscribers, or migrations.Yes
PrismaLibrary.PrismaThe project uses Prisma Client or Prisma CLI.Yes
Drizzle ORMLibrary.DrizzleThe project uses Drizzle ORM schemas, queries, or migrations.Yes
MikroORMLibrary.MikroOrmThe project uses MikroORM entities, repositories, or migrations.Yes
SequelizeLibrary.SequelizeThe project uses Sequelize models, repositories, or migrations.Yes
Tailwind CSSLibrary.TailwindThe project uses Tailwind CSS.Yes
I18nextLibrary.I18nextThe project uses I18next.Yes
StencilLibrary.StencilThe project uses Stencil.Yes
TanStack QueryLibrary.TanstackQueryThe project uses TanStack Query.Yes
TanStack RouterLibrary.TanstackRouterThe project uses TanStack Router.Yes
StorybookLibrary.StorybookThe project uses Storybook.Yes
import { defineConfig, Library } from '@santi020k/eslint-config-basic'
export default await defineConfig({
libraries: [
Library.AiSdk,
Library.OpenAiAgents,
Library.Mastra,
Library.Mcp,
Library.Typeorm,
Library.Prisma,
Library.Tailwind,
Library.Storybook
]
})
  • The library integrations stay optional, so projects only install and enable what they use.
  • Detection helps the CLI and zero-argument config path, but you can still choose the final composition explicitly.

Library.AiSdk enables security-focused rules for Vercel AI SDK calls such as generateText, streamText, tool definitions, output validation, token limits, abort signals, and unsafe prompt handling.

Library.OpenAiAgents adds import safety rules for @openai/agents projects so agent workflows use the dedicated SDK package and avoid source or distribution internals.

Library.Mastra adds import safety rules for Mastra projects so agents, workflows, tools, and memory integrations stay on documented package entry points.

Library.Mcp adds import safety rules for @modelcontextprotocol/sdk projects so MCP servers and clients use documented SDK entry points instead of package internals.

Library.Langchain adds import safety rules for LangChain.js projects so chains, agents, and retrievers import from documented langchain and @langchain/* entry points instead of source or distribution internals.

Library.LlamaIndex adds import safety rules for LlamaIndex.TS projects so indexes, retrievers, and query engines import from documented llamaindex and @llamaindex/* entry points instead of package internals.

Library.GoogleGenAi adds import safety rules for @google/genai projects to ensure proper module imports.

Library.Autogen adds import safety rules for Microsoft AutoGen projects.

Library.Turbo validates that environment variables used in source code are properly declared in your Turborepo turbo.json configuration.

Library.Zod enables Zod-specific rules for robust schema validation patterns.

The ORM integrations are dependency-free ESLint flat configs. They use stable core rules instead of loading ORM-specific plugins, because several ORM ESLint plugins are either unavailable, not maintained for ESLint 10 flat config, or too framework-specific for a shared base preset.

Library.Typeorm catches legacy TypeORM global helpers such as getRepository and getConnection, nudging code toward DataSource, EntityManager, or injected Repository instances. It also blocks TypeORM subpath imports so entities and migrations stay on the documented typeorm entry point.

import { defineConfig, Library } from '@santi020k/eslint-config-basic'
export default await defineConfig({
libraries: [Library.Typeorm],
tsconfigRootDir: import.meta.dirname
})

Library.Prisma blocks imports from generated runtime internals such as @prisma/client/runtime/* and .prisma/client/*. Application code should import Prisma Client APIs from @prisma/client.

Library.Drizzle protects public driver, schema, migration, and query APIs by rejecting internal session, migrator, and query-builder module imports.

Library.MikroOrm blocks imports from unstable @mikro-orm/core internals such as entity, platform, unit-of-work, and utility submodules.

Library.Sequelize blocks sequelize/lib/*, sequelize/types/*, and non-semver internal @sequelize/core modules so applications use the public Sequelize package surface.

Tailwind CSS v4 uses a heavy initialization process in its worker threads. In monorepos or complex projects, this can cause ESLint to time out with an error like Atomics.wait() failed: timed-out.

To fix this, it is highly recommended to provide an explicit entryPoint in your ESLint settings. This prevents the plugin from searching your entire workspace for a Tailwind configuration.

You can pass the entryPoint by appending a configuration object to the array returned by eslintConfig:

import { Library } from '@santi020k/eslint-config-basic'
export default [
...eslintConfig({
libraries: [Library.Tailwind]
}),
{
name: 'project/tailwind-settings',
settings: {
'better-tailwindcss': {
// Point this to your main CSS file (v4) or tailwind.config.js (v3)
entryPoint: './src/index.css'
}
}
}
]

[!TIP] If you are still experiencing timeouts after setting the entryPoint, you can increase the internal worker timeout by setting the SYNCKIT_TIMEOUT environment variable (e.g., SYNCKIT_TIMEOUT=60000 eslint .).

Did this page help?

One click helps us spot documentation that needs another pass. No personal data is sent.