N00b's Programming Machine

    @sqorn/pg

    0.0.45 • Public • Published

    Sqorn Postgres · License npm Supports Node 8+ npm

    Sqorn Postgres is a Javascript library for building SQL queries.

    Composable: Build complex queries from simple parts. Chain, extend, and embed queries.

    Intuitive: Sqorn's use of modern Javascript language features like tagged template literals and promises makes building and issuing SQL queries a breeze.

    Concise: Sqorn provides concise syntax for common CRUD operations.

    Fast: 10x faster than Knex.js and 200x faster than Squel

    Secure: Sqorn generates parameterized queries safe from SQL injection. Sqorn has no external dependencies.

    Install

    Sqorn requires Node version 8 or above.

    npm install --save @sqorn/pg # only Postgres is currently supported

    Then read the tutorial and try the online demo.

    Examples

    CRUD Operations are dead simple.

    const sq = require('@sqorn/pg')()
    
    const Person = sq`person`, Book = sq`book`
    
    // SELECT
    const children = await Person`age < ${13}`
    // "select * from person where age < 13"
    
    // DELETE
    const [deleted] = await Book.delete({ id: 7 })`title`
    // "delete from book where id = 7 returning title"
    
    // INSERT
    await Person.insert({ firstName: 'Rob' })
    // "insert into person (first_name) values ('Rob')"
    
    // UPDATE
    await Person({ id: 23 }).set({ name: 'Rob' })
    // "update person set name = 'Rob' where id = 23"

    Build complex queries from simple parts.

    // CHAIN QUERIES
    sq.from`book`
      .return`distinct author`
      .where({ genre: 'Fantasy' })
      .where({ language: 'French' })
    // select distinct author from book
    // where language = 'French' and genre = 'Fantasy'
    
    // EXTEND QUERIES
    sq.extend(
      sq.from`book`,
      sq.return`distinct author`,
      sq.where({ genre: 'Fantasy' }),
      sq.where({ language: 'French' })
    )
    // select distinct author from book
    // where language = 'French' and genre = 'Fantasy'
    
    // EMBED Queries
    sq.return`now() today, (${sq.return`now() + '1 day'`}) tomorrow`
    // select now() today, (select now() + '1 day') tomorrow

    Learn more in the tutorial.

    License

    MIT Licensed, Copyright (c) 2018 Sufyan Dawoodjee

    Install

    npm i @sqorn/pg

    Homepage

    sqorn.org

    DownloadsWeekly Downloads

    816

    Version

    0.0.45

    License

    MIT

    Unpacked Size

    95.9 kB

    Total Files

    10

    Last publish

    Collaborators

    • eejdoowad