ttalos
TypeScript icon, indicating that this package has built-in type declarations

2.2.2 • Public • Published

npm version downloads

TTalos

Libs for Fortalicia-cloud

Summary

Decorators

Profile

Implementation

import { Profile, USER_PROFILE } from 'ttalos';
...
@UseGuards(AuthGuard)
@Profile(USER_PROFILE.THOMYRIS, USER_PROFILE.AGENCY, USER_PROFILE.PARTNER)

User session

Implementation

  • Create NestJs decorator
import { CurrentSessionDecorator, UserSession } from 'ttalos';

import { createParamDecorator, ExecutionContext } from '@nestjs/common';

import { TYPES } from '../../../config/injection/type';
import { Configuration } from '../../../config/env/configuration';
import { container } from '../../../config/injection/inversify.config';

export const CurrentSession = createParamDecorator(
  async (data: unknown, executionContext: ExecutionContext): Promise<UserSession> => {
    const currentSessionDecorator:CurrentSessionDecorator = new CurrentSessionDecorator(container.get<Configuration>(TYPES.config));
    return currentSessionDecorator.execute(data, executionContext);
  }
);
  • Use
async hello(@CurrentSession() session: UserSession): Promise<Boolean> {
  return 'hello';
}

Guards

AuthGuardProfil

import { AuthGuardProfil } from 'ttalos';

import { Reflector } from '@nestjs/core';
import { CanActivate, ExecutionContext, Inject, Injectable } from '@nestjs/common';

import { TYPES } from '../../../../config/injection/type';
import { IsValidUsecase } from '../../../../usecase/auth/isValid.usecase';

@Injectable()
export class AuthGuard implements CanActivate {
  
  constructor(
    @Inject(TYPES.IsValidUsecase) private isValidUsecase: IsValidUsecase,
    private reflector: Reflector
  ) {}
  
  async canActivate(executionContext: ExecutionContext): Promise<boolean> {
    const authGuardProfil:AuthGuardProfil = new AuthGuardProfil(this.isValidUsecase, this.reflector);

    return authGuardProfil.execute(executionContext);
  }
}
  • Use
@UseGuards(AuthGuard)
@Profile(USER_PROFILE.THOMYRIS, USER_PROFILE.AGENCY, USER_PROFILE.PARTNER)
async hello(@CurrentSession() session: UserSession): Promise<Boolean> {
  return 'hello';
}

Scalars

AdresseScalar

import { Adresse } from 'ttalos';
...
@Field(() => Adresse)

CityScalar

import { City } from 'ttalos';
...
@Field(() => City)

CityScalar

import { City } from 'ttalos';
...
@Field(() => City)

CodeScalar

import { Code } from 'ttalos';
...
@Field(() => Code)

CustomIdScalar

import { CustomId } from 'ttalos';
...
@Field(() => CustomId)

DescriptionScalar

import { Description } from 'ttalos';
...
@Field(() => Description)

MailScalar

import { Mail } from 'ttalos';
...
@Field(() => Mail)

NameScalar

import { Name } from 'ttalos';
...
@Field(() => Name)

ObjectNameScalar

import { ObjectName } from 'ttalos';
...
@Field(() => ObjectName)

PasswordScalar

import { Password } from 'ttalos';
...
@Field(() => Password)

SerialNumberScalar

import { SerialNumber } from 'ttalos';
...
@Field(() => SerialNumber)

TokenScalar

import { Token } from 'ttalos';
...
@Field(() => Token)

Models & Dto

IsValidRepositoryModel

import { IsValidRepositoryModel, IsValidRepositoryDto } from 'ttalos';
...
isValid(dto: IsValidRepositoryDto): Promise<IsValidRepositoryModel>;

IsValidUsecaseModel

import { IsValidUsecaseModel, IsValidUsecaseDto } from 'ttalos';
...
async execute(input: IsValidUsecaseDto): Promise<IsValidUsecaseModel> {
...    
}

UserSession

import { UserSession } from 'ttalos';
...
async (data: unknown, executionContext: ExecutionContext): Promise<UserSession> => {
...    
}

UserSessionUsecaseDto

import { UserSessionUsecaseDto } from 'ttalos';
...
async execute(session: UserSessionUsecaseDto, input: ...): Promise<...> {
...    
}

VersionUsecaseModel

import { VersionUsecaseModel } from 'ttalos';
...
async execute(): Promise<VersionUsecaseModel> {
...    
}

Logger

NestLogger & logger

import { NestLogger, Logger } from 'ttalos';
import { name } from '../package.json';

async function bootstrap() {
  Logger.defaultMeta.module = name;
  Logger.info('Environnement selected: ' + process.env.NODE_ENV);
  ...
  const app = await NestFactory.create(AppModule,{
    logger: new NestLogger(),
  });
  ...
  Logger.info('Server started on: ' + config.app.port);
}

Mappers

listMongoMapper

import { ListMongoMapper } from 'ttalos';
...
const test = ListMongoMapper.fromBaseOptionToMongoFindOption(...);
...

ListSqlMapper

import { ListSqlMapper } from 'ttalos';
...
const test = ListSqlMapper.fromBaseOptionToSqlFindOption(...);
...

ListSqlMapper

import { SessionDecoratorMapper } from 'ttalos';
...
const test = SessionDecoratorMapper.sessionDtoFromJwt(...);
...

Options for API list

import {
  OptionBaseDto,
  OptionRepositoryDto,
  OptionUsecaseDto,
  OptionResolverDto,
  OptionFilterOperator,
  OptionSorterOperator,
} from 'ttalos';

const test = OptionFilterOperator.REGEX;

async list(@Args('input') dto?: OptionResolverDto): Promise<String[]> {
  return null;
}

HOW TO publish

npm publish --access public

Readme

Keywords

none

Package Sidebar

Install

npm i ttalos

Weekly Downloads

0

Version

2.2.2

License

ISC

Unpacked Size

106 kB

Total Files

113

Last publish

Collaborators

  • thomyris