@@ -25,11 +25,27 @@ function handleData(el, data) {
25
25
)
26
26
}
27
27
28
+ function getData ( el ) {
29
+ const src = el . src
30
+ let data = privateData . get ( el )
31
+ if ( data && data . src === src ) {
32
+ return data . data
33
+ } else {
34
+ if ( src ) {
35
+ data = el . load ( )
36
+ } else {
37
+ data = Promise . reject ( new Error ( 'missing src' ) )
38
+ }
39
+ privateData . set ( el , { src, data} )
40
+ return data
41
+ }
42
+ }
43
+
28
44
export class IncludeFragmentElement extends HTMLElement {
29
45
constructor ( ) {
30
46
super ( )
31
47
// Preload data cache
32
- this . getData ( ) [ 'catch' ] ( function ( ) {
48
+ getData ( this ) [ 'catch' ] ( function ( ) {
33
49
// Ignore `src missing` error on pre-load.
34
50
} )
35
51
}
@@ -57,30 +73,14 @@ export class IncludeFragmentElement extends HTMLElement {
57
73
}
58
74
}
59
75
60
- getData ( ) {
61
- const src = this . src
62
- let data = privateData . get ( this )
63
- if ( data && data . src === src ) {
64
- return data . data
65
- } else {
66
- if ( src ) {
67
- data = this . load ( )
68
- } else {
69
- data = Promise . reject ( new Error ( 'missing src' ) )
70
- }
71
- privateData . set ( this , { src, data} )
72
- return data
73
- }
74
- }
75
-
76
76
get data ( ) {
77
- return this . getData ( )
77
+ return getData ( this )
78
78
}
79
79
80
80
attributeChangedCallback ( attribute ) {
81
81
if ( attribute === 'src' ) {
82
82
// Reload data load cache.
83
- const data = this . getData ( )
83
+ const data = getData ( this )
84
84
85
85
// Source changed after attached so replace element.
86
86
if ( this . _attached ) {
@@ -92,7 +92,7 @@ export class IncludeFragmentElement extends HTMLElement {
92
92
connectedCallback ( ) {
93
93
this . _attached = true
94
94
if ( this . src ) {
95
- handleData ( this , this . getData ( ) )
95
+ handleData ( this , getData ( this ) )
96
96
}
97
97
}
98
98
0 commit comments