@things-factory/i18n-base 10.1.244 → 10.1.245

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,11 @@
1
- import { Domain, ListParam } from '@things-factory/shell';
1
+ import { Domain, ListParam, ListValueCount } from '@things-factory/shell';
2
2
  import { User } from '@things-factory/auth-base';
3
3
  import { Terminology } from './terminology';
4
4
  import { TerminologyList } from './terminology-type';
5
5
  export declare class TerminologyQuery {
6
6
  terminology(id: string, context: any): Promise<Terminology>;
7
7
  terminologies(params: ListParam, context: any): Promise<TerminologyList>;
8
+ terminologyLocaleCounts(params: ListParam, context: any): Promise<ListValueCount[]>;
8
9
  domain(terminology: Terminology): Promise<Domain>;
9
10
  updater(terminology: Terminology): Promise<User>;
10
11
  creator(terminology: Terminology): Promise<User>;
@@ -7,6 +7,8 @@ const shell_1 = require("@things-factory/shell");
7
7
  const auth_base_1 = require("@things-factory/auth-base");
8
8
  const terminology_1 = require("./terminology");
9
9
  const terminology_type_1 = require("./terminology-type");
10
+ /** What the terminology list finds terms by, and its locale counts alike. */
11
+ const TERM_SEARCHABLES = ['name', 'category', 'display'];
10
12
  let TerminologyQuery = class TerminologyQuery {
11
13
  async terminology(id, context) {
12
14
  const { domain } = context.state;
@@ -20,11 +22,15 @@ let TerminologyQuery = class TerminologyQuery {
20
22
  domain,
21
23
  params,
22
24
  repository: await (0, shell_1.getRepository)(terminology_1.Terminology),
23
- searchables: ['name', 'category', 'display']
25
+ searchables: TERM_SEARCHABLES
24
26
  });
25
27
  const [items, total] = await queryBuilder.getManyAndCount();
26
28
  return { items, total };
27
29
  }
30
+ async terminologyLocaleCounts(params, context) {
31
+ const counted = await (0, shell_1.countListByField)({ domain: context.state.domain, params, repository: (0, shell_1.getRepository)(terminology_1.Terminology), searchables: TERM_SEARCHABLES, field: 'locale' });
32
+ return [...counted].map(([value, count]) => ({ value, count }));
33
+ }
28
34
  async domain(terminology) {
29
35
  return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: terminology.domainId });
30
36
  }
@@ -52,6 +58,14 @@ tslib_1.__decorate([
52
58
  tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
53
59
  tslib_1.__metadata("design:returntype", Promise)
54
60
  ], TerminologyQuery.prototype, "terminologies", null);
61
+ tslib_1.__decorate([
62
+ (0, type_graphql_1.Query)(returns => [shell_1.ListValueCount], { description: 'How many terminologies each locale holds, under the list conditions other than the locale' }),
63
+ tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
64
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
65
+ tslib_1.__metadata("design:type", Function),
66
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
67
+ tslib_1.__metadata("design:returntype", Promise)
68
+ ], TerminologyQuery.prototype, "terminologyLocaleCounts", null);
55
69
  tslib_1.__decorate([
56
70
  (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
57
71
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"terminology-query.js","sourceRoot":"","sources":["../../../server/service/terminology/terminology-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\nimport { Terminology } from './terminology'\nimport { TerminologyList } from './terminology-type'\n\n@Resolver(Terminology)\nexport class TerminologyQuery {\n @Query(returns => Terminology, { description: 'To fetch a Terminology' })\n async terminology(@Arg('id') id: string, @Ctx() context: any): Promise<Terminology> {\n const { domain } = context.state\n\n return await getRepository(Terminology).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => TerminologyList, { description: 'To fetch multiple Terminologies' })\n async terminologies(@Args(type => ListParam) params: ListParam, @Ctx() context: any): Promise<TerminologyList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Terminology),\n searchables: ['name', 'category', 'display']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() terminology: Terminology): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: terminology.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() terminology: Terminology): Promise<User> {\n return await getRepository(User).findOneBy({ id: terminology.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() terminology: Terminology): Promise<User> {\n return await getRepository(User).findOneBy({ id: terminology.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"terminology-query.js","sourceRoot":"","sources":["../../../server/service/terminology/terminology-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { countListByField, Domain, getQueryBuilderFromListParams, getRepository, ListParam, ListValueCount } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\nimport { Terminology } from './terminology'\nimport { TerminologyList } from './terminology-type'\n\n/** What the terminology list finds terms by, and its locale counts alike. */\nconst TERM_SEARCHABLES = ['name', 'category', 'display']\n\n@Resolver(Terminology)\nexport class TerminologyQuery {\n @Query(returns => Terminology, { description: 'To fetch a Terminology' })\n async terminology(@Arg('id') id: string, @Ctx() context: any): Promise<Terminology> {\n const { domain } = context.state\n\n return await getRepository(Terminology).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => TerminologyList, { description: 'To fetch multiple Terminologies' })\n async terminologies(@Args(type => ListParam) params: ListParam, @Ctx() context: any): Promise<TerminologyList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Terminology),\n searchables: TERM_SEARCHABLES\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => [ListValueCount], { description: 'How many terminologies each locale holds, under the list conditions other than the locale' })\n async terminologyLocaleCounts(@Args(type => ListParam) params: ListParam, @Ctx() context: any): Promise<ListValueCount[]> {\n const counted = await countListByField({ domain: context.state.domain, params, repository: getRepository(Terminology), searchables: TERM_SEARCHABLES, field: 'locale' })\n return [...counted].map(([value, count]) => ({ value, count }))\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() terminology: Terminology): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: terminology.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() terminology: Terminology): Promise<User> {\n return await getRepository(User).findOneBy({ id: terminology.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() terminology: Terminology): Promise<User> {\n return await getRepository(User).findOneBy({ id: terminology.creatorId })\n }\n}\n"]}