You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP โ†’
Socket
Book a DemoInstallSign in
Socket

puddysql

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

puddysql

๐Ÿฎ Powerful SQL toolkit for Node.js, built with flexibility and structure in mind. Easily manage SQLite3/PostgreSQL, advanced queries, smart tag systems, and full JSON-friendly filters.

1.0.0-beta
latest
Source
npmnpm
Version published
Weekly downloads
5
Maintainers
1
Weekly downloads
ย 
Created
Source

Discord server NPM version NPM downloads Patreon Ko-Fi

npm installnfo

๐Ÿฎ PuddySQL

PuddySQL is a modular and extensible SQL toolkit for Node.js โ€” designed to make dynamic queries, filters, pagination, and tag-based searches easy, safe, and powerful.

Built with composability in mind, each part of PuddySQL focuses on one job while integrating smoothly with the others. Whether you're working with SQLite or PostgreSQL, this package helps you build robust, readable, and scalable query logic.

๐Ÿ“ฆ Installation

npm install puddysql

๐Ÿงฑ Main Features

  • โœ… Safe, composable SQL queries with named methods
  • ๐Ÿ” Powerful nested filters using JSON logic (AND/OR, operators, etc.)
  • ๐Ÿท๏ธ Built-in tag filtering engine for JSON/array-based fields
  • ๐Ÿ”— Dynamic JOIN builder with alias support
  • ๐Ÿ“ƒ Smart pagination with automatic counters
  • ๐Ÿงช Strong input validation and type safety

๐Ÿ“š Documentation

To learn more about each module (Engine, Instance, Query, Tags) and how they work together:

๐Ÿ‘‰ See: docs/README.md

๐Ÿ”ง Module Overview

ModuleDescription
PuddySqlEngineLow-level query runner with DB abstraction
PuddySqlInstanceManages databases and table bindings
PuddySqlQueryHigh-level querying with filters and joins
PuddySqlTagsParses tag filters into safe SQL conditions

๐Ÿงช Requirements

  • Node.js 18+ recommended

  • Works with:

    • โœ… SQLite3
    • โœ… PostgreSQL (via pg adapter)

๐Ÿš€ Quick Example

Hereโ€™s how to get started using PuddySQL:

import path from 'path';
import { fileURLToPath } from 'url';
import PuddySql from 'puddysql';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// ๐ŸŽฎ Create a new SQL instance
const db = new PuddySql.Instance();

// ๐Ÿ“ก Run queries
(async () => {
  await db.initSqlite3();

  // Insert a new user
  const table = await db.initTable({ name: 'tinytest', id: 'id' }, [
      ['id', 'TEXT', 'PRIMARY KEY'],
      ['prompt', 'TEXT'],
      ['yay', 'BOOLEAN']
  ]);

  console.log('Set');
  console.log(await table.set('1', { prompt: 'pudding', yay: true }));
  console.log(await table.set('2', { prompt: 'cookie', yay: true }));
  console.log(await table.set('3', { prompt: 'brigadeiro', yay: true }));
  console.log(await table.set('4', { prompt: 'banana', yay: false }));
  console.log(await table.set('5', { prompt: 'chocolate', yay: true }));

  console.log('Get All');
  console.log(await table.getAll());

  // Find a user by ID
  console.log('Get');
  const user = await table.get(1);
  console.log(user); // โ†’ { id: 1, prompt: 'pudding', yay: true }

  // Get a paginated list
  console.log('Search');
  const data1 = await db.getTable('tinytest').search({
      q: {
        group: 'AND',
        conditions: [{ column: 'prompt', value: 'pudding' }],
      },
    });

  const data2 = await table.search({
      q: {
          group: 'OR',
          conditions: [
            { column: 'prompt', value: 'pudding' },
            { column: 'yay', value: false },
          ],
      },
    });

  console.log(data1); 
  console.log(data2); 
})();

๐Ÿค Contributions

Feel free to fork, contribute, and create pull requests for improvements! Whether it's a bug fix or an additional feature, contributions are always welcome.

๐Ÿ“ License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

๐Ÿง  Note: This documentation was written by ChatGPT, an AI assistant developed by OpenAI, based on the project structure and descriptions provided by the repository author.
If you find any inaccuracies or need improvements, feel free to contribute or open an issue!

Keywords

sql

FAQs

Package last updated on 03 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts