Registry / database / odata-v4-typeorm-improved

odata-v4-typeorm-improved

JSON →
library1.0.3jsnpmunverified

OData V4 to TypeORM query compiler that translates OData query strings ($filter, $orderby, $top, $skip, $expand, $select, $search, etc.) into TypeORM query builder calls. Current stable version 1.0.3 (March 2024). Released under MIT license. Differs from other OData-to-ORM libraries by offering a simple middleware integration for Express and NestJS, direct support for TypeORM repositories and query builders, and TypeScript-first design. It wraps TypeORM's repository to produce OData-compliant endpoints with minimal boilerplate. Suitable for building REST APIs that follow the OData protocol on top of any SQL database supported by TypeORM. Requires TypeORM >=0.3.28.

npm install odata-v4-typeorm-improved
INSTALL
IMPORT
SIG · ODATA-V4-TYPEORM-I
O
odata-v4-typeorm-improved
databasejavascriptv1.0.3
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

odataQuery
import { odataQuery } from 'odata-v4-typeorm-improved'
const odataQuery = require('odata-v4-typeorm-improved').odataQuery
ESM-only since v1.0.0. This function is a middleware factory that takes a TypeORM Repository and returns an Express middleware.
executeQuery
import { executeQuery } from 'odata-v4-typeorm-improved'
import executeQuery from 'odata-v4-typeorm-improved'
Named export, not default. Accepts a repository or query builder and the query parameters object.
executeQuery (by query builder)
import { executeQuery } from 'odata-v4-typeorm-improved'
import { executeQueryBuilder } from 'odata-v4-typeorm-improved'
Same function name but called with a SelectQueryBuilder instead of a Repository. The library exports only two functions.

Creates an Express endpoint that translates OData query parameters to TypeORM queries using the provided repository.

import express from 'express'; import { odataQuery } from 'odata-v4-typeorm-improved'; import { getRepository } from 'typeorm'; import { User } from './entities/User'; const app = express(); const port = 3001; app.get('/api/users', odataQuery(getRepository(User))); app.listen(port, () => console.log(`Server running on port ${port}`));
Debug
Known issues
breakingv1.0.0 changed from CJS to ESM-only. CommonJS require() will break.
fix
Use import syntax or upgrade to Node 14+ with 'type':'module' in package.json.
affects: >=1.0.0
breakingv1.0.0 renamed package from 'odata-v4-typeorm' to 'odata-v4-typeorm-improved'. Old package may be stale.
fix
Install 'odata-v4-typeorm-improved' and update imports.
affects: >=1.0.0
deprecatedThe old package 'odata-v4-typeorm' (pre-1.0.0) is deprecated and unmaintained.
fix
Migrate to 'odata-v4-typeorm-improved' version 1.0.0 or later.
affects: <1.0.0
gotchaTypeORM peer dependency is version 0.3.28 or higher. Older TypeORM versions may cause runtime errors.
fix
Ensure typeorm@^0.3.28 is installed.
affects: >=1.0.0
gotchaThe executeQuery function expects req.query object (not the full Express Request). Passing the request object directly will fail.
fix
Call executeQuery(repo, req.query) not executeQuery(repo, req).
affects: >=1.0.0
Errors
Common errors & fixes
Error [ERR_REQUIRE_ESM]: require() of ES Module not supported
Using require() with an ESM-only package (v1.0.0+).
fix
Switch to import syntax or set type: module in package.json.
Cannot find module 'odata-v4-typeorm'
Package renamed; old name is no longer published.
fix
npm install odata-v4-typeorm-improved and update imports.
TypeError: odataQuery is not a function
Importing odataQuery as default import instead of named import.
fix
Use import { odataQuery } from 'odata-v4-typeorm-improved'.
Upgrade
Version history
1.0.3latest on npm
Audit
Dependencies
typeormrequiredpeer dependency - required for repository and query builder types
Agent activity
4 hits · last 30 days
node
4
Resources
odata-v4-typeorm-improved — npm install odata-v4-typeorm-improved · libregistry