ui: add --bigtrace
Change-Id: Ie10ca7ea8104f121ca3108b451ef332956f645d0
diff --git a/ui/build.js b/ui/build.js
index f8e2d90..12e3c35 100644
--- a/ui/build.js
+++ b/ui/build.js
@@ -82,6 +82,7 @@
watch: false,
verbose: false,
debug: false,
+ bigtrace: false,
startHttpServer: false,
httpServerListenHost: '127.0.0.1',
httpServerListenPort: 10000,
@@ -108,6 +109,7 @@
outGenDir: '',
outDistDir: '',
outExtDir: '',
+ outBigtraceDistDir: '',
};
const RULES = [
@@ -146,6 +148,7 @@
parser.add_argument('--run-unittests', '-t', {action: 'store_true'});
parser.add_argument('--run-integrationtests', '-T', {action: 'store_true'});
parser.add_argument('--debug', '-d', {action: 'store_true'});
+ parser.add_argument('--bigtrace', {action: 'store_true'});
parser.add_argument('--interactive', '-i', {action: 'store_true'});
parser.add_argument('--rebaseline', '-r', {action: 'store_true'});
parser.add_argument('--no-depscheck', {action: 'store_true'});
@@ -171,8 +174,12 @@
cfg.watch = !!args.watch;
cfg.verbose = !!args.verbose;
cfg.debug = !!args.debug;
+ cfg.bigtrace = !!args.bigtrace;
cfg.startHttpServer = args.serve;
cfg.noOverrideGnArgs = !!args.no_override_gn_args;
+ if (args.bigtrace) {
+ cfg.outBigtraceDistDir = ensureDir(pjoin(cfg.outDistDir, 'bigtrace'));
+ }
if (args.serve_host) {
cfg.httpServerListenHost = args.serve_host;
}
@@ -242,6 +249,9 @@
genVersion();
transpileTsProject('ui');
transpileTsProject('ui/src/service_worker');
+ if (cfg.bigtrace) {
+ transpileTsProject('ui/src/bigtrace');
+ }
if (cfg.watch) {
transpileTsProject('ui', {watch: cfg.watch});
@@ -486,6 +496,9 @@
function bundleJs(cfgName) {
const rcfg = pjoin(ROOT_DIR, 'ui/config', cfgName);
const args = ['-c', rcfg, '--no-indent'];
+ if (cfg.bigtrace) {
+ args.push('--environment', 'ENABLE_BIGTRACE:true');
+ }
args.push(...(cfg.verbose ? [] : ['--silent']));
if (cfg.watch) {
// --waitForBundleInput is sadly quite busted so it is required ts
diff --git a/ui/config/rollup.config.js b/ui/config/rollup.config.js
index d83d2b9..c7d2a0c 100644
--- a/ui/config/rollup.config.js
+++ b/ui/config/rollup.config.js
@@ -93,10 +93,12 @@
};
}
+const maybeBigtrace = process.env['ENABLE_BIGTRACE'] ? [defBundle('bigtrace', 'dist_version/bigtrace')] : [];
+
export default [
defBundle('frontend', 'dist_version'),
defBundle('engine', 'dist_version'),
defBundle('traceconv', 'dist_version'),
defBundle('chrome_extension', 'chrome_extension'),
defServiceWorkerBundle(),
-];
+].concat(maybeBigtrace);
diff --git a/ui/src/bigtrace/index.ts b/ui/src/bigtrace/index.ts
new file mode 100644
index 0000000..98907ab
--- /dev/null
+++ b/ui/src/bigtrace/index.ts
@@ -0,0 +1 @@
+console.log('hello world bitrace');
\ No newline at end of file
diff --git a/ui/src/bigtrace/tsconfig.json b/ui/src/bigtrace/tsconfig.json
new file mode 100644
index 0000000..dd12b2e
--- /dev/null
+++ b/ui/src/bigtrace/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "include": [ "." ],
+ "exclude": [
+ "../gen/"
+ ],
+ "compilerOptions": {
+ "outDir": "../../out/tsc/bigtrace",
+ "lib": [
+ "dom", // Need to be explicitly mentioned now since we're overriding default included libs.
+ "es2021", // Need this to use Promise.allSettled, replaceAll, etc
+ ],
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ }
+}
diff --git a/ui/tsconfig.json b/ui/tsconfig.json
index e56528b..b76eb9b 100644
--- a/ui/tsconfig.json
+++ b/ui/tsconfig.json
@@ -4,6 +4,7 @@
"exclude": [
"./node_modules/",
"./src/service_worker/",
+ "./src/bigtrace/",
"./src/gen/",
"./out"
],