Skip to content

Commit

Permalink
Feedback from Lars, adding the pwa prop instead of overloading the ta…
Browse files Browse the repository at this point in the history
…rget return value.
  • Loading branch information
splitinfinities committed Jul 30, 2021
1 parent 66c8019 commit c251962
Showing 1 changed file with 16 additions and 16 deletions.
32 changes: 16 additions & 16 deletions src/cli/telemetry/telemetry.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { tryFn, hasDebug, readJson, hasVerbose, uuidv4 } from './helpers';
import { shouldTrack } from './shouldTrack';
import { CompilerBuildResults, Config, PackageJsonData, TaskCommand } from 'src/declarations';
import { CompilerBuildResults, PackageJsonData, TaskCommand } from 'src/declarations';
import { readConfig, updateConfig, writeConfig } from '../ionic-config';
import { getCompilerSystem, getCoreCompiler, getStencilCLIConfig } from '../state/stencil-cli-config';

Expand Down Expand Up @@ -39,14 +39,15 @@ export interface TrackableData {
system: string;
build: string;
stencil: string;
has_app_pwa_config: boolean;
}

/**
* Used to within taskBuild to provide the component_count property.
* @param result The results of a compiler build.
*/
export async function telemetryBuildFinishedAction(result: CompilerBuildResults) {
const { sys, flags, logger, validatedConfig } = getStencilCLIConfig();
const { sys, flags, logger } = getStencilCLIConfig();
const tracking = await shouldTrack(flags.ci);

if (!tracking) {
Expand All @@ -55,7 +56,7 @@ export async function telemetryBuildFinishedAction(result: CompilerBuildResults)

const details = sys.details;
const packages = await getInstalledPackages();
const targets = await getActiveTargets(validatedConfig.config);
const targets = await getActiveTargets();
const versions = getCoreCompiler()?.versions || { typescript: 'unknown', rollup: 'unknown' };
const component_count = Object.keys(result.componentGraph).length;

Expand All @@ -75,6 +76,7 @@ export async function telemetryBuildFinishedAction(result: CompilerBuildResults)
build: getCoreCompiler()?.buildId || 'unknown',
typescript: versions.typescript,
rollup: versions.rollup,
has_app_pwa_config: hasAppTarget(),
};

await sendMetric('stencil_cli_command', data);
Expand All @@ -87,7 +89,7 @@ export async function telemetryBuildFinishedAction(result: CompilerBuildResults)
* @returns void
*/
export async function telemetryAction(action?: TelemetryCallback) {
const { sys, flags, logger, validatedConfig } = getStencilCLIConfig();
const { sys, flags, logger } = getStencilCLIConfig();
const tracking = await shouldTrack(!!flags.ci);

const details = sys.details;
Expand All @@ -114,7 +116,7 @@ export async function telemetryAction(action?: TelemetryCallback) {
}

const packages = await getInstalledPackages();
const targets = await getActiveTargets(validatedConfig.config);
const targets = await getActiveTargets();

const data: TrackableData = {
yarn: isUsingYarn(),
Expand All @@ -131,6 +133,7 @@ export async function telemetryAction(action?: TelemetryCallback) {
build: getCoreCompiler()?.buildId || 'unknown',
typescript: versions.typescript,
rollup: versions.rollup,
has_app_pwa_config: hasAppTarget(),
};

await sendMetric('stencil_cli_command', data);
Expand All @@ -141,21 +144,18 @@ export async function telemetryAction(action?: TelemetryCallback) {
}
}

function hasAppTarget(): boolean {
return getStencilCLIConfig().validatedConfig.config.outputTargets.some(
target => target.type === 'www' && (!!target.serviceWorker || target.baseUrl !== '/'),
);
}

function isUsingYarn() {
return getCompilerSystem().getEnvironmentVar('npm_execpath')?.includes('yarn') || false;
}

async function getActiveTargets(config: Config): Promise<string[]> {
const result = (config.outputTargets as any[]).map(target => {
let type = target.type;

if (type === 'www' && (!!target?.serviceWorker || target.baseUrl !== '/')) {
type = `${type} (PWA/App)`;
}

return type;
});

async function getActiveTargets(): Promise<string[]> {
const result = getStencilCLIConfig().validatedConfig.config.outputTargets.map(t => t.type);
return Array.from(new Set(result));
}

Expand Down

0 comments on commit c251962

Please sign in to comment.