mirror of
https://github.com/swc-project/swc.git
synced 2024-11-24 02:06:08 +03:00
d975a197c9
swc: - Fill `names` of sourcemap. - Don't add `sourceContents` to sourcemap if `sources` is added. node_swc: - Handle source map for `minify` correctly. - `minify`: Accept `{ filename: code }`.
157 lines
4.3 KiB
JavaScript
157 lines
4.3 KiB
JavaScript
import swc from '../..';
|
|
|
|
it("should compress", async () => {
|
|
const { code } = await swc.minify(`
|
|
import foo from '@src/app';
|
|
console.log(foo)
|
|
`);
|
|
|
|
expect(code).toMatchInlineSnapshot(`"import foo from'@src/app';console.log(foo)"`);
|
|
})
|
|
|
|
it("should accept object", async () => {
|
|
const { code } = await swc.minify(`
|
|
import foo from '@src/app';
|
|
console.log(foo)
|
|
`, {});
|
|
|
|
expect(code).toMatchInlineSnapshot(`"import foo from'@src/app';console.log(foo)"`);
|
|
})
|
|
|
|
it("should accpept { mangle = true }", async () => {
|
|
const { code } = await swc.minify(`
|
|
import foo from '@src/app';
|
|
console.log(foo)
|
|
`, {
|
|
compress: false,
|
|
mangle: true,
|
|
});
|
|
|
|
expect(code).toMatchInlineSnapshot(`"import a from'@src/app';console.log(a)"`);
|
|
})
|
|
|
|
it("should accpept { mangle = object }", async () => {
|
|
const { code } = await swc.minify(`
|
|
import foo from '@src/app';
|
|
console.log(foo)
|
|
`, {
|
|
compress: false,
|
|
mangle: {
|
|
topLevel: true
|
|
},
|
|
});
|
|
|
|
expect(code).toMatchInlineSnapshot(`"import a from'@src/app';console.log(a)"`);
|
|
})
|
|
|
|
it("should mangle locals", async () => {
|
|
const { code } = await swc.minify(`
|
|
(function(){
|
|
const longName = Math.random() + '_' + Math.random();
|
|
console.log(longName);
|
|
console.log(longName);
|
|
console.log(longName);
|
|
console.log(longName);
|
|
console.log(longName);
|
|
console.log(longName);
|
|
})()
|
|
`, {
|
|
compress: false,
|
|
mangle: {
|
|
topLevel: true
|
|
},
|
|
});
|
|
|
|
expect(code).toMatchInlineSnapshot(`"(function(){const a=Math.random()+'_'+Math.random();console.log(a);console.log(a);console.log(a);console.log(a);console.log(a);console.log(a)})()"`);
|
|
})
|
|
|
|
describe('soruce map', () => {
|
|
it("should have `names`", async () => {
|
|
const { map } = await swc.minify(`
|
|
(function(){
|
|
const longName = Math.random() + '_' + Math.random();
|
|
console.log(longName);
|
|
console.log(longName);
|
|
})()
|
|
`, {
|
|
sourceMap: true,
|
|
compress: false,
|
|
mangle: {
|
|
topLevel: true
|
|
},
|
|
});
|
|
|
|
expect(JSON.parse(map)).toHaveProperty("names");
|
|
expect(JSON.parse(map).names).not.toEqual([])
|
|
});
|
|
|
|
it("should not have `sourcesContent` if file name is speicified`", async () => {
|
|
const { map } = await swc.minify({
|
|
'foo.js': `(function(){
|
|
const longName = Math.random() + '_' + Math.random();
|
|
console.log(longName);
|
|
})()`
|
|
}, {
|
|
sourceMap: true,
|
|
compress: false,
|
|
mangle: {
|
|
topLevel: true
|
|
},
|
|
});
|
|
|
|
const j = JSON.parse(map);
|
|
expect(j.sourcesContent).toBeUndefined()
|
|
});
|
|
|
|
it("should have `sources` if file name is speicified", async () => {
|
|
const { map } = await swc.minify({
|
|
'foo.js': `(function(){
|
|
const longName = Math.random() + '_' + Math.random();
|
|
console.log(longName);
|
|
})()`
|
|
}, {
|
|
sourceMap: true,
|
|
compress: false,
|
|
mangle: {
|
|
topLevel: true
|
|
},
|
|
});
|
|
|
|
const j = JSON.parse(map);
|
|
expect(j).toHaveProperty("sources");
|
|
expect(j.sources).not.toEqual([]);
|
|
});
|
|
})
|
|
|
|
|
|
describe('transform apis', () => {
|
|
it("handle jsc.minify", async () => {
|
|
const { code } = await swc.transform(`
|
|
(function(){
|
|
const longName = Math.random() + '_' + Math.random();
|
|
console.log(longName);
|
|
console.log(longName);
|
|
console.log(longName);
|
|
console.log(longName);
|
|
console.log(longName);
|
|
console.log(longName);
|
|
})()
|
|
`, {
|
|
jsc: {
|
|
minify: {
|
|
compress: false,
|
|
mangle: {
|
|
topLevel: true
|
|
},
|
|
}
|
|
},
|
|
minify: true,
|
|
});
|
|
|
|
expect(code).toMatchInlineSnapshot(`"(function(){var a=Math.random()+'_'+Math.random();console.log(a);console.log(a);console.log(a);console.log(a);console.log(a);console.log(a)})()"`);
|
|
})
|
|
|
|
})
|
|
|
|
|