0.0.8 • Published 8 months ago

@takurinton/eslint-plugin-zod-fluct v0.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

eslint-plugin-zod-fluct

fluct で zod を使うための eslint プラグインです。
まだ開発途中です。

インストール

pnpm install -D @takurinton/eslint-plugin-zod-fluct

使い方

// .eslintrc.js
module.exports = {
  plugins: ["@takurinton/eslint-plugin-zod-fluct"],
  rules: {
    // 適用したいルールを追加する
    "@takurinton/zod-fluct/number": "error",
    "@takurinton/zod-fluct/string": "error",
    "@takurinton/zod-fluct/utils": "error",
  },
};

ルール

対応するつもりがあるものを書いてます。
もしかしたらもう少し抽象化したりするかもしれません。

  • number
  • string
  • array
  • object
  • discriminated unions / unions
  • enum
  • refine
  • utils

number

  • min() を必ずつける
  • max() を必ずつける
  • min() と max() 以外の範囲を制限する検証(nonnegative, positive, ...etc)は禁止
  • エラーメッセージは必須
  • 表記ぶれを防ぐために以下のエイリアスを禁止する。
    • gt
    • gte
    • lt
    • lte
    • nonnegative
    • positive
    • negative
    • nonpositive
    • finite

string

  • nullable() または optional() または nullish() が指定されてない場合は min() は必ずつける
    • 存在確認は min() を使う
  • max() を必ずつける
  • エラーメッセージは必須

array

TODO

object

TODO

discriminated unions / unions

TODO

enum

TODO

refine

TODO

utils

number を使用するときは min() と max() にエラーメッセージをオブジェクトで渡す。

import { z } from "zod";

// min と max にエラーメッセージがないのでエラー
const schema = z.number().min(0).max(100);

// min と max にエラーメッセージがあるのでエラーにならない
const schema = z
  .number()
  .min(0, { message: "0以上である必要があります" })
  .max(100, { message: "100以下である必要があります" });
0.0.8

8 months ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.0

1 year ago

0.0.0-beta.2

1 year ago

0.0.0-beta.1

1 year ago

0.0.1

1 year ago