@@ -48,6 +48,19 @@ function capitalize(str) {
48
48
return str [ 0 ] . toUpperCase ( ) + str . slice ( 1 ) ;
49
49
}
50
50
51
+ function normalize ( compiled ) {
52
+ // svelte.compile signature changed in 1.60 — this avoids
53
+ // future deprecation warnings while preserving backwards
54
+ // compatibility
55
+ const js = compiled . js || { code : compiled . code , map : compiled . map } ;
56
+
57
+ const css = compiled . css && typeof compiled . css === 'object'
58
+ ? compiled . css
59
+ : { code : compiled . css , map : compiled . cssMap } ;
60
+
61
+ return { js, css, ast : compiled . ast } ;
62
+ }
63
+
51
64
module . exports = function ( source , map ) {
52
65
this . cacheable ( ) ;
53
66
@@ -72,27 +85,27 @@ module.exports = function(source, map) {
72
85
if ( ! options . onwarn ) options . onwarn = warning => this . emitWarning ( new Error ( warning ) ) ;
73
86
74
87
preprocess ( source , options ) . then ( processed => {
75
- let { code , map , css, cssMap , ast } = compile ( processed . toString ( ) , options ) ;
88
+ let { js , css, ast } = normalize ( compile ( processed . toString ( ) , options ) ) ;
76
89
77
- if ( options . emitCss && css ) {
90
+ if ( options . emitCss && css . code ) {
78
91
const posixTmpdir = posixify ( tmpdir ( ) ) ;
79
92
const tmpFile = posix . join ( posixTmpdir , 'svelte-' + ast . hash + '.css' ) ;
80
93
81
- css += '\n/*# sourceMappingURL=' + cssMap . toUrl ( ) + '*/' ;
82
- code = code + `\nrequire('${ tmpFile } ');\n` ;
94
+ css . code += '\n/*# sourceMappingURL=' + css . map . toUrl ( ) + '*/' ;
95
+ js . code = js . code + `\nrequire('${ tmpFile } ');\n` ;
83
96
84
- writeFileSync ( tmpFile , css ) ;
97
+ writeFileSync ( tmpFile , css . code ) ;
85
98
const { atime, mtime } = statSync ( tmpFile ) ;
86
99
utimesSync ( tmpFile , new Date ( atime . getTime ( ) - 99999 ) , new Date ( mtime . getTime ( ) - 99999 ) ) ;
87
100
}
88
101
89
102
if ( options . hotReload && ! isProduction && ! isServer ) {
90
103
const hotOptions = Object . assign ( { } , options . hotOptions ) ;
91
104
const id = JSON . stringify ( relative ( process . cwd ( ) , options . filename ) ) ;
92
- code = makeHot ( id , code , hotOptions ) ;
105
+ js . code = makeHot ( id , js . code , hotOptions ) ;
93
106
}
94
107
95
- callback ( null , code , map ) ;
108
+ callback ( null , js . code , js . map ) ;
96
109
} , err => callback ( err ) ) . catch ( err => {
97
110
// wrap error to provide correct
98
111
// context when logging to console
0 commit comments