保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
const conversions = require('./conversions');
const route = require('./route');
 
const convert = {};
 
const models = Object.keys(conversions);
 
function wrapRaw(fn) {
    const wrappedFn = function (...args) {
        const arg0 = args[0];
        if (arg0 === undefined || arg0 === null) {
            return arg0;
        }
 
        if (arg0.length > 1) {
            args = arg0;
        }
 
        return fn(args);
    };
 
    // Preserve .conversion property if there is one
    if ('conversion' in fn) {
        wrappedFn.conversion = fn.conversion;
    }
 
    return wrappedFn;
}
 
function wrapRounded(fn) {
    const wrappedFn = function (...args) {
        const arg0 = args[0];
 
        if (arg0 === undefined || arg0 === null) {
            return arg0;
        }
 
        if (arg0.length > 1) {
            args = arg0;
        }
 
        const result = fn(args);
 
        // We're assuming the result is an array here.
        // see notice in conversions.js; don't use box types
        // in conversion functions.
        if (typeof result === 'object') {
            for (let len = result.length, i = 0; i < len; i++) {
                result[i] = Math.round(result[i]);
            }
        }
 
        return result;
    };
 
    // Preserve .conversion property if there is one
    if ('conversion' in fn) {
        wrappedFn.conversion = fn.conversion;
    }
 
    return wrappedFn;
}
 
models.forEach(fromModel => {
    convert[fromModel] = {};
 
    Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});
    Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});
 
    const routes = route(fromModel);
    const routeModels = Object.keys(routes);
 
    routeModels.forEach(toModel => {
        const fn = routes[toModel];
 
        convert[fromModel][toModel] = wrapRounded(fn);
        convert[fromModel][toModel].raw = wrapRaw(fn);
    });
});
 
module.exports = convert;