@unchainedshop/core-currencies 3.0.0-alpha2 → 3.0.0-alpha4

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,2 +1,3 @@
1
- export { configureCurrenciesModule } from './module/configureCurrenciesModule.js';
1
+ export * from './module/configureCurrenciesModule.js';
2
+ export * from './types.js';
2
3
  //# sourceMappingURL=currencies-index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"currencies-index.d.ts","sourceRoot":"","sources":["../src/currencies-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"currencies-index.d.ts","sourceRoot":"","sources":["../src/currencies-index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,YAAY,CAAC"}
@@ -1,2 +1,3 @@
1
- export { configureCurrenciesModule } from './module/configureCurrenciesModule.js';
1
+ export * from './module/configureCurrenciesModule.js';
2
+ export * from './types.js';
2
3
  //# sourceMappingURL=currencies-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currencies-index.js","sourceRoot":"","sources":["../src/currencies-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"currencies-index.js","sourceRoot":"","sources":["../src/currencies-index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,YAAY,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { mongodb } from '@unchainedshop/mongodb';
2
- import { Currency } from '@unchainedshop/types/currencies.js';
2
+ import { Currency } from '@unchainedshop/core-currencies';
3
3
  export declare const CurrenciesCollection: (db: mongodb.Db) => Promise<mongodb.Collection<Currency>>;
4
4
  //# sourceMappingURL=CurrenciesCollection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CurrenciesCollection.d.ts","sourceRoot":"","sources":["../../src/db/CurrenciesCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,eAAO,MAAM,oBAAoB,OAAc,OAAO,CAAC,EAAE,0CAuBxD,CAAC"}
1
+ {"version":3,"file":"CurrenciesCollection.d.ts","sourceRoot":"","sources":["../../src/db/CurrenciesCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,eAAO,MAAM,oBAAoB,OAAc,OAAO,CAAC,EAAE,0CAuBxD,CAAC"}
@@ -1,5 +1,24 @@
1
- import { ModuleInput } from '@unchainedshop/types/core.js';
2
- import { CurrenciesModule, CurrencyQuery } from '@unchainedshop/types/currencies.js';
1
+ import { Currency, CurrencyQuery } from '../types.js';
2
+ import { ModuleInput } from '@unchainedshop/mongodb';
3
+ import { SortOption } from '@unchainedshop/utils';
4
+ export type CurrenciesModule = {
5
+ findCurrency: (params: {
6
+ currencyId?: string;
7
+ isoCode?: string;
8
+ }) => Promise<Currency>;
9
+ findCurrencies: (params: CurrencyQuery & {
10
+ limit?: number;
11
+ offset?: number;
12
+ sort?: Array<SortOption>;
13
+ }) => Promise<Array<Currency>>;
14
+ count: (query: CurrencyQuery) => Promise<number>;
15
+ currencyExists: (params: {
16
+ currencyId: string;
17
+ }) => Promise<boolean>;
18
+ update: (_id: string, doc: Currency) => Promise<string>;
19
+ delete: (_id: string) => Promise<number>;
20
+ create: (doc: Currency) => Promise<string | null>;
21
+ };
3
22
  export declare const buildFindSelector: ({ includeInactive, contractAddress, queryString, }: CurrencyQuery) => {
4
23
  isActive?: true;
5
24
  deleted: null;
@@ -1 +1 @@
1
- {"version":3,"file":"configureCurrenciesModule.d.ts","sourceRoot":"","sources":["../../src/module/configureCurrenciesModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAY,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAS/F,eAAO,MAAM,iBAAiB,uDAI3B,aAAa;eACe,IAAI;aAAW,IAAI;sBAAoB,MAAM;YAAU,GAAG;CAOxF,CAAC;AAEF,eAAO,MAAM,yBAAyB,YAEnC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAG,OAAO,CAAC,gBAAgB,CAsE/D,CAAC"}
1
+ {"version":3,"file":"configureCurrenciesModule.d.ts","sourceRoot":"","sources":["../../src/module/configureCurrenciesModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAIL,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAiB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,CAAC,MAAM,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvF,cAAc,EAAE,CACd,MAAM,EAAE,aAAa,GAAG;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;KAC1B,KACE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,uDAI3B,aAAa;eACe,IAAI;aAAW,IAAI;sBAAoB,MAAM;YAAU,GAAG;CAOxF,CAAC;AAEF,eAAO,MAAM,yBAAyB,YAEnC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAG,OAAO,CAAC,gBAAgB,CAyE/D,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { emit, registerEvents } from '@unchainedshop/events';
2
- import { generateDbMutations, generateDbFilterById, buildSortOptions } from '@unchainedshop/mongodb';
3
- import { SortDirection } from '@unchainedshop/types/api.js';
2
+ import { generateDbFilterById, buildSortOptions, generateDbObjectId, } from '@unchainedshop/mongodb';
3
+ import { SortDirection } from '@unchainedshop/utils';
4
4
  import { CurrenciesCollection } from '../db/CurrenciesCollection.js';
5
- import { CurrenciesSchema } from '../db/CurrenciesSchema.js';
6
5
  const CURRENCY_EVENTS = ['CURRENCY_CREATE', 'CURRENCY_UPDATE', 'CURRENCY_REMOVE'];
7
6
  export const buildFindSelector = ({ includeInactive = false, contractAddress, queryString, }) => {
8
7
  const selector = {
@@ -19,7 +18,6 @@ export const buildFindSelector = ({ includeInactive = false, contractAddress, qu
19
18
  export const configureCurrenciesModule = async ({ db, }) => {
20
19
  registerEvents(CURRENCY_EVENTS);
21
20
  const Currencies = await CurrenciesCollection(db);
22
- const mutations = generateDbMutations(Currencies, CurrenciesSchema);
23
21
  return {
24
22
  findCurrency: async ({ currencyId, isoCode }) => {
25
23
  return Currencies.findOne(currencyId ? generateDbFilterById(currencyId) : { isoCode });
@@ -45,7 +43,9 @@ export const configureCurrenciesModule = async ({ db, }) => {
45
43
  },
46
44
  create: async (doc) => {
47
45
  await Currencies.deleteOne({ isoCode: doc.isoCode.toUpperCase(), deleted: { $ne: null } });
48
- const currencyId = await mutations.create({
46
+ const { insertedId: currencyId } = await Currencies.insertOne({
47
+ _id: generateDbObjectId(),
48
+ created: new Date(),
49
49
  ...doc,
50
50
  isoCode: doc.isoCode.toUpperCase(),
51
51
  isActive: true,
@@ -53,22 +53,26 @@ export const configureCurrenciesModule = async ({ db, }) => {
53
53
  await emit('CURRENCY_CREATE', { currencyId });
54
54
  return currencyId;
55
55
  },
56
- update: async (_id, doc) => {
57
- const currencyId = await mutations.update(_id, {
58
- ...doc,
59
- isoCode: doc.isoCode.toUpperCase(),
56
+ update: async (currencyId, doc) => {
57
+ await Currencies.updateOne(generateDbFilterById(currencyId), {
58
+ $set: {
59
+ updated: new Date(),
60
+ ...doc,
61
+ isoCode: doc.isoCode.toUpperCase(),
62
+ },
60
63
  });
61
64
  await emit('CURRENCY_UPDATE', { currencyId });
62
65
  return currencyId;
63
66
  },
64
67
  delete: async (currencyId) => {
65
- const deletedCount = await mutations.delete(currencyId);
68
+ const { modifiedCount: deletedCount } = await Currencies.updateOne(generateDbFilterById(currencyId), {
69
+ $set: {
70
+ deleted: new Date(),
71
+ },
72
+ });
66
73
  await emit('CURRENCY_REMOVE', { currencyId });
67
74
  return deletedCount;
68
75
  },
69
- deletePermanently: async (_id) => {
70
- return mutations.deletePermanently(_id);
71
- },
72
76
  };
73
77
  };
74
78
  //# sourceMappingURL=configureCurrenciesModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureCurrenciesModule.js","sourceRoot":"","sources":["../../src/module/configureCurrenciesModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureCurrenciesModule.js","sourceRoot":"","sources":["../../src/module/configureCurrenciesModule.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import type { TimestampFields } from '@unchainedshop/mongodb';
2
+ export type Currency = {
3
+ _id?: string;
4
+ isoCode: string;
5
+ isActive: boolean;
6
+ contractAddress?: string;
7
+ decimals?: number;
8
+ } & TimestampFields;
9
+ export type CurrencyQuery = {
10
+ includeInactive?: boolean;
11
+ contractAddress?: string;
12
+ queryString?: string;
13
+ };
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,eAAe,CAAC;AAEpB,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
package/lib/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-currencies",
3
- "version": "3.0.0-alpha2",
3
+ "version": "3.0.0-alpha4",
4
4
  "main": "lib/currencies-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/currencies-index.js",
@@ -31,15 +31,13 @@
31
31
  },
32
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
33
  "dependencies": {
34
- "@unchainedshop/events": "^3.0.0-alpha2",
35
- "@unchainedshop/utils": "^3.0.0-alpha2",
36
- "simpl-schema": "^3.4.6"
34
+ "@unchainedshop/events": "^3.0.0-alpha4",
35
+ "@unchainedshop/utils": "^3.0.0-alpha4"
37
36
  },
38
37
  "devDependencies": {
39
- "@types/node": "^20.14.12",
40
- "@unchainedshop/types": "^3.0.0-alpha2",
38
+ "@types/node": "^22.7.8",
41
39
  "jest": "^29.7.0",
42
- "ts-jest": "^29.2.3",
43
- "typescript": "^5.5.4"
40
+ "ts-jest": "^29.2.5",
41
+ "typescript": "^5.6.3"
44
42
  }
45
43
  }
@@ -1 +1,2 @@
1
- export { configureCurrenciesModule } from './module/configureCurrenciesModule.js';
1
+ export * from './module/configureCurrenciesModule.js';
2
+ export * from './types.js';
@@ -1,5 +1,5 @@
1
1
  import { mongodb, buildDbIndexes } from '@unchainedshop/mongodb';
2
- import { Currency } from '@unchainedshop/types/currencies.js';
2
+ import { Currency } from '@unchainedshop/core-currencies';
3
3
 
4
4
  export const CurrenciesCollection = async (db: mongodb.Db) => {
5
5
  const Currencies = db.collection<Currency>('currencies');
@@ -1,27 +1,35 @@
1
- import { buildFindSelector } from "./configureCurrenciesModule.js";
1
+ import { buildFindSelector } from './configureCurrenciesModule.js';
2
2
 
3
3
  describe('buildFindSelector', () => {
4
-
5
- it('should return correct filter object', async () => {
6
-
7
- expect(buildFindSelector({contractAddress: '0xf12EC0F79a8855d093DeCe22b24c0603f5b8E34A', includeInactive: true, queryString: 'hello world'})).toEqual({
4
+ it('should return correct filter object', () => {
5
+ expect(
6
+ buildFindSelector({
7
+ contractAddress: '0xf12EC0F79a8855d093DeCe22b24c0603f5b8E34A',
8
+ includeInactive: true,
9
+ queryString: 'hello world',
10
+ }),
11
+ ).toEqual({
8
12
  deleted: null,
9
13
  contractAddress: '0xf12EC0F79a8855d093DeCe22b24c0603f5b8E34A',
10
- '$text': { '$search': 'hello world' }
11
- })
12
- expect(buildFindSelector({contractAddress: '0xf12EC0F79a8855d093DeCe22b24c0603f5b8E34A', includeInactive: true})).toEqual({
14
+ $text: { $search: 'hello world' },
15
+ });
16
+ expect(
17
+ buildFindSelector({
18
+ contractAddress: '0xf12EC0F79a8855d093DeCe22b24c0603f5b8E34A',
19
+ includeInactive: true,
20
+ }),
21
+ ).toEqual({
13
22
  deleted: null,
14
23
  contractAddress: '0xf12EC0F79a8855d093DeCe22b24c0603f5b8E34A',
15
- })
16
- expect(buildFindSelector({includeInactive: true, queryString: 'hello world'})).toEqual({
24
+ });
25
+ expect(buildFindSelector({ includeInactive: true, queryString: 'hello world' })).toEqual({
17
26
  deleted: null,
18
- '$text': { '$search': 'hello world' }
19
- })
20
- expect(buildFindSelector({ queryString: 'hello world'})).toEqual({
27
+ $text: { $search: 'hello world' },
28
+ });
29
+ expect(buildFindSelector({ queryString: 'hello world' })).toEqual({
21
30
  deleted: null,
22
31
  isActive: true,
23
- '$text': { '$search': 'hello world' }
24
- })
32
+ $text: { $search: 'hello world' },
33
+ });
25
34
  });
26
-
27
35
  });
@@ -1,13 +1,32 @@
1
- import { ModuleInput, ModuleMutations } from '@unchainedshop/types/core.js';
2
- import { CurrenciesModule, Currency, CurrencyQuery } from '@unchainedshop/types/currencies.js';
1
+ import { Currency, CurrencyQuery } from '../types.js';
3
2
  import { emit, registerEvents } from '@unchainedshop/events';
4
- import { generateDbMutations, generateDbFilterById, buildSortOptions } from '@unchainedshop/mongodb';
5
- import { SortDirection, SortOption } from '@unchainedshop/types/api.js';
3
+ import {
4
+ generateDbFilterById,
5
+ buildSortOptions,
6
+ generateDbObjectId,
7
+ ModuleInput,
8
+ } from '@unchainedshop/mongodb';
9
+ import { SortDirection, SortOption } from '@unchainedshop/utils';
6
10
  import { CurrenciesCollection } from '../db/CurrenciesCollection.js';
7
- import { CurrenciesSchema } from '../db/CurrenciesSchema.js';
8
11
 
9
12
  const CURRENCY_EVENTS: string[] = ['CURRENCY_CREATE', 'CURRENCY_UPDATE', 'CURRENCY_REMOVE'];
10
13
 
14
+ export type CurrenciesModule = {
15
+ findCurrency: (params: { currencyId?: string; isoCode?: string }) => Promise<Currency>;
16
+ findCurrencies: (
17
+ params: CurrencyQuery & {
18
+ limit?: number;
19
+ offset?: number;
20
+ sort?: Array<SortOption>;
21
+ },
22
+ ) => Promise<Array<Currency>>;
23
+ count: (query: CurrencyQuery) => Promise<number>;
24
+ currencyExists: (params: { currencyId: string }) => Promise<boolean>;
25
+ update: (_id: string, doc: Currency) => Promise<string>;
26
+ delete: (_id: string) => Promise<number>;
27
+ create: (doc: Currency) => Promise<string | null>;
28
+ };
29
+
11
30
  export const buildFindSelector = ({
12
31
  includeInactive = false,
13
32
  contractAddress,
@@ -29,11 +48,6 @@ export const configureCurrenciesModule = async ({
29
48
 
30
49
  const Currencies = await CurrenciesCollection(db);
31
50
 
32
- const mutations = generateDbMutations<Currency>(
33
- Currencies,
34
- CurrenciesSchema,
35
- ) as ModuleMutations<Currency>;
36
-
37
51
  return {
38
52
  findCurrency: async ({ currencyId, isoCode }) => {
39
53
  return Currencies.findOne(currencyId ? generateDbFilterById(currencyId) : { isoCode });
@@ -66,7 +80,9 @@ export const configureCurrenciesModule = async ({
66
80
 
67
81
  create: async (doc: Currency) => {
68
82
  await Currencies.deleteOne({ isoCode: doc.isoCode.toUpperCase(), deleted: { $ne: null } });
69
- const currencyId = await mutations.create({
83
+ const { insertedId: currencyId } = await Currencies.insertOne({
84
+ _id: generateDbObjectId(),
85
+ created: new Date(),
70
86
  ...doc,
71
87
  isoCode: doc.isoCode.toUpperCase(),
72
88
  isActive: true,
@@ -75,23 +91,29 @@ export const configureCurrenciesModule = async ({
75
91
  return currencyId;
76
92
  },
77
93
 
78
- update: async (_id: string, doc: Partial<Currency>) => {
79
- const currencyId = await mutations.update(_id, {
80
- ...doc,
81
- isoCode: doc.isoCode.toUpperCase(),
94
+ update: async (currencyId: string, doc: Partial<Currency>) => {
95
+ await Currencies.updateOne(generateDbFilterById(currencyId), {
96
+ $set: {
97
+ updated: new Date(),
98
+ ...doc,
99
+ isoCode: doc.isoCode.toUpperCase(),
100
+ },
82
101
  });
83
102
  await emit('CURRENCY_UPDATE', { currencyId });
84
103
  return currencyId;
85
104
  },
86
105
 
87
106
  delete: async (currencyId) => {
88
- const deletedCount = await mutations.delete(currencyId);
107
+ const { modifiedCount: deletedCount } = await Currencies.updateOne(
108
+ generateDbFilterById(currencyId),
109
+ {
110
+ $set: {
111
+ deleted: new Date(),
112
+ },
113
+ },
114
+ );
89
115
  await emit('CURRENCY_REMOVE', { currencyId });
90
116
  return deletedCount;
91
117
  },
92
-
93
- deletePermanently: async (_id) => {
94
- return mutations.deletePermanently(_id);
95
- },
96
118
  };
97
119
  };
package/src/types.ts ADDED
@@ -0,0 +1,15 @@
1
+ import type { TimestampFields } from '@unchainedshop/mongodb';
2
+
3
+ export type Currency = {
4
+ _id?: string;
5
+ isoCode: string;
6
+ isActive: boolean;
7
+ contractAddress?: string;
8
+ decimals?: number;
9
+ } & TimestampFields;
10
+
11
+ export type CurrencyQuery = {
12
+ includeInactive?: boolean;
13
+ contractAddress?: string;
14
+ queryString?: string;
15
+ };
@@ -1,3 +0,0 @@
1
- import SimpleSchema from 'simpl-schema';
2
- export declare const CurrenciesSchema: SimpleSchema;
3
- //# sourceMappingURL=CurrenciesSchema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CurrenciesSchema.d.ts","sourceRoot":"","sources":["../../src/db/CurrenciesSchema.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,eAAO,MAAM,gBAAgB,cAS5B,CAAC"}
@@ -1,10 +0,0 @@
1
- import { Schemas } from '@unchainedshop/utils';
2
- import SimpleSchema from 'simpl-schema';
3
- export const CurrenciesSchema = new SimpleSchema({
4
- isoCode: { type: String, required: true },
5
- isActive: Boolean,
6
- contractAddress: { type: String, required: false },
7
- decimals: { type: Number, required: false },
8
- ...Schemas.timestampFields,
9
- }, { requiredByDefault: false });
10
- //# sourceMappingURL=CurrenciesSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CurrenciesSchema.js","sourceRoot":"","sources":["../../src/db/CurrenciesSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,YAAY,CAC9C;IACE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,QAAQ,EAAE,OAAO;IACjB,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAClD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC3C,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC"}
@@ -1,13 +0,0 @@
1
- import { Schemas } from '@unchainedshop/utils';
2
- import SimpleSchema from 'simpl-schema';
3
-
4
- export const CurrenciesSchema = new SimpleSchema(
5
- {
6
- isoCode: { type: String, required: true },
7
- isActive: Boolean,
8
- contractAddress: { type: String, required: false },
9
- decimals: { type: Number, required: false },
10
- ...Schemas.timestampFields,
11
- },
12
- { requiredByDefault: false },
13
- );