• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

fontello / svgpath / 9183607095

28 Oct 2022 03:34PM UTC coverage: 100.0%. Remained the same
9183607095

push

github

puzrin
2.6.0 released

412 of 414 branches covered (99.52%)

638 of 638 relevant lines covered (100.0%)

19822.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/lib/transform_parse.js
1
'use strict';
2

3

4
var Matrix = require('./matrix');
1✔
5

6
var operations = {
1✔
7
  matrix: true,
8
  scale: true,
9
  rotate: true,
10
  translate: true,
11
  skewX: true,
12
  skewY: true
13
};
14

15
var CMD_SPLIT_RE    = /\s*(matrix|translate|scale|rotate|skewX|skewY)\s*\(\s*(.+?)\s*\)[\s,]*/;
1✔
16
var PARAMS_SPLIT_RE = /[\s,]+/;
1✔
17

18

19
module.exports = function transformParse(transformString) {
1✔
20
  var matrix = new Matrix();
19✔
21
  var cmd, params;
22

23
  // Split value into ['', 'translate', '10 50', '', 'scale', '2', '', 'rotate',  '-45', '']
24
  transformString.split(CMD_SPLIT_RE).forEach(function (item) {
19✔
25

26
    // Skip empty elements
27
    if (!item.length) { return; }
112✔
28

29
    // remember operation
30
    if (typeof operations[item] !== 'undefined') {
62✔
31
      cmd = item;
31✔
32
      return;
31✔
33
    }
34

35
    // extract params & att operation to matrix
36
    params = item.split(PARAMS_SPLIT_RE).map(function (i) {
31✔
37
      return +i || 0;
61✔
38
    });
39

40
    // If params count is not correct - ignore command
41
    switch (cmd) {
31✔
42
      case 'matrix':
43
        if (params.length === 6) {
3✔
44
          matrix.matrix(params);
2✔
45
        }
46
        return;
3✔
47

48
      case 'scale':
49
        if (params.length === 1) {
8✔
50
          matrix.scale(params[0], params[0]);
1✔
51
        } else if (params.length === 2) {
7✔
52
          matrix.scale(params[0], params[1]);
6✔
53
        }
54
        return;
8✔
55

56
      case 'rotate':
57
        if (params.length === 1) {
6✔
58
          matrix.rotate(params[0], 0, 0);
4✔
59
        } else if (params.length === 3) {
2✔
60
          matrix.rotate(params[0], params[1], params[2]);
1✔
61
        }
62
        return;
6✔
63

64
      case 'translate':
65
        if (params.length === 1) {
7✔
66
          matrix.translate(params[0], 0);
1✔
67
        } else if (params.length === 2) {
6✔
68
          matrix.translate(params[0], params[1]);
5✔
69
        }
70
        return;
7✔
71

72
      case 'skewX':
73
        if (params.length === 1) {
4✔
74
          matrix.skewX(params[0]);
3✔
75
        }
76
        return;
4✔
77

78
      case 'skewY':
79
        if (params.length === 1) {
3✔
80
          matrix.skewY(params[0]);
2✔
81
        }
82
        return;
3✔
83
    }
84
  });
85

86
  return matrix;
19✔
87
};
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc