From ec43f2d344cbe7e2c67a8a95fba5464e7ef24dfd Mon Sep 17 00:00:00 2001 From: Rich-Harris Date: Sun, 1 Apr 2018 20:23:03 -0400 Subject: [PATCH 1/2] prevent future post-1.60 deprecation warnings --- index.js | 27 ++++++++++++++++++++------- package-lock.json | 8 ++++---- package.json | 2 +- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/index.js b/index.js index a06f0f90..9edf21ce 100644 --- a/index.js +++ b/index.js @@ -48,6 +48,19 @@ function capitalize(str) { return str[0].toUpperCase() + str.slice(1); } +function normalize(compiled) { + // svelte.compile signature changed in 1.60 — this avoids + // future deprecation warnings while preserving backwards + // compatibility + const js = compiled.js || { code: compiled.code, map: compiled.map }; + + const css = compiled.css && typeof compiled.css === 'object' + ? compiled.css + : { code: compiled.css, map: compiled.cssMap } + + return { js, css, ast: compiled.ast }; +} + module.exports = function(source, map) { this.cacheable(); @@ -72,16 +85,16 @@ module.exports = function(source, map) { if (!options.onwarn) options.onwarn = warning => this.emitWarning(new Error(warning)); preprocess(source, options).then(processed => { - let { code, map, css, cssMap, ast } = compile(processed.toString(), options); + let { js, css, ast } = normalize(compile(processed.toString(), options)); - if (options.emitCss && css) { + if (options.emitCss && css.code) { const posixTmpdir = posixify(tmpdir()); const tmpFile = posix.join(posixTmpdir, 'svelte-' + ast.hash + '.css'); - css += '\n/*# sourceMappingURL=' + cssMap.toUrl() + '*/'; - code = code + `\nrequire('${tmpFile}');\n`; + css.code += '\n/*# sourceMappingURL=' + css.map.toUrl() + '*/'; + js.code = js.code + `\nrequire('${tmpFile}');\n`; - writeFileSync(tmpFile, css); + writeFileSync(tmpFile, css.code); const { atime, mtime } = statSync(tmpFile); utimesSync(tmpFile, new Date(atime.getTime() - 99999), new Date(mtime.getTime() - 99999)); } @@ -89,10 +102,10 @@ module.exports = function(source, map) { if (options.hotReload && !isProduction && !isServer) { const hotOptions = Object.assign({}, options.hotOptions); const id = JSON.stringify(relative(process.cwd(), options.filename)); - code = makeHot(id, code, hotOptions); + js.code = makeHot(id, js.code, hotOptions); } - callback(null, code, map); + callback(null, js.code, js.map); }, err => callback(err)).catch(err => { // wrap error to provide correct // context when logging to console diff --git a/package-lock.json b/package-lock.json index 57adcfcf..f7d8eb91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "svelte-loader", - "version": "2.5.0", + "version": "2.5.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1337,9 +1337,9 @@ "dev": true }, "svelte": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-1.56.0.tgz", - "integrity": "sha512-2oOOykNmwHl620ywIUTUuH4+u4K3kKmjSBF9dwQJp5c+tiQJV2YmjmVCUp1szmSnZgN82yzHZ0Ch5GB4OLXjCg==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-1.60.0.tgz", + "integrity": "sha512-dh6lpW/sw4NpIJJRVlay1qTOgoM6QCrZxxKG5Lg4uSff63LVjEp+cgZmB6HxwLHlB2McU25vitJSouixSLu6ug==", "dev": true }, "svelte-dev-helper": { diff --git a/package.json b/package.json index e7696754..cce1acbc 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "mocha": "^3.2.0", "sinon": "^1.17.6", "sinon-chai": "^2.8.0", - "svelte": "^1.56.0" + "svelte": "^1.60.0" }, "peerDependencies": { "svelte": "^1.44.0" From 97dcefacb9bfefa6159bd60f54931d3325601ea7 Mon Sep 17 00:00:00 2001 From: Rich-Harris Date: Sun, 1 Apr 2018 20:27:08 -0400 Subject: [PATCH 2/2] lint --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 9edf21ce..9b3675b9 100644 --- a/index.js +++ b/index.js @@ -56,7 +56,7 @@ function normalize(compiled) { const css = compiled.css && typeof compiled.css === 'object' ? compiled.css - : { code: compiled.css, map: compiled.cssMap } + : { code: compiled.css, map: compiled.cssMap }; return { js, css, ast: compiled.ast }; }