Proof of concept
This commit is contained in:
parent
3e535f8805
commit
5ca0a076e2
10 changed files with 41 additions and 30 deletions
|
@ -1,24 +0,0 @@
|
||||||
import { Injectable } from "@nestjs/common";
|
|
||||||
import { InjectRepository } from "@nestjs/typeorm";
|
|
||||||
import { Repository } from "typeorm";
|
|
||||||
import { Cat } from "./src/cats/cats.entity";
|
|
||||||
|
|
||||||
@Injectable()
|
|
||||||
export class CatsService {
|
|
||||||
constructor(
|
|
||||||
@InjectRepository(Cat)
|
|
||||||
private catsRepository: Repository<Cat>,
|
|
||||||
) {}
|
|
||||||
|
|
||||||
findAll(): Promise<Cat[]> {
|
|
||||||
return this.catsRepository.find();
|
|
||||||
}
|
|
||||||
|
|
||||||
findOne(id: number): Promise<Cat | null> {
|
|
||||||
return this.catsRepository.findOneBy({ id });
|
|
||||||
}
|
|
||||||
|
|
||||||
async remove(id: number): Promise<void> {
|
|
||||||
await this.catsRepository.delete(id)
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
15
package-lock.json
generated
15
package-lock.json
generated
|
@ -11,6 +11,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nestjs/common": "^10.0.0",
|
"@nestjs/common": "^10.0.0",
|
||||||
"@nestjs/core": "^10.0.0",
|
"@nestjs/core": "^10.0.0",
|
||||||
|
"@nestjs/devtools-integration": "^0.1.5",
|
||||||
"@nestjs/platform-express": "^10.0.0",
|
"@nestjs/platform-express": "^10.0.0",
|
||||||
"@nestjs/typeorm": "^10.0.0",
|
"@nestjs/typeorm": "^10.0.0",
|
||||||
"pg": "^8.11.3",
|
"pg": "^8.11.3",
|
||||||
|
@ -1639,6 +1640,20 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@nestjs/devtools-integration": {
|
||||||
|
"version": "0.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@nestjs/devtools-integration/-/devtools-integration-0.1.5.tgz",
|
||||||
|
"integrity": "sha512-iwxvfxa3kzOulG/Fje82Ww80OVsA8rzYR+UAEKrdGExRRGQRGQ0+bHfG0XLlPG3XIuM5J2MRMo7x1bN8ZIs9Gg==",
|
||||||
|
"dependencies": {
|
||||||
|
"chalk": "^4.1.2",
|
||||||
|
"node-fetch": "^2.6.9"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@nestjs/common": "^9.3.7 || ^10.0.0",
|
||||||
|
"@nestjs/core": "^9.3.7 || ^10.0.0",
|
||||||
|
"reflect-metadata": "^0.1.12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@nestjs/platform-express": {
|
"node_modules/@nestjs/platform-express": {
|
||||||
"version": "10.2.5",
|
"version": "10.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.2.5.tgz",
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "nest build",
|
"build": "nest build",
|
||||||
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
||||||
|
"typeorm": "typeorm-ts-node-esm",
|
||||||
"start": "nest start",
|
"start": "nest start",
|
||||||
"start:dev": "nest start --watch",
|
"start:dev": "nest start --watch",
|
||||||
"start:debug": "nest start --debug --watch",
|
"start:debug": "nest start --debug --watch",
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nestjs/common": "^10.0.0",
|
"@nestjs/common": "^10.0.0",
|
||||||
"@nestjs/core": "^10.0.0",
|
"@nestjs/core": "^10.0.0",
|
||||||
|
"@nestjs/devtools-integration": "^0.1.5",
|
||||||
"@nestjs/platform-express": "^10.0.0",
|
"@nestjs/platform-express": "^10.0.0",
|
||||||
"@nestjs/typeorm": "^10.0.0",
|
"@nestjs/typeorm": "^10.0.0",
|
||||||
"pg": "^8.11.3",
|
"pg": "^8.11.3",
|
||||||
|
|
|
@ -1,17 +1,21 @@
|
||||||
import { Module } from '@nestjs/common';
|
import { Module } from '@nestjs/common';
|
||||||
import { DataSource } from 'typeorm';
|
import { DataSource } from 'typeorm';
|
||||||
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm'; // DEBUG: Is this necessary? Docs unclear.
|
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm'; // DEBUG: Is this necessary? Docs unclear.
|
||||||
|
import { DevtoolsModule } from '@nestjs/devtools-integration';
|
||||||
import { AppController } from './app.controller';
|
import { AppController } from './app.controller';
|
||||||
import { AppService } from './app.service';
|
import { AppService } from './app.service';
|
||||||
import { Cat } from './cats/cats.entity';
|
import { Cat } from './cats/cats.entity';
|
||||||
import { CatsModule } from './cats/cats.module';
|
import { CatsModule } from './cats/cats.module';
|
||||||
|
|
||||||
|
console.debug(`[AppModule] Starting...`)
|
||||||
|
|
||||||
let dbConfig: TypeOrmModuleOptions;
|
let dbConfig: TypeOrmModuleOptions;
|
||||||
|
|
||||||
if ( process.env.NODE_ENV === 'production' ) {
|
if ( process.env.NODE_ENV === 'production' ) {
|
||||||
dbConfig = {
|
dbConfig = {
|
||||||
type: 'sqlite',
|
type: 'sqlite',
|
||||||
database: 'database/database_development.sqlite3'
|
database: 'database/database_development.sqlite3',
|
||||||
|
entities: [Cat],
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dbConfig = {
|
dbConfig = {
|
||||||
|
@ -22,9 +26,12 @@ if ( process.env.NODE_ENV === 'production' ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [TypeOrmModule.forRoot(dbConfig), CatsModule],
|
imports: [
|
||||||
|
TypeOrmModule.forRoot(dbConfig),
|
||||||
|
DevtoolsModule.register({ http: process.env.NODE_ENV !== 'production' }),
|
||||||
|
CatsModule
|
||||||
|
],
|
||||||
controllers: [AppController],
|
controllers: [AppController],
|
||||||
providers: [AppService],
|
providers: [AppService],
|
||||||
})
|
})
|
||||||
|
|
||||||
export class AppModule {}
|
export class AppModule {}
|
||||||
|
|
|
@ -4,10 +4,13 @@ import { Cat } from "./cats.entity";
|
||||||
|
|
||||||
@Controller('cats')
|
@Controller('cats')
|
||||||
export class CatsController {
|
export class CatsController {
|
||||||
constructor(private catsService: CatsService) {};
|
constructor(private catsService: CatsService) {
|
||||||
|
console.debug("[cats controller] Starting...");
|
||||||
|
}
|
||||||
|
|
||||||
@Get()
|
@Get()
|
||||||
findAll(): Promise<Cat[]> {
|
findAll(): Promise<Cat[]> {
|
||||||
|
console.debug("[ctrl findAll] Starting...");
|
||||||
return this.catsService.findAll();
|
return this.catsService.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { Entity, Column, PrimaryGeneratedColumn } from "typeorm";
|
import { Entity, Column, PrimaryGeneratedColumn } from "typeorm";
|
||||||
|
|
||||||
|
console.debug('[cats entity] Starting...')
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class Cat {
|
export class Cat {
|
||||||
@PrimaryGeneratedColumn()
|
@PrimaryGeneratedColumn()
|
||||||
|
|
|
@ -4,6 +4,8 @@ import { CatsController } from "./cats.controller";
|
||||||
import { CatsService } from "./cats.service";
|
import { CatsService } from "./cats.service";
|
||||||
import { Cat } from "./cats.entity";
|
import { Cat } from "./cats.entity";
|
||||||
|
|
||||||
|
console.debug("[cats module] Starting...");
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [TypeOrmModule.forFeature([Cat])],
|
imports: [TypeOrmModule.forFeature([Cat])],
|
||||||
providers: [CatsService],
|
providers: [CatsService],
|
||||||
|
|
|
@ -8,9 +8,12 @@ export class CatsService {
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(Cat)
|
@InjectRepository(Cat)
|
||||||
private catsRepository: Repository<Cat>,
|
private catsRepository: Repository<Cat>,
|
||||||
) {}
|
) {
|
||||||
|
console.debug("[cats service] Starting...");
|
||||||
|
}
|
||||||
|
|
||||||
findAll(): Promise<Cat[]> {
|
findAll(): Promise<Cat[]> {
|
||||||
|
console.log("[svc findAll] Starting...")
|
||||||
return this.catsRepository.find();
|
return this.catsRepository.find();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,8 @@ import { NestFactory } from '@nestjs/core';
|
||||||
import { AppModule } from './app.module';
|
import { AppModule } from './app.module';
|
||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
const app = await NestFactory.create(AppModule);
|
console.debug("[bootstrap] Starting...")
|
||||||
|
const app = await NestFactory.create(AppModule, { snapshot: true });
|
||||||
await app.listen(3000);
|
await app.listen(3000);
|
||||||
}
|
}
|
||||||
bootstrap();
|
bootstrap();
|
||||||
|
|
Loading…
Reference in a new issue