diff options
Diffstat (limited to 'src/parser.js')
-rw-r--r-- | src/parser.js | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/parser.js b/src/parser.js index c51ad71..9a64dbc 100644 --- a/src/parser.js +++ b/src/parser.js @@ -1,6 +1,22 @@ import Doc from './Doc.js' -let parser = function () { +export default function parser () { + + // Reuse cached element if possible + if (!parser.nodes) { + let svg = new Doc().size(2, 0).css({ + opacity: 0, + position: 'absolute', + left: '-100%', + top: '-100%', + overflow: 'hidden' + }) + + let path = svg.path().node + + parser.nodes = {svg, path} + } + if (!parser.nodes.svg.node.parentNode) { let b = document.body || document.documentElement parser.nodes.svg.addTo(b) @@ -8,17 +24,3 @@ let parser = function () { return parser.nodes } - -parser.nodes = { - svg: new Doc().size(2, 0).css({ - opacity: 0, - position: 'absolute', - left: '-100%', - top: '-100%', - overflow: 'hidden' - }) -} - -parser.nodes.path = parser.nodes.svg.path().node - -export default parser |