remove code, map and cssMap from svelte.compile output

pull/1348/head
Rich Harris 6 years ago
parent df4e3678dc
commit a3add04e7c

@ -369,31 +369,13 @@ export default class Generator {
}) })
}; };
Object.getOwnPropertyNames(String.prototype).forEach(name => {
const descriptor = Object.getOwnPropertyDescriptor(String.prototype, name);
if (typeof descriptor.value === 'function') {
Object.defineProperty(css, name, {
value: (...args) => {
return css.code === null
? null
: css.code[name].call(css.code, ...args);
}
});
}
});
this.stats.stop('compile'); this.stats.stop('compile');
return { return {
ast: this.ast, ast: this.ast,
js, js,
css, css,
stats: this.stats.render(this), stats: this.stats.render(this)
// TODO deprecate
code: js.code,
map: js.map,
cssMap: css.map
}; };
} }

@ -147,12 +147,12 @@ export function create(source: string, _options: CompileOptions = {}) {
const compiled = compile(source, _options); const compiled = compile(source, _options);
if (!compiled || !compiled.code) { if (!compiled || !compiled.js.code) {
return; return;
} }
try { try {
return (0, eval)(compiled.code); return (0, eval)(compiled.js.code);
} catch (err) { } catch (err) {
if (_options.onerror) { if (_options.onerror) {
_options.onerror(err); _options.onerror(err);

@ -37,9 +37,9 @@ function _register(extension) {
generate: 'ssr' generate: 'ssr'
}); });
const {code} = compile(fs.readFileSync(filename, 'utf-8'), options); const { js } = compile(fs.readFileSync(filename, 'utf-8'), options);
return module._compile(code, filename); return module._compile(js.code, filename);
}; };
} }

@ -78,10 +78,10 @@ describe('css', () => {
); );
// check the code is valid // check the code is valid
checkCodeIsValid(dom.code); checkCodeIsValid(dom.js.code);
checkCodeIsValid(ssr.code); checkCodeIsValid(ssr.js.code);
assert.equal(dom.css.toString(), ssr.css.toString()); assert.equal(dom.css.code, ssr.css.code);
assert.deepEqual( assert.deepEqual(
domWarnings.map(normalizeWarning), domWarnings.map(normalizeWarning),
@ -89,13 +89,13 @@ describe('css', () => {
); );
assert.deepEqual(domWarnings.map(normalizeWarning), expectedWarnings); assert.deepEqual(domWarnings.map(normalizeWarning), expectedWarnings);
fs.writeFileSync(`test/css/samples/${dir}/_actual.css`, dom.css); fs.writeFileSync(`test/css/samples/${dir}/_actual.css`, dom.css.code);
const expected = { const expected = {
html: read(`test/css/samples/${dir}/expected.html`), html: read(`test/css/samples/${dir}/expected.html`),
css: read(`test/css/samples/${dir}/expected.css`) css: read(`test/css/samples/${dir}/expected.css`)
}; };
assert.equal(dom.css.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => $1 ? m : 'svelte-xyz'), expected.css); assert.equal(dom.css.code.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => $1 ? m : 'svelte-xyz'), expected.css);
// verify that the right elements have scoping selectors // verify that the right elements have scoping selectors
if (expected.html !== null) { if (expected.html !== null) {
@ -104,7 +104,7 @@ describe('css', () => {
// dom // dom
try { try {
const Component = eval( const Component = eval(
`(function () { ${dom.code}; return SvelteComponent; }())` `(function () { ${dom.js.code}; return SvelteComponent; }())`
); );
const target = window.document.querySelector('main'); const target = window.document.querySelector('main');
@ -120,14 +120,14 @@ describe('css', () => {
window.document.head.innerHTML = ''; // remove added styles window.document.head.innerHTML = ''; // remove added styles
} catch (err) { } catch (err) {
console.log(dom.code); console.log(dom.js.code);
throw err; throw err;
} }
// ssr // ssr
try { try {
const component = eval( const component = eval(
`(function () { ${ssr.code}; return SvelteComponent; }())` `(function () { ${ssr.js.code}; return SvelteComponent; }())`
); );
assert.equal( assert.equal(
@ -138,7 +138,7 @@ describe('css', () => {
normalizeHtml(window, expected.html) normalizeHtml(window, expected.html)
); );
} catch (err) { } catch (err) {
console.log(ssr.code); console.log(ssr.js.code);
throw err; throw err;
} }
} }

@ -70,10 +70,7 @@ describe('custom-elements', function() {
dev: config.dev dev: config.dev
}); });
return { return compiled.js;
code: compiled.code,
map: compiled.map
};
} }
} }
}, },

@ -98,12 +98,12 @@ describe("formats", () => {
</script> </script>
`; `;
const { code } = svelte.compile(source, { const { js } = svelte.compile(source, {
format: "amd", format: "amd",
amd: { id: "foo" } amd: { id: "foo" }
}); });
return testAmd(code, "foo", { answer: 42 }, `<div>42</div>`); return testAmd(js.code, "foo", { answer: 42 }, `<div>42</div>`);
}); });
}); });
@ -123,11 +123,11 @@ describe("formats", () => {
</script> </script>
`; `;
const { code } = svelte.compile(source, { const { js } = svelte.compile(source, {
format: "cjs" format: "cjs"
}); });
return testCjs(code, { answer: 42 }, `<div>42</div>`); return testCjs(js.code, { answer: 42 }, `<div>42</div>`);
}); });
}); });
@ -147,7 +147,7 @@ describe("formats", () => {
</script> </script>
`; `;
const { code } = svelte.compile(source, { const { js } = svelte.compile(source, {
format: "iife", format: "iife",
name: "Foo", name: "Foo",
globals: { globals: {
@ -155,7 +155,7 @@ describe("formats", () => {
} }
}); });
return testIife(code, "Foo", { answer: 42 }, `<div>42</div>`); return testIife(js.code, "Foo", { answer: 42 }, `<div>42</div>`);
}); });
it('requires options.name', () => { it('requires options.name', () => {
@ -221,7 +221,7 @@ describe("formats", () => {
</script> </script>
`; `;
const { code } = svelte.compile(source, { const { js } = svelte.compile(source, {
format: "umd", format: "umd",
name: "Foo", name: "Foo",
globals: { globals: {
@ -232,9 +232,9 @@ describe("formats", () => {
} }
}); });
testAmd(code, "foo", { answer: 42 }, `<div>42</div>`); testAmd(js.code, "foo", { answer: 42 }, `<div>42</div>`);
testCjs(code, { answer: 42 }, `<div>42</div>`); testCjs(js.code, { answer: 42 }, `<div>42</div>`);
testIife(code, "Foo", { answer: 42 }, `<div>42</div>`); testIife(js.code, "Foo", { answer: 42 }, `<div>42</div>`);
}); });
it('requires options.name', () => { it('requires options.name', () => {
@ -262,14 +262,14 @@ describe("formats", () => {
</script> </script>
`; `;
const { code } = svelte.compile(source, { const { js } = svelte.compile(source, {
format: "eval", format: "eval",
globals: { globals: {
answer: "answer" answer: "answer"
} }
}); });
return testEval(code, "Foo", { answer: 42 }, `<div>42</div>`); return testEval(js.code, "Foo", { answer: 42 }, `<div>42</div>`);
}); });
}); });

@ -27,9 +27,9 @@ describe('hydration', () => {
compileOptions compileOptions
); );
const { code } = svelte.compile(fs.readFileSync(filename, 'utf-8'), options); const { js } = svelte.compile(fs.readFileSync(filename, 'utf-8'), options);
return module._compile(code, filename); return module._compile(js.code, filename);
}; };
return setupHtmlEqual(); return setupHtmlEqual();

@ -28,7 +28,7 @@ describe("js", () => {
parser: v2 ? 'v2' : 'v1' parser: v2 ? 'v2' : 'v1'
}); });
actual = svelte.compile(input, options).code.replace(/generated by Svelte v\d+\.\d+\.\d+/, 'generated by Svelte vX.Y.Z'); actual = svelte.compile(input, options).js.code.replace(/generated by Svelte v\d+\.\d+\.\d+/, 'generated by Svelte vX.Y.Z');
} catch (err) { } catch (err) {
console.log(err.frame); console.log(err.frame);
throw err; throw err;

@ -36,9 +36,9 @@ describe("runtime", () => {
compileOptions compileOptions
); );
const { code } = compile(fs.readFileSync(filename, "utf-8"), options); const { js } = compile(fs.readFileSync(filename, "utf-8"), options);
return module._compile(code, filename); return module._compile(js.code, filename);
}; };
return setupHtmlEqual(); return setupHtmlEqual();
@ -194,14 +194,14 @@ describe("runtime", () => {
}); });
it("fails if options.target is missing in dev mode", () => { it("fails if options.target is missing in dev mode", () => {
const { code } = svelte$.compile(`<div></div>`, { const { js } = svelte$.compile(`<div></div>`, {
format: "iife", format: "iife",
name: "SvelteComponent", name: "SvelteComponent",
dev: true dev: true
}); });
const SvelteComponent = eval( const SvelteComponent = eval(
`(function () { ${code}; return SvelteComponent; }())` `(function () { ${js.code}; return SvelteComponent; }())`
); );
assert.throws(() => { assert.throws(() => {
@ -210,14 +210,14 @@ describe("runtime", () => {
}); });
it("fails if options.hydrate is true but the component is non-hydratable", () => { it("fails if options.hydrate is true but the component is non-hydratable", () => {
const { code } = svelte$.compile(`<div></div>`, { const { js } = svelte$.compile(`<div></div>`, {
format: "iife", format: "iife",
name: "SvelteComponent", name: "SvelteComponent",
dev: true dev: true
}); });
const SvelteComponent = eval( const SvelteComponent = eval(
`(function () { ${code}; return SvelteComponent; }())` `(function () { ${js.code}; return SvelteComponent; }())`
); );
assert.throws(() => { assert.throws(() => {

@ -27,14 +27,14 @@ describe("sourcemaps", () => {
); );
const input = fs.readFileSync(filename, "utf-8").replace(/\s+$/, ""); const input = fs.readFileSync(filename, "utf-8").replace(/\s+$/, "");
const { code, map, css, cssMap } = svelte.compile(input, { const { js, css } = svelte.compile(input, {
filename, filename,
outputFilename: `${outputFilename}.js`, outputFilename: `${outputFilename}.js`,
cssOutputFilename: `${outputFilename}.css`, cssOutputFilename: `${outputFilename}.css`,
cascade: config.cascade cascade: config.cascade
}); });
const _code = code.replace(/Svelte v\d+\.\d+\.\d+/, match => match.replace(/\d/g, 'x')); const _code = js.code.replace(/Svelte v\d+\.\d+\.\d+/, match => match.replace(/\d/g, 'x'));
fs.writeFileSync( fs.writeFileSync(
`${outputFilename}.js`, `${outputFilename}.js`,
@ -42,34 +42,34 @@ describe("sourcemaps", () => {
); );
fs.writeFileSync( fs.writeFileSync(
`${outputFilename}.js.map`, `${outputFilename}.js.map`,
JSON.stringify(map, null, " ") JSON.stringify(js.map, null, " ")
); );
if (css.code) { if (css.code) {
fs.writeFileSync( fs.writeFileSync(
`${outputFilename}.css`, `${outputFilename}.css`,
`${css}\n/*# sourceMappingURL=output.css.map */` `${css.code}\n/*# sourceMappingURL=output.css.map */`
); );
fs.writeFileSync( fs.writeFileSync(
`${outputFilename}.css.map`, `${outputFilename}.css.map`,
JSON.stringify(cssMap, null, " ") JSON.stringify(css.map, null, " ")
); );
} }
assert.deepEqual(map.sources, ["input.html"]); assert.deepEqual(js.map.sources, ["input.html"]);
if (cssMap) assert.deepEqual(cssMap.sources, ["input.html"]); if (css.map) assert.deepEqual(css.map.sources, ["input.html"]);
const { test } = require(`./samples/${dir}/test.js`); const { test } = require(`./samples/${dir}/test.js`);
const locateInSource = getLocator(input); const locateInSource = getLocator(input);
const smc = new SourceMapConsumer(map); const smc = new SourceMapConsumer(js.map);
const locateInGenerated = getLocator(_code); const locateInGenerated = getLocator(_code);
const smcCss = cssMap && new SourceMapConsumer(cssMap); const smcCss = css.map && new SourceMapConsumer(css.map);
const locateInGeneratedCss = getLocator(css.code || ''); const locateInGeneratedCss = getLocator(css.code || '');
test({ assert, code: _code, map, smc, smcCss, locateInSource, locateInGenerated, locateInGeneratedCss }); test({ assert, code: _code, map: js.map, smc, smcCss, locateInSource, locateInGenerated, locateInGeneratedCss });
}); });
}); });
}); });

Loading…
Cancel
Save