Files
FeiyangandGitHub e899d6259e Expand the size analysis cli to support bundle size analysis (#3873)
* add entry point to bundle analysis

* define bundle definition format and handle input validation

* add mode

* save progress

* implement rollup analysis

* implement local mode

* implement webpack npm mode

* support webpack local mode

* rearrange files

* move files to folder

* create a single temp project for both rollup and webpack analysis

* fix lint errors

* update yarn.lock

* fix lint errors

* fix failing tests

* debug bundle

* fix bugs

* update lock file

* address comments
2020-10-19 16:42:28 -07:00

35 lines
1.0 KiB
TypeScript

/**
* @license
* Copyright 2020 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import calculateGzipSize from 'gzip-size';
import { dirname, resolve } from 'path';
interface ContentSize {
size: number;
gzipSize: number;
}
export function calculateContentSize(content: string): ContentSize {
const size = Buffer.byteLength(content, 'utf-8');
const gzipSize = calculateGzipSize.sync(content);
return {
size,
gzipSize
};
}
export const projectRoot = dirname(resolve(__dirname, '../../package.json'));