Skip to content

Instantly share code, notes, and snippets.

View paulodutra's full-sized avatar

Paulo Dutra paulodutra

View GitHub Profile
@paulodutra
paulodutra / task.entity.ts
Last active August 11, 2024 16:59
Task entity typeorm
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Task {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@paulodutra
paulodutra / task-seed-service.ts
Last active August 11, 2024 17:03
Faker js seed for task table
import { Injectable } from '@nestjs/common';
import { EntityManager } from 'typeorm';
import { faker } from '@faker-js/faker';
import { Task } from '@/infrastructure/database/entities/task.entity';
@Injectable()
export class TaskSeedService {
private done = [0, 1];
constructor(private readonly entityManager: EntityManager) {}
import { MigrationInterface, QueryRunner, Table } from 'typeorm';
export class CreateTaskTable1722825209848 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: 'task',
columns: [
{
name: 'id',
@paulodutra
paulodutra / database-module.ts
Last active August 11, 2024 16:56
Database Dynamic module nestjs
import { DynamicModule, Module } from '@nestjs/common';
import { MysqlModule } from './mysql/mysql.module';
import { InMemoryModule } from './in-memory/in-memory.module';
@Module({
imports: [MysqlModule, InMemoryModule],
})
export class DatabaseModule {
static forRoot(): DynamicModule {
const isTestEnv = process.env.NODE_ENV === 'test';
@paulodutra
paulodutra / mysql-database-config.ts
Last active August 11, 2024 16:55
Mysql database config Typeorm Nestjs
import { registerAs } from '@nestjs/config';
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
export const mysqlDatabaseConfig = registerAs(
'database.mysql',
(): TypeOrmModuleOptions => ({
type: 'mysql',
host: process.env.DB_HOST,
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
@paulodutra
paulodutra / in-memory-database-config.ts
Last active August 11, 2024 16:54
InMemory database config Typeorm Nestjs
import { registerAs } from '@nestjs/config';
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
export const inMemoryDatabaseConfig = registerAs(
'database.inMemory',
(): TypeOrmModuleOptions => ({
type: 'sqlite',
database: ':memory',
entities: [
__dirname +
@paulodutra
paulodutra / docker-compose.yaml
Last active August 11, 2024 16:50
docker-compose mysql container
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: nestjs_testing
MYSQL_USER: user
MYSQL_PASSWORD: user
@paulodutra
paulodutra / jest-e2e.json
Last active August 11, 2024 16:49
moduleNameMapper jest test e2e
{
"moduleFileExtensions": ["js", "json", "ts"],
"rootDir": "../",
"testEnvironment": "node",
"testRegex": ".e2e-spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1",
@paulodutra
paulodutra / jest.config.ts
Last active August 11, 2024 16:46
Module name mapper jest
module.exports = {
preset: 'ts-jest',
moduleFileExtensions: ['js', 'json', 'ts', 'node'],
rootDir: 'src',
testRegex: '.*\\.spec\\.ts$',
transform: {
'^.+\\.(t|j)s$': 'ts-jest',
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/$1',
@paulodutra
paulodutra / tsconfig.json
Last active August 11, 2024 16:43
alias import tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "ES2021",
"sourceMap": true,