Passed
Push — master ( 8d827c...07bd6c )
by Yo
01:57
created

actionContext.js   A

Complexity

Total Complexity 6
Complexity/F 1.2

Size

Lines of Code 58
Function Count 5

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 0
c 1
b 0
f 1
nc 2
dl 0
loc 58
ccs 14
cts 14
cp 1
crap 0
rs 10
wmc 6
mnd 1
bc 5
fnc 5
bpm 1
cpm 1.2
noi 0

4 Functions

Rating   Name   Duplication   Size   Complexity  
A SarahActionContext.getData 0 3 1
A SarahActionContext.setSARAH 0 3 1
A SarahActionContext.getCallback 0 3 1
A SarahActionContext.getSARAH 0 5 2
1
/* global SARAH */
2
/**
3
 * @summary SARAH action context
4
 * @description SarahActionContext is a simple wrapper for action data
5
 *
6
 * @example <caption>Instantiation</caption>
7
 * const SarahActionContext = require('sarah.lib.utils/actionContext');
8
 * var context = new SarahActionContext(data, callback);
9
 *
10
 * @example <caption>Setter</caption>
11
 *  context.setSARAH(sarah);
12
 *
13
 * @example <caption>Getter</caption
14
 *  context.getData();
15
 *  context.getCallback();
16
 *  context.getSARAH();
17
 */
18
19
/**
20
 * @constructor
21
 *
22
 * @param {object}   data     Action data
23
 * @param {callable} callback Action Callback
24
 */
25
function SarahActionContext(data, callback) {
26 3
    this.data = data;
27 3
    this.callback = callback;
28
}
29
30
/**
31
 * @public
32
 * @returns {Object}
33
 */
34 1
SarahActionContext.prototype.getData = function() {
35 1
    return this.data;
36
};
37
38
/**
39
 * @public
40
 * @returns {callable}
41
 */
42 1
SarahActionContext.prototype.getCallback = function() {
43 1
    return this.callback;
44
};
45
46
/**
47
 * @public
48
 * For SARAH v3 (For SARAH v4 Sarah instance is global)
49
 * @param {SARAH} SARAH SARAH instance
50
 */
51 1
SarahActionContext.prototype.setSARAH = function(SARAH) {
52 1
    this.SARAH = SARAH;
53
};
54
55
/**
56
 * @public
57
 * @returns {SARAH}
58
 */
59 1
SarahActionContext.prototype.getSARAH = function() {
60 2
    return typeof SARAH === 'object'
61
        ? SARAH // Sarah v4
62
        : this.SARAH;
63
};
64
65
/**
66
 * @private
67
 * @type {SARAH|null}
68
 */
69 1
SarahActionContext.prototype.SARAH = null;
70
/**
71
 * @private
72
 * @type {callable}
73
 */
74 1
SarahActionContext.prototype.callback = null;
75
/**
76
 * @private
77
 * @type {Object}
78
 */
79 1
SarahActionContext.prototype.data = null;
80
81
/* Export class */
82
module.exports = SarahActionContext;
83