Skip to content

voscarmv/secret-santa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎅🎄 secret-santa 🎁✨

A simple, fast, and fair Secret Santa gift exchange sorter — no self-gifting, no awkward moments, just holiday magic ✨

Perfect for friends, family, coworkers, or that one group chat that always organizes Secret Santa at the last minute.


✨ Features

  • 🎁 Randomized Secret Santa assignments
  • 🚫 No one gets themselves
  • ⚡ Fast and lightweight
  • 🧠 Sensible defaults, zero configuration required
  • 📦 Works great with Node.js and TypeScript

📦 Installation

npm i @voscarmv/secret-santa

🎄 Quick Example

index.ts

import SecretSanta from '@voscarmv/secret-santa';

const santa = new SecretSanta({
  members: ["Alex", "Bob", "Cleo", "Dana"]
});

console.log(santa.sort());

🎁 Example output:

{
  Alex: "Dana",
  Bob: "Cleo",
  Cleo: "Alex",
  Dana: "Bob"
}

Every run is randomized — but no one ever draws their own name 😉


🧑‍🎄 How it works

Under the hood, it generates a random one-to-one assignment (a derangement, for the curious 🤓), ensuring everyone gives a gift to someone else.


❄️ Use cases

  • Family Secret Santa 🎄
  • Office gift exchanges 🏢🎁
  • Friend groups 🎉
  • Holiday bots 🤖
  • Any excuse to automate Christmas 😄

📜 License

🛡️ GNU General Public License v3.0 or later (GPL-3.0-or-later)

This project is free software: you can use, study, modify, and share it under the terms of the
GNU General Public License, version 3 or any later version.

In true Secret Santa spirit 🎁:

  • Feel free to share and remix
  • Improvements must remain open
  • The joy (and the source code) keeps circulating ❤️

See the full license text at:
https://www.gnu.org/licenses/gpl-3.0.html

About

A simple secret santa gift exchange sorter

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published