File tree Expand file tree Collapse file tree 2 files changed +65
-0
lines changed Expand file tree Collapse file tree 2 files changed +65
-0
lines changed Original file line number Diff line number Diff line change
1
+ 'use strict' ;
2
+
3
+ var cache = { } ;
4
+
5
+ // Add dependencies from cache in case of error
6
+ exports . addFromCache = function ( context ) {
7
+ add ( context , get ( context ) ) ;
8
+ } ;
9
+
10
+ // Add dependencies and from compiled template and save to cache
11
+ exports . addAndSave = function ( context , deps ) {
12
+ add ( context , save ( context , deps ) ) ;
13
+ } ;
14
+
15
+ function get ( context ) {
16
+ return cache [ context . resourcePath ] || [ ] ;
17
+ }
18
+
19
+ function save ( context , deps ) {
20
+ cache [ context . resourcePath ] = deps ;
21
+ return get ( context ) ;
22
+ }
23
+
24
+ function add ( context , deps ) {
25
+ deps . forEach ( function ( dep ) {
26
+ context . addDependency ( dep ) ;
27
+ } ) ;
28
+ }
Original file line number Diff line number Diff line change
1
+ 'use strict' ;
2
+
3
+ var parseQuery = require ( 'loader-utils' ) . parseQuery ;
4
+ var compile = require ( 'ejs' ) . compile ;
5
+ var dependencies = require ( './dependencies' ) ;
6
+
7
+ module . exports = function ejsHtmlLoader ( source ) {
8
+ this . cacheable ( ) ;
9
+
10
+ var options = this . options ;
11
+ var query = parseQuery ( this . query ) ;
12
+ var data = options . ejsHtmlLoader || options . ejsHtml || query ;
13
+
14
+ var template ;
15
+ var rendered ;
16
+
17
+ try {
18
+ template = compile ( source , {
19
+ filename : this . resourcePath ,
20
+ delimiter : data . delimiter ,
21
+ context : data . context
22
+ } ) ;
23
+ rendered = template ( data ) ;
24
+ } catch ( e ) {
25
+ dependencies . addFromCache ( this ) ;
26
+ throwError ( e . message ) ;
27
+ }
28
+
29
+ dependencies . addAndSave ( this , template . dependencies ) ;
30
+ return rendered ;
31
+ } ;
32
+
33
+ function throwError ( message ) {
34
+ var err = new Error ( 'ejs-html-loader\n' + message ) ;
35
+ Error . captureStackTrace ( err , message ) ;
36
+ throw err ;
37
+ }
You can’t perform that action at this time.
0 commit comments