UNPKG

@softkit/i18n

Version:

This library is a simple wrapper based on [nestjs-i18n](https://nestjs-i18n.com/)

99 lines 4.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CatResolver = void 0; const tslib_1 = require("tslib"); const graphql_1 = require("@nestjs/graphql"); const cat_service_1 = require("./cat.service"); const common_1 = require("@nestjs/common"); const graphql_subscriptions_1 = require("graphql-subscriptions"); const cat_input_1 = require("./cat.input"); const i18n_context_1 = require("../../../i18n.context"); const decorators_1 = require("../../../decorators"); const i18n_validation_exception_filter_1 = require("../../../filters/i18n-validation-exception.filter"); let CatResolver = class CatResolver { constructor(catService, pubSub) { this.catService = catService; this.pubSub = pubSub; } async getCats() { return await this.catService.findAll(); } async getCat(id) { return await this.catService.findById(id); } async getCatUsingContext(id, i18n) { const cat = await this.catService.findById(id); // we manually overwrite this property to indicate a value that is translated! cat.description = i18n.translate('test.cat'); return cat; } async create(args) { await this.pubSub.publish('catAdded', { catAdded: args.name }); return args; } catAdded() { return this.pubSub.asyncIterator('catAdded'); } validation(_) { return; } }; exports.CatResolver = CatResolver; tslib_1.__decorate([ (0, graphql_1.Query)('cats'), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", Promise) ], CatResolver.prototype, "getCats", null); tslib_1.__decorate([ (0, graphql_1.Query)('cat'), tslib_1.__param(0, (0, graphql_1.Args)('id')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Number]), tslib_1.__metadata("design:returntype", Promise) ], CatResolver.prototype, "getCat", null); tslib_1.__decorate([ (0, graphql_1.Query)('catUsingContext'), tslib_1.__param(0, (0, graphql_1.Args)('id')), tslib_1.__param(1, (0, decorators_1.I18n)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Number, i18n_context_1.I18nContext]), tslib_1.__metadata("design:returntype", Promise) ], CatResolver.prototype, "getCatUsingContext", null); tslib_1.__decorate([ (0, graphql_1.Mutation)('createCat'), tslib_1.__param(0, (0, graphql_1.Args)('createCatInput')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [cat_input_1.CreateCatInput]), tslib_1.__metadata("design:returntype", Promise) ], CatResolver.prototype, "create", null); tslib_1.__decorate([ (0, graphql_1.Subscription)('catAdded', { resolve: async (payload, _, ctx) => { const { catAdded } = payload; const i18nService = ctx.i18nService; return i18nService.translate('test.cat_name', { lang: ctx.i18nLang, args: { name: catAdded }, }); }, }), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0) ], CatResolver.prototype, "catAdded", null); tslib_1.__decorate([ (0, graphql_1.Mutation)('validation'), (0, common_1.UseFilters)(new i18n_validation_exception_filter_1.I18nValidationExceptionFilter()), tslib_1.__param(0, (0, graphql_1.Args)('createCatInput')), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [cat_input_1.CreateCatInput]), tslib_1.__metadata("design:returntype", void 0) ], CatResolver.prototype, "validation", null); exports.CatResolver = CatResolver = tslib_1.__decorate([ (0, graphql_1.Resolver)('Cat'), tslib_1.__param(1, (0, common_1.Inject)('PUB_SUB')), tslib_1.__metadata("design:paramtypes", [cat_service_1.CatService, graphql_subscriptions_1.PubSub]) ], CatResolver); //# sourceMappingURL=cat.resolver.js.map