| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { OnApplicationBootstrap } from '@nestjs/common';
- import { Args, Query, Resolver } from '@nestjs/graphql';
- import {
- Ctx,
- ErrorResult,
- I18nService,
- PluginCommonModule,
- RequestContext,
- VendurePlugin,
- } from '@vendure/core';
- import gql from 'graphql-tag';
- import path from 'path';
- class CustomError extends ErrorResult {
- readonly __typename = 'CustomError';
- readonly errorCode = 'CUSTOM_ERROR';
- readonly message = 'CUSTOM_ERROR';
- }
- class NewError extends ErrorResult {
- readonly __typename = 'NewError';
- readonly errorCode = 'NEW_ERROR';
- readonly message = 'NEW_ERROR';
- }
- @Resolver()
- class TestResolver {
- @Query()
- async customErrorMessage(@Ctx() ctx: RequestContext, @Args() args: any) {
- return new CustomError();
- }
- @Query()
- async newErrorMessage(@Ctx() ctx: RequestContext, @Args() args: any) {
- return new NewError();
- }
- }
- export const CUSTOM_ERROR_MESSAGE_TRANSLATION = 'A custom error message';
- @VendurePlugin({
- imports: [PluginCommonModule],
- providers: [I18nService],
- adminApiExtensions: {
- schema: gql`
- extend type Query {
- customErrorMessage: CustomResult
- newErrorMessage: CustomResult
- }
- type CustomError implements ErrorResult {
- errorCode: ErrorCode!
- message: String!
- }
- type NewError implements ErrorResult {
- errorCode: ErrorCode!
- message: String!
- }
- "Return anything and the error that should be thrown"
- union CustomResult = Product | CustomError | NewError
- `,
- resolvers: [TestResolver],
- },
- })
- export class TranslationTestPlugin implements OnApplicationBootstrap {
- constructor(private i18nService: I18nService) {}
- onApplicationBootstrap(): any {
- this.i18nService.addTranslation('en', {
- errorResult: {
- CUSTOM_ERROR: CUSTOM_ERROR_MESSAGE_TRANSLATION,
- },
- });
- this.i18nService.addTranslation('de', {
- errorResult: {
- CUSTOM_ERROR: 'DE_' + CUSTOM_ERROR_MESSAGE_TRANSLATION,
- },
- });
- this.i18nService.addTranslationFile('en', path.join(__dirname, '../i18n/en.json'));
- this.i18nService.addTranslationFile('de', path.join(__dirname, '../i18n/de.json'));
- }
- }
|