Skip to content

Commit

Permalink
Merge pull request #541 from toonvanstrijp/fix/imports
Browse files Browse the repository at this point in the history
  • Loading branch information
rubiin committed Aug 18, 2023
2 parents c994d2c + 3095d10 commit 1f2f22e
Show file tree
Hide file tree
Showing 23 changed files with 77 additions and 57 deletions.
2 changes: 1 addition & 1 deletion src/decorators/i18n-resolver-options.decorator.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Inject } from '@nestjs/common';
import { I18N_RESOLVER_OPTIONS } from '..';
import { I18N_RESOLVER_OPTIONS } from '../i18n.constants';

export function getI18nResolverOptionsToken(target: () => void) {
return `${target.name}${I18N_RESOLVER_OPTIONS}`;
Expand Down
4 changes: 4 additions & 0 deletions src/decorators/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export * from './i18n-lang.decorator';
export * from './i18n-languages.decorator';
export * from './i18n-resolver-options.decorator';
export * from './i18n.decorator';
9 changes: 3 additions & 6 deletions src/filters/i18n-validation-exception.filter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,11 @@ import iterate from 'iterare';
import { I18nContext } from '../i18n.context';
import {
I18nValidationError,
I18nValidationException,
} from '../interfaces/i18n-validation-error.interface';
import {
I18nValidationExceptionFilterDetailedErrorsOption,
I18nValidationExceptionFilterErrorFormatterOption,
} from '../interfaces/i18n-validation-exception-filter.interface';
import { mapChildrenToValidationErrors } from '../utils/format';
import { formatI18nErrors } from '../utils/util';
I18nValidationException,
} from '../interfaces';
import { mapChildrenToValidationErrors, formatI18nErrors } from '../utils';

type I18nValidationExceptionFilterOptions =
| I18nValidationExceptionFilterDetailedErrorsOption
Expand Down
2 changes: 1 addition & 1 deletion src/i18n.constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ export const I18N_RESOLVER_OPTIONS = 'I18nResolverOptions';
export const I18N_RESOLVERS = 'I18nResolvers';
export const I18N_LOADER_OPTIONS = 'I18nLoaderOptions';

// private consts
// private constants
export const I18N_LANGUAGES_SUBJECT = 'I18nLanguagesSubject';
export const I18N_TRANSLATIONS_SUBJECT = 'I18nTranslationsSubject';
5 changes: 2 additions & 3 deletions src/i18n.context.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import { ArgumentsHost } from '@nestjs/common';
import { AsyncLocalStorage } from 'async_hooks';
import { I18nTranslator } from './interfaces/i18n-translator.interface';
import { I18nValidationError } from './interfaces/i18n-validation-error.interface';
import { I18nTranslator, I18nValidationError } from './interfaces';
import { I18nService, TranslateOptions } from './services/i18n.service';
import { Path, PathValue } from './types';
import { getContextObject } from './utils/context';
import { getContextObject } from './utils';

export class I18nContext<K = Record<string, unknown>>
implements I18nTranslator<K>
Expand Down
12 changes: 8 additions & 4 deletions src/i18n.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,19 @@ import {
} from '@nestjs/common';
import { I18nLanguageInterceptor } from './interceptors/i18n-language.interceptor';
import { APP_INTERCEPTOR, HttpAdapterHost } from '@nestjs/core';
import { getI18nResolverOptionsToken } from './decorators/i18n-resolver-options.decorator';
import { isNestMiddleware, shouldResolve, usingFastify } from './utils/util';
import { getI18nResolverOptionsToken } from './decorators';
import {
isNestMiddleware,
shouldResolve,
usingFastify,
mergeDeep,
} from './utils';
import { I18nTranslation } from './interfaces/i18n-translation.interface';
import { I18nLoader } from './loaders/i18n.loader';
import { Observable, BehaviorSubject, Subject, takeUntil } from 'rxjs';
import * as format from 'string-format';
import { I18nJsonLoader } from './loaders/i18n.json.loader';
import { I18nJsonLoader } from './loaders';
import { I18nMiddleware } from './middlewares/i18n.middleware';
import { mergeDeep } from './utils/merge';
import * as fs from 'fs';
import * as path from 'path';
import * as chalk from 'chalk';
Expand Down
21 changes: 4 additions & 17 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,16 @@ export * from './i18n.context';
export * from './services/i18n.service';

// interfaces
export * from './interfaces/i18n-options.interface';
export * from './interfaces/i18n-language-resolver.interface';
export * from './interfaces/i18n-translation.interface';
export * from './interfaces/i18n-validation-error.interface';
export * from './interfaces';

// decorators
export * from './decorators/i18n-lang.decorator';
export * from './decorators/i18n-languages.decorator';
export * from './decorators/i18n-resolver-options.decorator';
export * from './decorators/i18n.decorator';
export * from './decorators';

// build in resolvers
export * from './resolvers/header.resolver';
export * from './resolvers/accept-language.resolver';
export * from './resolvers/query.resolver';
export * from './resolvers/cookie.resolver';
export * from './resolvers/graphql-websocket.resolver';
export * from './resolvers/grpc-metadata.resolver';
export * from './resolvers';

// build in loaders
export * from './loaders/i18n.loader';
export * from './loaders/i18n.json.loader';
export * from './loaders/i18n.yaml.loader';
export * from './loaders';

// interceptor
export * from './interceptors/i18n-language.interceptor';
Expand Down
2 changes: 1 addition & 1 deletion src/interfaces/i18n-options.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
ValueProvider,
} from '@nestjs/common/interfaces';
import { I18nResolver } from './i18n-language-resolver.interface';
import { I18nLoader } from '../loaders/i18n.loader';
import { I18nLoader } from '../loaders';
import { ValidatorOptions } from 'class-validator';

export interface OptionsProvider {
Expand Down
7 changes: 7 additions & 0 deletions src/interfaces/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export * from './i18n-language-resolver.interface';
export * from './i18n-options.interface';
export * from './i18n-plural.interface';
export * from './i18n-translation.interface';
export * from './i18n-translator.interface';
export * from './i18n-validation-error.interface';
export * from './i18n-validation-exception-filter.interface';
6 changes: 3 additions & 3 deletions src/loaders/i18n.abstract.loader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ import { I18N_LOADER_OPTIONS } from '../i18n.constants';
import { Inject, OnModuleDestroy } from '@nestjs/common';
import * as path from 'path';
import { readFile } from 'fs/promises';
import { exists, getDirectories, getFiles } from '../utils/file';
import { I18nTranslation } from '../interfaces/i18n-translation.interface';
import { exists, getDirectories, getFiles } from '../utils';
import { I18nTranslation } from '../interfaces';
import {
Observable,
Subject,
merge as ObservableMerge,
of as ObservableOf,
switchMap,
} from 'rxjs';
import * as chokidar from 'chokidar';
import { switchMap } from 'rxjs/operators';

export interface I18nAbstractLoaderOptions {
path: string;
Expand Down
2 changes: 1 addition & 1 deletion src/loaders/i18n.loader.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { I18nTranslation } from '../interfaces/i18n-translation.interface';
import { I18nTranslation } from '../interfaces';
import { Observable } from 'rxjs';

export abstract class I18nLoader {
Expand Down
4 changes: 4 additions & 0 deletions src/loaders/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export * from './i18n.abstract.loader';
export * from './i18n.json.loader';
export * from './i18n.loader';
export * from './i18n.yaml.loader';
4 changes: 2 additions & 2 deletions src/middlewares/i18n.middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
WsArgumentsHost,
} from '@nestjs/common/interfaces';
import { ModuleRef } from '@nestjs/core';
import { shouldResolve } from '../utils/util';
import { shouldResolve } from '../utils';
import { I18N_OPTIONS, I18N_RESOLVERS } from '../i18n.constants';
import {
I18nContext,
Expand All @@ -17,7 +17,7 @@ import {
ResolverWithOptions,
} from '../index';
import { I18nService } from '../services/i18n.service';
import { I18nOptionResolver } from '../interfaces/i18n-options.interface';
import { I18nOptionResolver } from '../interfaces';

const ExecutionContextMethodNotImplemented = new Error(
"Method not implemented. nestjs-i18n creates a fake Http context since it's using middleware to resolve your language. Nestjs middlewares don't have access to the ExecutionContext.",
Expand Down
2 changes: 1 addition & 1 deletion src/pipes/i18n-validation.pipe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
ValidationPipeOptions,
} from '@nestjs/common';
import { I18nContext } from '../i18n.context';
import { i18nValidationErrorFactory } from '../utils/util';
import { i18nValidationErrorFactory } from '../utils';

export type I18nValidationPipeOptions = Omit<
ValidationPipeOptions,
Expand Down
2 changes: 1 addition & 1 deletion src/resolvers/cookie.resolver.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as cookie from 'cookie';
import { Injectable, ExecutionContext } from '@nestjs/common';
import { I18nResolver } from '..';
import { I18nResolverOptions } from '../decorators/i18n-resolver-options.decorator';
import { I18nResolverOptions } from '../decorators';

/**
* Simple resolver to fetch language/locale from cookie
Expand Down
2 changes: 1 addition & 1 deletion src/resolvers/header.resolver.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { I18nResolver } from '../index';
import { Injectable, ExecutionContext, Logger } from '@nestjs/common';
import { I18nResolverOptions } from '../decorators/i18n-resolver-options.decorator';
import { I18nResolverOptions } from '../decorators';

@Injectable()
export class HeaderResolver implements I18nResolver {
Expand Down
6 changes: 6 additions & 0 deletions src/resolvers/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export * from './accept-language.resolver';
export * from './cookie.resolver';
export * from './graphql-websocket.resolver';
export * from './grpc-metadata.resolver';
export * from './header.resolver';
export * from './query.resolver';
2 changes: 1 addition & 1 deletion src/resolvers/query.resolver.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { I18nResolver } from '../index';
import { Injectable, ExecutionContext } from '@nestjs/common';
import { I18nResolverOptions } from '../decorators/i18n-resolver-options.decorator';
import { I18nResolverOptions } from '../decorators';

@Injectable()
export class QueryResolver implements I18nResolver {
Expand Down
24 changes: 14 additions & 10 deletions src/services/i18n.service.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
import { Inject, Injectable, Logger, OnModuleDestroy } from '@nestjs/common';
import { validate } from 'class-validator';
import {
BehaviorSubject,
Observable,
Subject,
lastValueFrom,
take,
takeUntil,
} from 'rxjs';
import { I18nOptions, I18nTranslation, I18nValidationError } from '..';
import {
I18N_OPTIONS,
I18N_TRANSLATIONS,
I18N_LANGUAGES,
I18N_LANGUAGES_SUBJECT,
I18N_OPTIONS,
I18N_TRANSLATIONS,
I18N_TRANSLATIONS_SUBJECT,
} from '../i18n.constants';
import { I18nOptions, I18nValidationError } from '..';
import { I18nTranslation } from '../interfaces/i18n-translation.interface';
import { Observable, BehaviorSubject, lastValueFrom, Subject } from 'rxjs';
import { I18nLoader } from '../loaders/i18n.loader';
import { take, takeUntil } from 'rxjs/operators';
import { I18nPluralObject } from 'src/interfaces/i18n-plural.interface';
import { validate } from 'class-validator';
import { formatI18nErrors } from '../utils/util';
import { IfAnyOrNever, Path, PathValue } from '../types';
import { I18nTranslator } from '../interfaces/i18n-translator.interface';
import { formatI18nErrors } from '../utils';
import { I18nTranslator, I18nPluralObject } from '../interfaces';

const pluralKeys = ['zero', 'one', 'two', 'few', 'many', 'other'];

Expand Down
2 changes: 2 additions & 0 deletions src/types/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './either.type';
export * from './only.type';
6 changes: 6 additions & 0 deletions src/utils/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export * from './context';
export * from './file';
export * from './format';
export * from './merge';
export * from './typescript';
export * from './util';
2 changes: 1 addition & 1 deletion src/utils/merge.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { I18nTranslation } from '../interfaces/i18n-translation.interface';
import { I18nTranslation } from '../interfaces';

function isObject(item: any) {
return item && typeof item === 'object' && !Array.isArray(item);
Expand Down
6 changes: 3 additions & 3 deletions src/utils/util.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { I18nOptionResolver } from '../interfaces/i18n-options.interface';
import { ValidationArguments, ValidationError } from 'class-validator';
import {
I18nOptionResolver,
I18nValidationError,
I18nValidationException,
} from '../interfaces/i18n-validation-error.interface';
} from '../interfaces';
import { ValidationArguments, ValidationError } from 'class-validator';
import { I18nService, TranslateOptions } from '../services/i18n.service';
import { HttpStatus, MiddlewareConsumer } from '@nestjs/common';
import { NestMiddlewareConsumer, Path } from '../types';
Expand Down

0 comments on commit 1f2f22e

Please sign in to comment.