@aurorajs.dev/core-common
v1.0.19
Published
Aurora npm core common package
Readme
@aurorajs.dev/core-common
Shared TypeScript library for the Aurora ecosystem. Provides SQL query abstractions (Sequelize-compatible) consumed by NestJS applications using GraphQL, Sequelize ORM and PostgreSQL.
- Dual CJS/ESM output
- Full TypeScript declarations
- Zero runtime dependencies
Installation
npm install @aurorajs.dev/core-commonUsage
import {
QueryStatement,
Operator,
IndexHints,
} from '@aurorajs.dev/core-common';
// Build a query statement
const queryStatement: QueryStatement = {
where: {
name: { [Operator.like]: '%aurora%' },
age: { [Operator.gte]: 18 },
},
attributes: ['id', 'name', 'email'],
order: [['name', 'ASC']],
limit: 25,
offset: 0,
};API
QueryStatement
Sequelize-compatible query options class with the following properties:
| Property | Type | Description |
| ------------ | ------------- | ------------------------------------------------ |
| where | any | Conditions to match rows |
| attributes | any | Columns to select (supports renaming via arrays) |
| include | any | Associations to eagerly load (left join) |
| order | any | Column ordering ([['name', 'DESC']]) |
| group | any | GROUP BY clause |
| limit | number | Max rows to return |
| offset | number | Rows to skip |
| lock | any | Row-level locking |
| skipLocked | boolean | Skip locked rows (Postgres only) |
| raw | boolean | Return raw result |
| having | any | Filter after GROUP BY |
| subQuery | boolean | Use sub queries |
| indexHints | IndexHint[] | Index hints for the query |
| distinct | boolean | Apply COUNT(DISTINCT(col)) |
| col | string | Column to aggregate on |
Operator
Enum mapping SQL operators for use in where clauses:
| Category | Operators |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Concatenation | and, or |
| Comparison | eq, ne, gt, gte, lt, lte |
| Pattern | like, notLike, startsWith, endsWith, substring |
| Range | between, notBetween, in, notIn |
| Regex | regexp, notRegexp |
| Postgres-specific | iLike, notILike, iRegexp, notIRegexp, overlap, contains, contained, adjacent, strictLeft, strictRight, noExtendRight, noExtendLeft, any |
| Utils | col, join, not, is, all, values, placeholder |
IndexHints
Enum for index hint types: USE, FORCE, IGNORE.
Types
| Export | Description |
| --------------- | -------------------------------------------------------- |
| Any | Utility type alias (any) |
| IndexHint | Interface with type: IndexHints and values: string[] |
| LiteralObject | Record<string, unknown> |
Development
# Install dependencies
npm install
# Build (CJS + ESM + .d.ts)
npm run build
# Watch mode
npm run start:dev
# Run tests
npm run test
# Lint
npm run lint
# Format
npm run formatLicense
MIT
