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');
return {
ast: this.ast,
js,
css,
stats: this.stats.render(this),
// TODO deprecate
code: js.code,
map: js.map,
cssMap: css.map
stats: this.stats.render(this)
};
}

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

@ -37,9 +37,9 @@ function _register(extension) {
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
checkCodeIsValid(dom.code);
checkCodeIsValid(ssr.code);
checkCodeIsValid(dom.js.code);
checkCodeIsValid(ssr.js.code);
assert.equal(dom.css.toString(), ssr.css.toString());
assert.equal(dom.css.code, ssr.css.code);
assert.deepEqual(
domWarnings.map(normalizeWarning),
@ -89,13 +89,13 @@ describe('css', () => {
);
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 = {
html: read(`test/css/samples/${dir}/expected.html`),
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
if (expected.html !== null) {
@ -104,7 +104,7 @@ describe('css', () => {
// dom
try {
const Component = eval(
`(function () { ${dom.code}; return SvelteComponent; }())`
`(function () { ${dom.js.code}; return SvelteComponent; }())`
);
const target = window.document.querySelector('main');
@ -120,14 +120,14 @@ describe('css', () => {
window.document.head.innerHTML = ''; // remove added styles
} catch (err) {
console.log(dom.code);
console.log(dom.js.code);
throw err;
}
// ssr
try {
const component = eval(
`(function () { ${ssr.code}; return SvelteComponent; }())`
`(function () { ${ssr.js.code}; return SvelteComponent; }())`
);
assert.equal(
@ -138,7 +138,7 @@ describe('css', () => {
normalizeHtml(window, expected.html)
);
} catch (err) {
console.log(ssr.code);
console.log(ssr.js.code);
throw err;
}
}

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

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

@ -28,7 +28,7 @@ describe("js", () => {
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) {
console.log(err.frame);
throw err;

@ -36,9 +36,9 @@ describe("runtime", () => {
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();
@ -194,14 +194,14 @@ describe("runtime", () => {
});
it("fails if options.target is missing in dev mode", () => {
const { code } = svelte$.compile(`<div></div>`, {
const { js } = svelte$.compile(`<div></div>`, {
format: "iife",
name: "SvelteComponent",
dev: true
});
const SvelteComponent = eval(
`(function () { ${code}; return SvelteComponent; }())`
`(function () { ${js.code}; return SvelteComponent; }())`
);
assert.throws(() => {
@ -210,14 +210,14 @@ describe("runtime", () => {
});
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",
name: "SvelteComponent",
dev: true
});
const SvelteComponent = eval(
`(function () { ${code}; return SvelteComponent; }())`
`(function () { ${js.code}; return SvelteComponent; }())`
);
assert.throws(() => {

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