Base stuffs for any NodeJS project
The intention behind this repository is to always maintain a Base
project to any NodeJS project.
To use the high potential from this package you need to install first this other packages from SecJS, it keeps as dev dependency because one day
@secjs/core
will install everything once.
npm install @secjs/contracts @secjs/exceptions @secjs/utils
Then you can install the package using:
npm install @secjs/base
Use to get nice methods to use with @secjs/base repositories
import { User } from 'app/Models/User'
import { NotFoundException } from '@nestjs/common'
import { BaseService } from '@secjs/base/services/BaseService'
import { ContactResource } from 'app/Resources/ContactResource'
import { ContactRepository } from 'app/Repositories/ContactRepository'
class ContactService extends BaseService<User> {
protected resourceName = 'contact'
protected resource = new ContactResource()
protected repository = new ContactRepository()
protected NotFoundException: any = NotFoundException // Define exception or use NotFoundException default from @secjs/exceptions
// You can subscribe BaseService methods in here if you want!
}
Use LucidRepository to get nice methods based on ApiRequestContract
import { User } from 'app/Models/User'
import { LucidRepository } from '@secjs/base/repositories/LucidRepository'
class UserRepository extends LucidRepository<User> {
model = User // Give the Model value to Lucid, so he knows what to work with.
wheres = ['id', 'name'] // What wheres can be executed by client
relations = ['contacts'] // What relations can be get by client
// Both, wheres and relations will only work for external requests.
// You can subscribe LucidRepository methods in here if you want!
}
Use TypeOrmRepository to get nice methods based on ApiRequestContract
import { User } from 'app/Models/User'
import { TypeOrmRepository } from '@secjs/base/repositories/TypeOrmRepository'
class UserRepository extends TypeOrmRepository<User> {
model = User // Give the Model value to Lucid, so he knows what to work with.
wheres = ['id', 'name'] // What wheres can be executed by client
relations = ['contacts'] // What relations can be get by client
// Both, wheres and relations will only work for external requests.
// You can subscribe TypeOrmRepository methods in here if you want!
}
Use MongooseRepository to get nice methods based on ApiRequestContract
import { User, UserDocument } from 'app/Schemas/User'
import { MongooseRepository } from '@secjs/base/repositories/MongooseRepository'
class UserRepository extends MongooseRepository<UserDocument> {
model = User // Give the Model value to Mongoose, so he knows what to work with.
wheres = ['id', 'name'] // What wheres can be executed by client
relations = ['contacts'] // What relations can be get by client
// Both, wheres and relations will only work for external requests.
// You can subscribe MongooseRepository methods in here if you want!
}
Use PrismaRepository to get nice methods based on ApiRequestContract
import { User } from 'app/Models/User'
import { PrismaRepository } from '@secjs/base/repositories/PrismaRepository'
class UserRepository extends PrismaRepository<User> {
model = User // Give the Model value to Lucid, so he knows what to work with.
wheres = ['id', 'name'] // What wheres can be executed by client
relations = ['contacts'] // What relations can be get by client
// Both, wheres and relations will only work for external requests.
// You can subscribe PrismaRepository methods in here if you want!
}
Made with π€ by jlenon7 π