Playground regul ESLint
Testuj customowe reguly ESLint w przegladarce
Wklej kompaktowa regule, zdefiniuj valid i invalid fixture, a potem uruchom sprawdzenie RuleTester-like bez wysylania kodu na backend.
- Runtime
- Dedykowany browser worker
- Kompatybilnosc
- Adapter RuleTester-like
- TypeScript
- Skladnia adaptera TypeScript
Sprawdza dopasowanie messageId na node Identifier z jedna poprawna i jedna bledna fixture JavaScript.
Fixture JSON
Wynik runu
Wybierz preset albo edytuj regule i fixture, potem uruchom tester.
Workflow fixture
Zacznij od jednego przypadku valid i jednego invalid, potem rozszerzaj macierz o skladnie TypeScript, options i granice autofix.
Model bezpieczenstwa workera
Narzędzie blokuje siec i storage APIs, limituje input i ubija dlugie runy; nadal sluzy do krotkich syntetycznych przykladow, nie niezaufanych paczek.
Zakres TypeScript
MVP parsuje skladnie TypeScript przez adapter oparty o TypeScript compiler API. Type-aware projectService nalezy do CI repozytorium albo server-side sandboxa.
ESLint Rule Tester Playground | Playground Forge
Testuj zachowanie reguly lintowania zanim trafi do repozytorium
Testuj male reguly ESLint dla JavaScript i TypeScript w prywatnym browser workerze, z fixture RuleTester-like, messageId i prostym autofix output.
Testuj zachowanie reguly lintowania zanim trafi do repozytorium
ESLint Rule Tester Playground daje autorom regul male, prywatne miejsce do sprawdzenia, czy customowa regula zglasza właściwy node, komunikat i fix na reprezentatywnych snippetach. Wklejasz modul reguly w stylu CommonJS, definiujesz kompaktowa tablice fixture i uruchamiasz przypadki w dedykowanym browser workerze. Strona jest zaprojektowana pod moment review przed dolaczeniem reguly do wspolnego toolingu: czy selector trafia w zamierzona skladnie, czy messageId rozwiazuje się do dobrego tekstu, czy przyklady valid milcza i czy prosty autofix daje oczekiwany output? Trasa celowo nie wykonuje kodu na backendzie i nie zapisuje danych trwale, dzięki czemu krótkie probki kodu zostaja w sesji przeglądarki.
Co sprawdza MVP
MVP wdraza kontrolowany adapter RuleTester-like zamiast udawac pelny runtime ESLint z Node.js. Kazda fixture ma nazwe, kod, flage valid, opcjonalny filename, options, oczekiwane errors i opcjonalny output. Adapter parsuje skladnie JavaScript lub TypeScript przez adapter oparty o TypeScript compiler API, przechodzi po AST w ksztalcie ESTree wedlug listener key, udostepnia context.report, context.options, context.getSourceCode().getText oraz mala warstwe fixer API: replaceText, remove, insertTextBefore i insertTextAfter. Oczekiwane błędy mogą byc liczba albo tablica dopasowujaca messageId, fragment message i typ node. To wystarcza do walidacji wczesnego ksztaltu reguly, testowania przykladow do dokumentacji i porownania prostych autofixow bez ladowania arbitralnych pluginow, projektow tsconfig albo plikow repozytorium na publicznej stronie.
Jak czytac wynik
Zielony run oznacza, ze obecny zestaw snippetow pasuje do zachowania reguly zadeklarowanego w fixture. Nie oznacza, ze regula jest gotowa produkcyjnie dla kazdej opcji parsera, kazdego pakietu w monorepo albo kazdego frameworkowego ksztaltu AST. Zacznij od jednego przypadku valid i jednego invalid, a potem dodaj fixture TypeScript, jesli regula dotyka adnotacji typow, TSTypeReference, importow, enumow albo generykow. Fail traktuj jako feedback kontraktowy: mismatch messageId zwykle wskazuje meta.messages albo konfiguracje report; mismatch typu node oznacza za szeroki albo za waski selector; mismatch output pokazuje, ze zakres fixera lub tekst zamiany trzeba uproscic przed rolloutem. Playground blokuje siec i storage APIs w workerze, limituje rozmiar inputu i ubija długie runy, ale nadal jest powierzchnia wykonywania krótkich syntetycznych regul, a nie sandbox security dla niezaufanych paczek. Uzywaj malych przykladow, nie wklejaj poufnego kodu i przenies finalna regule do testow repozytorium z oficjalnym ESLint RuleTester przed wdrozeniem. Tresc wydawcy na tej trasie jest celowo glebsza niz sam widget: wyjasnia granice parsera, projektowanie fixture, ryzyka autofix, zachowanie timeoutow i powod, dla ktorego type-aware projectService jest poza client-side MVP. Praktyczne review powinno obejmowac takze ergonomie reguly. Sprawdz, czy komunikat mowi developerowi co ma zmienic, czy invalid example przypomina realny kod oraz czy autofix bylby bezpieczny w duzym pull requescie. Dobra regula lintowania zmniejsza liczbe powtarzalnych komentarzy review, a nie tworzy nowej niejasnosci. Dlatego playground pokazuje wynik per case: przechodzace przyklady valid dowodza, ze regula nie jest zbyt glosna, failing invalid examples pokazuja, czy selector znalazl zamierzona skladnie, a porownanie output ujawnia ryzyko fixera zanim regula trafi do wspolnego presetu. Tryb parsera TypeScript jest przydatny dla polityk skladniowych dotyczacych importow, type alias, generic references, enumow i niebezpiecznych wzorcow nazw. Nie zastepuje parserServices, zapytan do type checkera ani project references. Jesli regula potrzebuje symbol resolution, semantycznej informacji o typach, swiadomosci module graph albo zachowania zależnego od tsconfig, bezpiecznym kolejnym krokiem jest test suite w docelowym repozytorium. Ta granica jest ważna dla zaufania: publiczna trasa może pokazac ksztalt reguly i projekt fixture, a CI pozostaje odpowiedzialne za pelny kontekst zaleznosci, zgodnosc z oficjalnym RuleTester i framework-specific edge cases. Trzy presety traktuj jako szablony decyzji. Przyklad identyfikatora sluzy do kontraktu message i szumu selectora. Przyklad ReadonlyArray sluzy do slownika TypeScript AST bez semantycznych type services. Przyklad debugger sluzy do options, jezyka schema i konserwatywnych fixow. Kiedy zespol proponuje nowa regule lintowania, najpierw mapuj ja do jednego z tych wzorcow, a dopiero potem dodaj najmniejsza dodatkowa fixture potrzebna do udowodnienia zachowania. Ten nawyk utrzymuje dyskusje o regulach konkretnie i nie pozwala, żeby publiczny playground stal się nieudokumentowanym frameworkiem lintowania. W praktyce najwieksza wartość biznesowa takiego narzędzia pojawia się przed wdrozeniem reguly do wielu repozytoriow. Reviewer może szybko zobaczyc, czy regula ogranicza realny koszt utrzymania kodu, czy tylko dodaje nowy obowiazek. Jesli fixture nie potrafia jasno pokazac problemu i oczekiwanej poprawki, sama regula prawdopodobnie wymaga jeszcze doprecyzowania. Dzieki temu decyzja o rollout jest latwiejsza do obrony: widac koszt, zysk, ograniczenia i miejsce, w którym publiczny eksperyment musi przejsc do testow repozytorium. Konkret.
Praktyczny workflow dla reguly lintowania
Zacznij od jednego zachowania, które regula ma wymuszac, potem napisz najmniejsza fixture valid, która ma milczec, i najmniejsza fixture invalid, która ma zglosic błąd. messageId dodawaj dopiero po ustabilizowaniu selectora, a output dopiero wtedy, gdy fix jest wystarczajaco konserwatywny do review w duzym repozytorium. To utrzymuje playground jako narzędzie do projektowania regul, a nie przypadkowy framework lintowania. Dobra notka do pull requestu może skopiowac z tej strony trzy fakty: przypadek valid pokazujacy, ze regula nie jest zbyt glosna, przypadek invalid pokazujacy, ze selector trafia w zamierzona skladnie, oraz ograniczenie, które nadal wymaga pokrycia przez repozytoryjny RuleTester. Taki dowod robi dyskusje rolloutowa konkretna i unika ogolnych twierdzen, ze regula dziala wszedzie.