@unchainedshop/core-languages 2.0.0-beta8 → 2.0.0-beta9

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.
package/jest.config.js CHANGED
@@ -2,4 +2,13 @@
2
2
  export default {
3
3
  preset: 'ts-jest',
4
4
  testEnvironment: 'node',
5
+ extensionsToTreatAsEsm: ['.ts'],
6
+ transform: {
7
+ '^.+\\.tsx?$': [
8
+ 'ts-jest',
9
+ {
10
+ useESM: true,
11
+ },
12
+ ],
13
+ },
5
14
  };
@@ -3,7 +3,6 @@ import SimpleSchema from 'simpl-schema';
3
3
  export const LanguagesSchema = new SimpleSchema({
4
4
  isoCode: { type: String, required: true },
5
5
  isActive: Boolean,
6
- authorId: { type: String, required: true },
7
6
  ...Schemas.timestampFields,
8
7
  }, { requiredByDefault: false });
9
8
  //# sourceMappingURL=LanguagesSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LanguagesSchema.js","sourceRoot":"","sources":["../../src/db/LanguagesSchema.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,YAAY,CAC7C;IACE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC"}
1
+ {"version":3,"file":"LanguagesSchema.js","sourceRoot":"","sources":["../../src/db/LanguagesSchema.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,YAAY,CAC7C;IACE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,QAAQ,EAAE,OAAO;IACjB,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC"}
@@ -1,3 +1,8 @@
1
1
  import { ModuleInput } from '@unchainedshop/types/core';
2
- import { LanguagesModule } from '@unchainedshop/types/languages';
2
+ import { LanguagesModule, LanguageQuery } from '@unchainedshop/types/languages';
3
+ export declare const buildFindSelector: ({ includeInactive, queryString }: LanguageQuery) => {
4
+ isActive?: true;
5
+ deleted?: Date;
6
+ $text?: any;
7
+ };
3
8
  export declare const configureLanguagesModule: ({ db, }: ModuleInput<Record<string, never>>) => Promise<LanguagesModule>;
@@ -1,9 +1,10 @@
1
1
  import { emit, registerEvents } from '@unchainedshop/events';
2
2
  import { generateDbMutations, generateDbFilterById, systemLocale, buildSortOptions, } from '@unchainedshop/utils';
3
+ import { SortDirection } from '@unchainedshop/types/api';
3
4
  import { LanguagesCollection } from '../db/LanguagesCollection';
4
5
  import { LanguagesSchema } from '../db/LanguagesSchema';
5
6
  const LANGUAGE_EVENTS = ['LANGUAGE_CREATE', 'LANGUAGE_UPDATE', 'LANGUAGE_REMOVE'];
6
- const buildFindSelector = ({ includeInactive = false, queryString }) => {
7
+ export const buildFindSelector = ({ includeInactive = false, queryString }) => {
7
8
  const selector = { deleted: null };
8
9
  if (!includeInactive)
9
10
  selector.isActive = true;
@@ -21,10 +22,11 @@ export const configureLanguagesModule = async ({ db, }) => {
21
22
  return Languages.findOne(languageId ? generateDbFilterById(languageId) : { isoCode }, {});
22
23
  },
23
24
  findLanguages: async ({ limit, offset, sort, ...query }, options) => {
25
+ const defaultSort = [{ key: 'created', value: SortDirection.ASC }];
24
26
  return Languages.find(buildFindSelector(query), {
25
27
  skip: offset,
26
28
  limit,
27
- sort: buildSortOptions(sort),
29
+ sort: buildSortOptions(sort || defaultSort),
28
30
  ...options,
29
31
  }).toArray();
30
32
  },
@@ -38,29 +40,29 @@ export const configureLanguagesModule = async ({ db, }) => {
38
40
  });
39
41
  return !!languageCount;
40
42
  },
41
- isBase: (language) => {
43
+ isBase(language) {
42
44
  return language.isoCode === systemLocale.language;
43
45
  },
44
- create: async (doc, userId) => {
46
+ create: async (doc) => {
45
47
  await Languages.deleteOne({ isoCode: doc.isoCode.toLowerCase(), deleted: { $ne: null } });
46
48
  const languageId = await mutations.create({
47
49
  ...doc,
48
50
  isoCode: doc.isoCode.toLowerCase(),
49
51
  isActive: true,
50
- }, userId);
52
+ });
51
53
  await emit('LANGUAGE_CREATE', { languageId });
52
54
  return languageId;
53
55
  },
54
- update: async (languageId, doc, userId) => {
56
+ update: async (languageId, doc) => {
55
57
  await mutations.update(languageId, {
56
58
  ...doc,
57
59
  isoCode: doc.isoCode.toLowerCase(),
58
- }, userId);
60
+ });
59
61
  await emit('LANGUAGE_UPDATE', { languageId });
60
62
  return languageId;
61
63
  },
62
- delete: async (languageId, userId) => {
63
- const deletedCount = await mutations.delete(languageId, userId);
64
+ delete: async (languageId) => {
65
+ const deletedCount = await mutations.delete(languageId);
64
66
  await emit('LANGUAGE_REMOVE', { languageId });
65
67
  return deletedCount;
66
68
  },
@@ -1 +1 @@
1
- {"version":3,"file":"configureLanguagesModule.js","sourceRoot":"","sources":["../../src/module/configureLanguagesModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureLanguagesModule.js","sourceRoot":"","sources":["../../src/module/configureLanguagesModule.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-languages",
3
- "version": "2.0.0-beta8",
3
+ "version": "2.0.0-beta9",
4
4
  "main": "lib/languages-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/languages-index.js",
@@ -12,7 +12,8 @@
12
12
  "clean": "rm -rf lib",
13
13
  "build": "npm run clean && tsc",
14
14
  "watch": "tsc -w",
15
- "test": "jest --watch"
15
+ "test": "NODE_OPTIONS=--experimental-vm-modules jest --detectOpenHandles --forceExit",
16
+ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch --detectOpenHandles --forceExit"
16
17
  },
17
18
  "repository": {
18
19
  "type": "git",
@@ -30,15 +31,15 @@
30
31
  },
31
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
32
33
  "dependencies": {
33
- "@unchainedshop/events": "^2.0.0-beta8",
34
- "@unchainedshop/utils": "^2.0.0-beta8",
35
- "simpl-schema": "^3.0.1"
34
+ "@unchainedshop/events": "^2.0.0-beta9",
35
+ "@unchainedshop/utils": "^2.0.0-beta9",
36
+ "simpl-schema": "^3.2.0"
36
37
  },
37
38
  "devDependencies": {
38
- "@types/node": "^18.11.9",
39
- "@unchainedshop/types": "^2.0.0-beta8",
39
+ "@types/node": "^18.11.12",
40
+ "@unchainedshop/types": "^2.0.0-beta9",
40
41
  "jest": "^29.3.1",
41
42
  "ts-jest": "^29.0.3",
42
- "typescript": "^4.9.3"
43
+ "typescript": "^4.9.4"
43
44
  }
44
45
  }
@@ -5,7 +5,6 @@ export const LanguagesSchema = new SimpleSchema(
5
5
  {
6
6
  isoCode: { type: String, required: true },
7
7
  isActive: Boolean,
8
- authorId: { type: String, required: true },
9
8
  ...Schemas.timestampFields,
10
9
  },
11
10
  { requiredByDefault: false },
@@ -7,12 +7,13 @@ import {
7
7
  systemLocale,
8
8
  buildSortOptions,
9
9
  } from '@unchainedshop/utils';
10
+ import { SortDirection, SortOption } from '@unchainedshop/types/api';
10
11
  import { LanguagesCollection } from '../db/LanguagesCollection';
11
12
  import { LanguagesSchema } from '../db/LanguagesSchema';
12
13
 
13
14
  const LANGUAGE_EVENTS: string[] = ['LANGUAGE_CREATE', 'LANGUAGE_UPDATE', 'LANGUAGE_REMOVE'];
14
15
 
15
- const buildFindSelector = ({ includeInactive = false, queryString }: LanguageQuery) => {
16
+ export const buildFindSelector = ({ includeInactive = false, queryString }: LanguageQuery) => {
16
17
  const selector: { isActive?: true; deleted?: Date; $text?: any } = { deleted: null };
17
18
  if (!includeInactive) selector.isActive = true;
18
19
  if (queryString) {
@@ -39,10 +40,11 @@ export const configureLanguagesModule = async ({
39
40
  },
40
41
 
41
42
  findLanguages: async ({ limit, offset, sort, ...query }, options) => {
43
+ const defaultSort = [{ key: 'created', value: SortDirection.ASC }] as SortOption[];
42
44
  return Languages.find(buildFindSelector(query), {
43
45
  skip: offset,
44
46
  limit,
45
- sort: buildSortOptions(sort),
47
+ sort: buildSortOptions(sort || defaultSort),
46
48
  ...options,
47
49
  }).toArray();
48
50
  },
@@ -62,37 +64,30 @@ export const configureLanguagesModule = async ({
62
64
  return !!languageCount;
63
65
  },
64
66
 
65
- isBase: (language) => {
67
+ isBase(language) {
66
68
  return language.isoCode === systemLocale.language;
67
69
  },
68
70
 
69
- create: async (doc: Language, userId?: string) => {
71
+ create: async (doc: Language) => {
70
72
  await Languages.deleteOne({ isoCode: doc.isoCode.toLowerCase(), deleted: { $ne: null } });
71
- const languageId = await mutations.create(
72
- {
73
- ...doc,
74
- isoCode: doc.isoCode.toLowerCase(),
75
- isActive: true,
76
- },
77
- userId,
78
- );
73
+ const languageId = await mutations.create({
74
+ ...doc,
75
+ isoCode: doc.isoCode.toLowerCase(),
76
+ isActive: true,
77
+ });
79
78
  await emit('LANGUAGE_CREATE', { languageId });
80
79
  return languageId;
81
80
  },
82
- update: async (languageId, doc, userId) => {
83
- await mutations.update(
84
- languageId,
85
- {
86
- ...doc,
87
- isoCode: doc.isoCode.toLowerCase(),
88
- },
89
- userId,
90
- );
81
+ update: async (languageId, doc) => {
82
+ await mutations.update(languageId, {
83
+ ...doc,
84
+ isoCode: doc.isoCode.toLowerCase(),
85
+ });
91
86
  await emit('LANGUAGE_UPDATE', { languageId });
92
87
  return languageId;
93
88
  },
94
- delete: async (languageId, userId) => {
95
- const deletedCount = await mutations.delete(languageId, userId);
89
+ delete: async (languageId) => {
90
+ const deletedCount = await mutations.delete(languageId);
96
91
  await emit('LANGUAGE_REMOVE', { languageId });
97
92
  return deletedCount;
98
93
  },
@@ -1,47 +1,23 @@
1
- import { assert } from 'chai';
2
- import { initDb } from '@unchainedshop/mongodb';
3
- import { configureLanguagesModule } from '@unchainedshop/core-languages';
1
+ import { buildFindSelector } from "../src/module/configureLanguagesModule";
4
2
 
5
- describe('Test exports', () => {
6
- let module;
3
+ describe('Languages', () => {
4
+ describe('buildFindSelector', () => {
5
+ it('Return correct filter object when passed no argument', async () => {
6
+ expect(buildFindSelector({})).toEqual({ deleted: null, isActive: true })
7
+ });
7
8
 
8
- before(async () => {
9
- const db = await initDb();
10
- module = await configureLanguagesModule({ db });
11
- });
9
+ it('Return correct filter object includeInactive is set to true', async () => {
10
+ expect(buildFindSelector({includeInactive: true})).toEqual({ deleted: null })
11
+ });
12
12
 
13
- it('Check Bookmarks module', async () => {
14
- assert.ok(module);
15
- assert.isFunction(module.findLanguage);
16
- assert.isFunction(module.findLanguages);
17
- assert.isFunction(module.languageExists);
18
- assert.isFunction(module.create);
19
- assert.isFunction(module.update);
20
- assert.isFunction(module.delete);
21
- });
13
+ it('Return correct filter object when passed includeInactive, queryString', async () => {
14
+ expect(buildFindSelector({ includeInactive: true,queryString: "hello world"})).toEqual({ deleted: null, '$text': { '$search': 'hello world' } })
15
+ });
22
16
 
23
- it('Mutate language', async () => {
24
- const languageId = await module.create(
25
- {
26
- authorId: 'Test-User-1',
27
- isoCode: 'CHF',
28
- },
29
- 'Test-User-1'
30
- );
17
+ it('Return correct filter object when passed queryString', async () => {
18
+ expect(buildFindSelector({ queryString: "hello world"})).toEqual({ deleted: null, isActive: true, '$text': { '$search': 'hello world' } })
19
+ });
31
20
 
32
- assert.ok(languageId);
33
- const language = await module.findLanguage(languageId);
34
-
35
- assert.ok(language);
36
- assert.equal(language._id, languageId);
37
- assert.equal(language.isoCode, 'CHF');
38
- assert.equal(language.userId, 'Test-User-1');
39
- assert.isDefined(language.created);
40
- assert.isUndefined(language.updated);
41
- assert.isUndefined(language.updatedBy);
42
- assert.equal(language.createdBy, 'Test-User-1');
43
-
44
- const deletedCount = await module.delete(languageId);
45
- assert.equal(deletedCount, 1);
46
- });
21
+ })
22
+
47
23
  });