2020-07-03 10:00:10 -04:00
|
|
|
const binaryName = [process.platform, process.arch, process.versions.modules].join('__');
|
2020-01-19 08:23:57 -05:00
|
|
|
|
2020-07-03 10:00:10 -04:00
|
|
|
const hyperbuild = require(`./${binaryName}.node`);
|
2020-01-19 08:23:57 -05:00
|
|
|
|
2020-07-10 11:15:56 -04:00
|
|
|
export type Configuration = {
|
|
|
|
minifyJs: boolean;
|
|
|
|
};
|
|
|
|
|
|
|
|
export const minify = (code: string, cfg: Configuration): string => {
|
2020-01-19 08:23:57 -05:00
|
|
|
const buf = Buffer.from(code);
|
2020-07-10 11:15:56 -04:00
|
|
|
const len = hyperbuild.minify(buf, cfg);
|
2020-01-19 08:23:57 -05:00
|
|
|
return buf.slice(0, len).toString();
|
|
|
|
};
|
|
|
|
|
2020-07-10 11:15:56 -04:00
|
|
|
export const minifyInPlace = (buf: Buffer, cfg: Configuration): Buffer => {
|
|
|
|
const len = hyperbuild.minify(buf, cfg);
|
2020-01-19 08:23:57 -05:00
|
|
|
// This does not do a copy.
|
|
|
|
return buf.slice(0, len);
|
|
|
|
};
|