nuxt-easy-typeorm
v1.1.2
Published
Easy TypeORM integration module for Nuxt
Downloads
490
Readme
Nuxt EasyTypeORM
This Nuxt module is aimed for a seamless integration of TypeORM.
Installation
npx nuxi@latest module add nuxt-easy-typeorm
Configuration
In your Nuxt project, configure the module options inside nuxt.config.js
:
export default defineNuxtConfig({
modules: ['nuxt-easy-typeorm'],
typeorm: {
directory: 'my-typeorm-folder', // optional: defaults to 'typeorm' if not specified
}
})
Setup
- Create the
typeorm
Directory: Inside the root of your project, create a typeorm directory (or the directory specified in your config). This is where you'll organize TypeORM-related files, such as entities and migrations. - Organize with Subdirectories: To keep the folder organized, create subdirectories like
entities
for entity files andmigrations
for migration files. - Define a Data Source: Create a file (e.g.,
useDatabase.ts
) in thetypeorm
directory. Use the provideddefineDataSource
function to configure your TypeORM data source.
export const useDatabase = defineDataSource({
type: 'sqlite',
database: './typeorm/database.sqlite',
entities: [],
migrations: [],
synchronize: true,
})
[!NOTE] You can add all entities and migrations here without additional imports.
Usage
After setting up, the data source will be auto-imported and ready for use in your Nitro routes. Here’s a simple example of using useDatabase
to interact with an entity called User
.
Example: Fetching Users
// server/api/user/list/index.get.ts
export default defineEventHandler(async (event) => {
const database = await useDatabase()
const UserRepository = database.getRepository(User)
return UserRepository.find()
})
In this example, useDatabase()
initializes the database connection and retrieves the repository for the User
entity, allowing you to perform operations like .find()
.
Contribution
# Install dependencies
npm install
# Generate type stubs
npm run dev:prepare
# Develop with the playground
npm run dev
# Build the playground
npm run dev:build
# Run ESLint
npm run lint
# Run Vitest
npm run test
npm run test:watch
# Release new version
npm run release