Skip to main content
The zayne() factory function creates a modular Prettier configuration by combining base settings, import sorting, Tailwind CSS support, and Astro formatting.

Function Signature

const zayne: (
  options?: OptionsPrettierConfig,
  ...extraConfigs: ResolvedPrettierConfig[]
) => Promise<ResolvedPrettierConfig>

Parameters

options
OptionsPrettierConfig
default:"{}"
Configuration object to enable and customize different features.
...extraConfigs
ResolvedPrettierConfig[]
Additional Prettier configuration objects to merge. Array properties (like plugins and overrides) are merged intelligently without duplicates, while other values overwrite.

Returns

config
Promise<ResolvedPrettierConfig>
The combined Prettier configuration object ready to export.

Examples

Basic Usage

// prettier.config.js
import { zayne } from "@zayne-labs/prettier-config";

export default zayne({
  base: true,
  sortImports: true,
  tailwindcss: true,
  astro: true,
});

With Custom Options

import { zayne } from "@zayne-labs/prettier-config";

export default zayne(
  {
    base: true,
    sortImports: {
      importOrder: ["^@company/"], // Custom import group at top
      importOrderCaseSensitive: true,
    },
    tailwindcss: {
      tailwindStylesheet: "./src/styles.css",
      customFunctions: ["cn", "clsx"],
    },
  },
  // Extra config to merge
  {
    printWidth: 120,
    semi: true,
  }
);

Minimal Configuration

import { zayne } from "@zayne-labs/prettier-config";

// Uses default base + sortImports
export default zayne();

Extending with Custom Config

import { zayne } from "@zayne-labs/prettier-config";

export default zayne(
  { tailwindcss: true },
  {
    useTabs: false,
    printWidth: 100,
    singleQuote: true,
  }
);

Plugin Auto-Installation

When you enable a feature, the factory checks if required plugins are installed. If missing, it prompts you to auto-install them when running prettier --write .. This keeps your node_modules lean by only installing plugins you actually use.

Configuration Merging

The factory intelligently merges configurations:
  • Arrays (plugins, overrides): Deduplicated and combined
  • Objects: Shallow merged with later values overwriting earlier ones
  • Primitives: Last value wins
The Tailwind plugin is always applied last to avoid conflicts with other formatters. See prettier-plugin-tailwindcss compatibility.

Build docs developers (and LLMs) love