CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-vue--eslint-config-typescript

ESLint configuration library for Vue.js + TypeScript projects with advanced utilities and preset configurations

Pending
Overview
Eval results
Files

legacy-api.mddocs/

Legacy API

Deprecated functions provided for backward compatibility with versions ≤14.2.0. These functions are maintained for existing projects but should not be used in new projects.

Capabilities

createConfig Function (Deprecated)

Legacy configuration function that creates ESLint configs with simplified options.

import type { FlatConfig } from '@typescript-eslint/utils/ts-eslint';

/**
 * @deprecated Use `defineConfigWithVueTs` + `vueTsConfigs` instead
 * Creates ESLint configuration with legacy options format
 * @param options - Configuration options with extends and script language support
 * @returns ESLint flat configuration array
 */
export default function createConfig(options?: ConfigOptions): FlatConfig.ConfigArray;

type ConfigOptions = ProjectOptions & {
  /** Array of config names to extend from typescript-eslint. Defaults to `['recommended']` */
  extends?: ExtendableConfigName[];
  /** 
   * @deprecated Use ProjectOptions.scriptLangs instead
   * Record of script languages with boolean flags
   */
  supportedScriptLangs?: Record<ScriptLang, boolean>;
};

interface ProjectOptions {
  tsSyntaxInTemplates?: boolean;
  scriptLangs?: ScriptLang[];
  allowComponentTypeUnsafety?: boolean;
  rootDir?: string;
}

type ScriptLang = "ts" | "tsx" | "js" | "jsx";
type ExtendableConfigName = 
  | "all" | "base" | "disableTypeChecked" | "eslintRecommended"
  | "recommended" | "recommendedTypeChecked" | "recommendedTypeCheckedOnly"
  | "strict" | "strictTypeChecked" | "strictTypeCheckedOnly"
  | "stylistic" | "stylisticTypeChecked" | "stylisticTypeCheckedOnly";

Usage Examples (Legacy):

// Legacy import style
import createConfig from "@vue/eslint-config-typescript";

// Basic configuration
export default createConfig();

// Configuration with extends
export default createConfig({
  extends: ["recommended", "stylistic"],
});

// Configuration with script language support
export default createConfig({
  extends: ["strictTypeChecked"],
  supportedScriptLangs: {
    ts: true,
    tsx: false,
    js: false,
    jsx: false,
  },
  rootDir: process.cwd(),
});

Migration to Modern API:

// OLD (deprecated)
import createConfig from "@vue/eslint-config-typescript";

export default createConfig({
  extends: ["recommended", "stylistic"],
  supportedScriptLangs: { ts: true, js: false, tsx: false, jsx: false },
});

// NEW (recommended)
import { 
  defineConfigWithVueTs, 
  vueTsConfigs, 
  configureVueProject 
} from "@vue/eslint-config-typescript";

configureVueProject({
  scriptLangs: ["ts"],
});

export default defineConfigWithVueTs(
  vueTsConfigs.recommended,
  vueTsConfigs.stylistic,
);

defineConfig Function (Deprecated)

Deprecated alias for defineConfigWithVueTs function.

/**
 * @deprecated `defineConfig` is renamed to `defineConfigWithVueTs` in 14.3.0
 * Alias for defineConfigWithVueTs function
 */
export const defineConfig: typeof defineConfigWithVueTs;

Usage Examples (Legacy):

// OLD (deprecated)
import { defineConfig, vueTsConfigs } from "@vue/eslint-config-typescript";

export default defineConfig(vueTsConfigs.recommended);

// NEW (recommended)
import { defineConfigWithVueTs, vueTsConfigs } from "@vue/eslint-config-typescript";

export default defineConfigWithVueTs(vueTsConfigs.recommended);

Legacy Configuration Behavior

Automatic Migration

The createConfig function automatically:

  1. Converts supportedScriptLangs object to scriptLangs array
  2. Calls configureVueProject internally with converted options
  3. Maps extends array to corresponding vueTsConfigs entries
  4. Returns result from defineConfigWithVueTs

Error Handling

Provides enhanced error messages for common migration issues:

// Invalid config name detection
createConfig({ extends: ["recommended-type-checked"] });
// Error: The config name "recommended-type-checked" is not supported in "extends". 
// Please use "recommendedTypeChecked" instead.

// Unknown config detection  
createConfig({ extends: ["unknown-config"] });
// Error: Unknown config name in "extends": unknown-config.

Default Values

// Default configuration when no options provided
const defaultOptions = {
  extends: ["recommended"],
  supportedScriptLangs: { 
    ts: true, 
    tsx: false, 
    js: false, 
    jsx: false 
  },
  rootDir: process.cwd(),
};

Migration Guide

Step 1: Update Imports

// Before
import createConfig from "@vue/eslint-config-typescript";
import { defineConfig } from "@vue/eslint-config-typescript";

// After  
import {
  defineConfigWithVueTs,
  vueTsConfigs,
  configureVueProject,
} from "@vue/eslint-config-typescript";

Step 2: Replace Function Calls

// Before - createConfig
export default createConfig({
  extends: ["strict"],
  supportedScriptLangs: { ts: true, js: true, tsx: false, jsx: false },
});

// After - modern API
configureVueProject({
  scriptLangs: ["ts", "js"],
});

export default defineConfigWithVueTs(vueTsConfigs.strict);

Step 3: Handle Complex Configurations

// Before - mixed legacy/modern patterns
export default createConfig({
  extends: ["recommendedTypeChecked"],
  // Custom rules were difficult to add
});

// After - full flexibility
configureVueProject({
  scriptLangs: ["ts"],
  tsSyntaxInTemplates: true,
});

export default defineConfigWithVueTs(
  vueTsConfigs.recommendedTypeChecked,
  {
    name: "custom-overrides",
    files: ["**/*.vue"],
    rules: {
      // Easy to add custom rules
      "vue/multi-word-component-names": "off",
    },
  },
);

Deprecation Timeline

  • 14.2.0 and earlier: createConfig was the primary API
  • 14.3.0: defineConfig renamed to defineConfigWithVueTs, defineConfig marked deprecated
  • 15.0.0: createConfig will be removed, defineConfig alias will be removed

Recommendation: Migrate to the modern API (defineConfigWithVueTs + vueTsConfigs + configureVueProject) for better flexibility and future compatibility.

Install with Tessl CLI

npx tessl i tessl/npm-vue--eslint-config-typescript

docs

configuration.md

index.md

legacy-api.md

presets.md

project-config.md

tile.json