mongoose-currency-convert 0.1.3 → 0.1.4
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/README.md +3 -3
- package/dist/index.cjs +110 -15
- package/dist/index.d.ts +10 -1
- package/dist/{plugin.cjs → index.js} +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/utils/cache.cjs +37 -0
- package/package.json +6 -6
- package/dist/plugin.d.ts +0 -10
- package/dist/plugin.js.map +0 -1
- /package/dist/{types.cjs → types.js} +0 -0
package/README.md
CHANGED
|
@@ -108,9 +108,9 @@ You can use the built-in in-memory cache (`SimpleCache` in `src/utils/cache.ts`)
|
|
|
108
108
|
|
|
109
109
|
### Using the Internal SimpleCache
|
|
110
110
|
```ts
|
|
111
|
-
import { SimpleCache } from 'mongoose-currency-convert';
|
|
111
|
+
import { SimpleCache } from 'mongoose-currency-convert/cache';
|
|
112
112
|
|
|
113
|
-
const cache = new SimpleCache();
|
|
113
|
+
const cache = new SimpleCache<number>();
|
|
114
114
|
|
|
115
115
|
ProductSchema.plugin(currencyConversionPlugin, {
|
|
116
116
|
fields: [/* ... */],
|
|
@@ -124,7 +124,7 @@ You can implement the `CurrencyRateCache` interface to use any external service:
|
|
|
124
124
|
|
|
125
125
|
```ts
|
|
126
126
|
import { createClient } from 'redis';
|
|
127
|
-
import type { CurrencyRateCache } from 'mongoose-currency-convert';
|
|
127
|
+
import type { CurrencyRateCache } from 'mongoose-currency-convert/types';
|
|
128
128
|
|
|
129
129
|
class RedisCache implements CurrencyRateCache<number> {
|
|
130
130
|
private client = createClient({ url: 'redis://localhost:6379' });
|
package/dist/index.cjs
CHANGED
|
@@ -1,18 +1,113 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
3
|
+
exports.currencyConversionPlugin = currencyConversionPlugin;
|
|
4
|
+
const helpers_1 = require("./utils/helpers");
|
|
5
|
+
function currencyConversionPlugin(schema, options) {
|
|
6
|
+
const { fields, getRate, round = helpers_1.defaultRound, allowedCurrencyCodes, onError, fallbackRate, rollbackOnError, cache, dateTransform, } = options;
|
|
7
|
+
if (!fields || !Array.isArray(fields) || fields.length === 0) {
|
|
8
|
+
throw new Error('[mongoose-currency-convert] option "fields" must be a non-empty array');
|
|
9
|
+
}
|
|
10
|
+
if (typeof getRate !== "function") {
|
|
11
|
+
throw new Error('[mongoose-currency-convert] option "getRate" must be a function');
|
|
12
|
+
}
|
|
13
|
+
async function applyCurrencyConversion(doc) {
|
|
14
|
+
const convertedFields = [];
|
|
15
|
+
for (const field of fields) {
|
|
16
|
+
const { sourcePath, currencyPath, datePath, targetPath, toCurrency } = field;
|
|
17
|
+
const amount = (0, helpers_1.getNestedValue)(doc, sourcePath);
|
|
18
|
+
const fromCurrency = (0, helpers_1.getNestedValue)(doc, currencyPath);
|
|
19
|
+
if (amount == null || typeof fromCurrency !== "string" || !fromCurrency)
|
|
20
|
+
continue;
|
|
21
|
+
if (!(0, helpers_1.isValidCurrencyCode)(fromCurrency, allowedCurrencyCodes)) {
|
|
22
|
+
console.warn(`[mongoose-currency-convert] Invalid source currency code: ${fromCurrency}`);
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (!(0, helpers_1.isValidCurrencyCode)(toCurrency, allowedCurrencyCodes)) {
|
|
26
|
+
console.warn(`[mongoose-currency-convert] Invalid target currency code: ${toCurrency}`);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const dateValue = datePath ? (0, helpers_1.getNestedValue)(doc, datePath) : undefined;
|
|
30
|
+
let conversionDate = dateValue &&
|
|
31
|
+
(typeof dateValue === "string" ||
|
|
32
|
+
typeof dateValue === "number" ||
|
|
33
|
+
dateValue instanceof Date)
|
|
34
|
+
? new Date(dateValue)
|
|
35
|
+
: new Date();
|
|
36
|
+
if (dateTransform)
|
|
37
|
+
conversionDate = dateTransform(conversionDate);
|
|
38
|
+
let rate;
|
|
39
|
+
const cacheKey = `${fromCurrency}_${toCurrency}_${conversionDate.toISOString().slice(0, 10)}`;
|
|
40
|
+
try {
|
|
41
|
+
if (cache)
|
|
42
|
+
rate = await cache.get(cacheKey);
|
|
43
|
+
if (rate === undefined) {
|
|
44
|
+
rate = await getRate(fromCurrency, toCurrency, conversionDate);
|
|
45
|
+
if (cache && rate !== undefined && !Number.isNaN(rate)) {
|
|
46
|
+
await cache.set(cacheKey, rate);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (!rate || Number.isNaN(rate)) {
|
|
50
|
+
if (typeof fallbackRate === "number") {
|
|
51
|
+
rate = fallbackRate;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
throw new Error("Invalid rate");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const convertedValue = {
|
|
58
|
+
amount: round(Number(amount) * rate),
|
|
59
|
+
currency: toCurrency,
|
|
60
|
+
date: conversionDate,
|
|
61
|
+
};
|
|
62
|
+
(0, helpers_1.setNestedValue)(doc, targetPath, convertedValue);
|
|
63
|
+
convertedFields.push(targetPath);
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
if (onError) {
|
|
67
|
+
onError({
|
|
68
|
+
field: sourcePath,
|
|
69
|
+
fromCurrency: fromCurrency,
|
|
70
|
+
toCurrency,
|
|
71
|
+
date: conversionDate,
|
|
72
|
+
error: err,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
console.error(`[mongoose-currency-convert] Error converting ${sourcePath}:`, err);
|
|
77
|
+
}
|
|
78
|
+
if (rollbackOnError) {
|
|
79
|
+
for (const path of convertedFields) {
|
|
80
|
+
(0, helpers_1.setNestedValue)(doc, path, undefined);
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
schema.pre("save", async function () {
|
|
88
|
+
const doc = this.toObject({ depopulate: true });
|
|
89
|
+
await applyCurrencyConversion(doc);
|
|
90
|
+
Object.assign(this, doc);
|
|
91
|
+
});
|
|
92
|
+
async function handleUpdateMiddleware(next) {
|
|
93
|
+
const update = this.getUpdate();
|
|
94
|
+
if (!update)
|
|
95
|
+
return next();
|
|
96
|
+
const updateAny = update;
|
|
97
|
+
let doc;
|
|
98
|
+
if (typeof updateAny.$set === "object" && updateAny.$set !== null) {
|
|
99
|
+
doc = { ...updateAny.$set };
|
|
100
|
+
await applyCurrencyConversion(doc);
|
|
101
|
+
updateAny.$set = doc;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
doc = { ...updateAny };
|
|
105
|
+
await applyCurrencyConversion(doc);
|
|
106
|
+
Object.assign(updateAny, doc);
|
|
107
|
+
}
|
|
108
|
+
next();
|
|
109
|
+
}
|
|
110
|
+
schema.pre("findOneAndUpdate", handleUpdateMiddleware);
|
|
111
|
+
schema.pre("updateOne", handleUpdateMiddleware);
|
|
112
|
+
}
|
|
18
113
|
//# sourceMappingURL=index.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Schema } from "mongoose";
|
|
2
|
+
import type { CurrencyPluginErrorContext, CurrencyPluginOptions, CurrencyRateCache } from "./types";
|
|
3
|
+
export declare function currencyConversionPlugin(schema: Schema, options: CurrencyPluginOptions & {
|
|
4
|
+
allowedCurrencyCodes?: string[];
|
|
5
|
+
onError?: (ctx: CurrencyPluginErrorContext) => void;
|
|
6
|
+
fallbackRate?: number;
|
|
7
|
+
rollbackOnError?: boolean;
|
|
8
|
+
cache?: CurrencyRateCache<number>;
|
|
9
|
+
dateTransform?: (date: Date) => Date;
|
|
10
|
+
}): void;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface CurrencyPluginOptions {
|
|
|
9
9
|
fields: CurrencyFieldConfig[];
|
|
10
10
|
getRate: (from: string, to: string, date?: Date) => Promise<number>;
|
|
11
11
|
round?: (value: number) => number;
|
|
12
|
+
cache?: CurrencyRateCache<number>;
|
|
12
13
|
}
|
|
13
14
|
export interface CurrencyPluginErrorContext {
|
|
14
15
|
field: string;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleCache = void 0;
|
|
4
|
+
class SimpleCache {
|
|
5
|
+
store = new Map();
|
|
6
|
+
ttl;
|
|
7
|
+
constructor(ttlMinutes = 60) {
|
|
8
|
+
this.ttl = ttlMinutes * 60 * 1000;
|
|
9
|
+
}
|
|
10
|
+
isExpired(entry) {
|
|
11
|
+
return Date.now() > entry.expiresAt;
|
|
12
|
+
}
|
|
13
|
+
get(key) {
|
|
14
|
+
const entry = this.store.get(key);
|
|
15
|
+
if (!entry)
|
|
16
|
+
return undefined;
|
|
17
|
+
if (this.isExpired(entry)) {
|
|
18
|
+
this.store.delete(key);
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
return entry.value;
|
|
22
|
+
}
|
|
23
|
+
set(key, value) {
|
|
24
|
+
this.store.set(key, {
|
|
25
|
+
value,
|
|
26
|
+
expiresAt: Date.now() + this.ttl,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
delete(key) {
|
|
30
|
+
this.store.delete(key);
|
|
31
|
+
}
|
|
32
|
+
clear() {
|
|
33
|
+
this.store.clear();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.SimpleCache = SimpleCache;
|
|
37
|
+
//# sourceMappingURL=cache.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mongoose-currency-convert",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "A lightweight Mongoose plugin for automatic currency conversion at save time - flexible, extensible, and service-agnostic.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mongoose",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"require": "./dist/index.cjs",
|
|
32
32
|
"types": "./dist/index.d.ts"
|
|
33
33
|
},
|
|
34
|
-
"./
|
|
35
|
-
"import": "./dist/utils/
|
|
36
|
-
"require": "./dist/utils/
|
|
37
|
-
"types": "./dist/utils/
|
|
34
|
+
"./cache": {
|
|
35
|
+
"import": "./dist/utils/cache.js",
|
|
36
|
+
"require": "./dist/utils/cache.cjs",
|
|
37
|
+
"types": "./dist/utils/cache.d.ts"
|
|
38
38
|
},
|
|
39
39
|
"./types": {
|
|
40
40
|
"import": "./dist/types.d.ts",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
],
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build:esm": "tsc -p tsconfig.json",
|
|
49
|
-
"build:cjs": "tsc -p tsconfig.cjs.json --outDir dist --declaration false &&
|
|
49
|
+
"build:cjs": "tsc -p tsconfig.cjs.json --outDir dist --declaration false && if [ -f dist/index.js ]; then cp dist/index.js dist/index.cjs; fi && if [ -f dist/utils/cache.js ]; then cp dist/utils/cache.js dist/utils/cache.cjs; fi",
|
|
50
50
|
"build": "pnpm build:esm && pnpm build:cjs",
|
|
51
51
|
"clean": "rm -rf dist",
|
|
52
52
|
"prepare": "husky",
|
package/dist/plugin.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Schema } from "mongoose";
|
|
2
|
-
import type { CurrencyPluginErrorContext, CurrencyPluginOptions, CurrencyRateCache } from "./types";
|
|
3
|
-
export declare function currencyConversionPlugin(schema: Schema, options: CurrencyPluginOptions & {
|
|
4
|
-
allowedCurrencyCodes?: string[];
|
|
5
|
-
onError?: (ctx: CurrencyPluginErrorContext) => void;
|
|
6
|
-
fallbackRate?: number;
|
|
7
|
-
rollbackOnError?: boolean;
|
|
8
|
-
cache?: CurrencyRateCache<number>;
|
|
9
|
-
dateTransform?: (date: Date) => Date;
|
|
10
|
-
}): void;
|
package/dist/plugin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|