single-or-array-pattern
Pattern for functions that accept either a single item or an array. Use when creating CRUD operations, batch processing APIs, or factory functions that should flexibly handle one or many inputs.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Pattern for functions that accept either a single item or an array. Use when creating CRUD operations, batch processing APIs, or factory functions that should flexibly handle one or many inputs.
How to use
Zdefiniuj parametr funkcji z typem unii:
T | T[], gdzie T to typ pojedynczego elementu (np.Client | Client[]).Na początku funkcji normalizuj wejście do tablicy za pomocą
Array.isArray()— jeśli otrzymasz pojedynczy element, zawiń go w tablicę:const items = Array.isArray(itemOrItems) ? itemOrItems : [itemOrItems].Napisz całą logikę biznesową pracując tylko na zmiennej
items(tablicy) — iteruj pętląfor...oflubmap()i wykonaj operacje na każdym elemencie.Nazwij parametr wejściowy zgodnie z konwencją:
itemOrItems,clientOrClients,recordingOrRecordings— znormalizowaną zmienną nazwij formą liczby mnogiej (items,clients,recordings).Zastosuj wzorzec w operacjach CRUD (create, update, delete), funkcjach fabrycznych lub API, które powinny obsługiwać zarówno pojedyncze żądania, jak i przetwarzanie wsadowe.
Unikaj tego wzorca, jeśli semantyka operacji na jednym elemencie różni się znacząco od operacji na tablicy, lub jeśli typ zwracany powinien być inny dla obu przypadków.