@twick/telemetry 0.15.20 → 0.15.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -38,11 +38,25 @@ var import_fs = __toESM(require("fs"), 1);
38
38
  var import_os = __toESM(require("os"), 1);
39
39
  var import_path = __toESM(require("path"), 1);
40
40
  var import_posthog_node = require("posthog-node");
41
- var Client = new import_posthog_node.PostHog("phc_XaPky8YDbZjqm4GkCWBsVmICZTOTgjascrsftSOoJUJ", {
42
- host: "https://eu.posthog.com"
43
- });
41
+ var client = null;
42
+ function isTelemetryEnabled() {
43
+ if (process.env.DISABLE_TELEMETRY === "true") {
44
+ return false;
45
+ }
46
+ return process.env.TWICK_TELEMETRY_ENABLED === "true";
47
+ }
48
+ function getTelemetryClient() {
49
+ if (!isTelemetryEnabled()) return null;
50
+ if (client) return client;
51
+ const apiKey = process.env.TWICK_TELEMETRY_API_KEY;
52
+ if (!apiKey) return null;
53
+ client = new import_posthog_node.PostHog(apiKey, {
54
+ host: process.env.TWICK_TELEMETRY_HOST || "https://eu.posthog.com"
55
+ });
56
+ return client;
57
+ }
44
58
  process.on("beforeExit", async () => {
45
- await Client.shutdown();
59
+ await client?.shutdown();
46
60
  });
47
61
  var EventName = /* @__PURE__ */ ((EventName2) => {
48
62
  EventName2["RenderStarted"] = "twick-render-started";
@@ -77,15 +91,14 @@ async function getDistinctId() {
77
91
  }
78
92
  }
79
93
  async function sendEvent(eventName, eventProperties = {}) {
80
- if (process.env.DISABLE_TELEMETRY === "true") {
81
- return;
82
- }
94
+ const telemetryClient = getTelemetryClient();
95
+ if (!telemetryClient) return;
83
96
  try {
84
97
  const [version, distinctId] = await Promise.all([
85
98
  getCurrentVersion(),
86
99
  getDistinctId()
87
100
  ]);
88
- Client.capture({
101
+ telemetryClient.capture({
89
102
  distinctId,
90
103
  event: eventName,
91
104
  properties: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {PostHog} from 'posthog-node';\n\nconst Client = new PostHog('phc_XaPky8YDbZjqm4GkCWBsVmICZTOTgjascrsftSOoJUJ', {\n host: 'https://eu.posthog.com',\n});\n\nprocess.on('beforeExit', async () => {\n await Client.shutdown();\n});\n\nexport enum EventName {\n RenderStarted = 'twick-render-started',\n ServerStarted = 'twick-server-started',\n CLICommand = 'twick-cli-command',\n CreateCommand = 'twick-create-command',\n Error = 'twick-error',\n}\n\nasync function getCurrentVersion() {\n try {\n const packageData = JSON.parse(\n // Relative to this file: ../package.json\n await fs.promises.readFile(\n path.resolve(__dirname, '../package.json'),\n 'utf-8',\n ),\n );\n\n return packageData.version;\n } catch (e) {\n return 'ERROR';\n }\n}\n\nasync function getDistinctId() {\n try {\n return await fs.promises.readFile(\n path.resolve(os.homedir(), '.twick/id.txt'),\n 'utf-8',\n );\n } catch (e) {\n return 'anonymous-user';\n }\n}\n\nexport async function sendEvent(\n eventName: EventName,\n eventProperties: object = {},\n) {\n if (process.env.DISABLE_TELEMETRY === 'true') {\n return;\n }\n\n try {\n const [version, distinctId] = await Promise.all([\n getCurrentVersion(),\n getDistinctId(),\n ]);\n\n Client.capture({\n distinctId,\n event: eventName,\n properties: {\n version,\n ...eventProperties,\n },\n });\n } catch (e) {\n // No-op\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,gBAAe;AACf,kBAAiB;AACjB,0BAAsB;AAEtB,IAAM,SAAS,IAAI,4BAAQ,mDAAmD;AAAA,EAC5E,MAAM;AACR,CAAC;AAED,QAAQ,GAAG,cAAc,YAAY;AACnC,QAAM,OAAO,SAAS;AACxB,CAAC;AAEM,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,gBAAa;AACb,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,WAAQ;AALE,SAAAA;AAAA,GAAA;AAQZ,eAAe,oBAAoB;AACjC,MAAI;AACF,UAAM,cAAc,KAAK;AAAA;AAAA,MAEvB,MAAM,UAAAC,QAAG,SAAS;AAAA,QAChB,YAAAC,QAAK,QAAQ,WAAW,iBAAiB;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAEA,WAAO,YAAY;AAAA,EACrB,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEA,eAAe,gBAAgB;AAC7B,MAAI;AACF,WAAO,MAAM,UAAAD,QAAG,SAAS;AAAA,MACvB,YAAAC,QAAK,QAAQ,UAAAC,QAAG,QAAQ,GAAG,eAAe;AAAA,MAC1C;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,UACpB,WACA,kBAA0B,CAAC,GAC3B;AACA,MAAI,QAAQ,IAAI,sBAAsB,QAAQ;AAC5C;AAAA,EACF;AAEA,MAAI;AACF,UAAM,CAAC,SAAS,UAAU,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC9C,kBAAkB;AAAA,MAClB,cAAc;AAAA,IAChB,CAAC;AAED,WAAO,QAAQ;AAAA,MACb;AAAA,MACA,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,QACA,GAAG;AAAA,MACL;AAAA,IACF,CAAC;AAAA,EACH,SAAS,GAAG;AAAA,EAEZ;AACF;","names":["EventName","fs","path","os"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {PostHog} from 'posthog-node';\n\nlet client: PostHog | null = null;\n\nfunction isTelemetryEnabled(): boolean {\n if (process.env.DISABLE_TELEMETRY === 'true') {\n return false;\n }\n return process.env.TWICK_TELEMETRY_ENABLED === 'true';\n}\n\nfunction getTelemetryClient(): PostHog | null {\n if (!isTelemetryEnabled()) return null;\n if (client) return client;\n\n const apiKey = process.env.TWICK_TELEMETRY_API_KEY;\n if (!apiKey) return null;\n\n client = new PostHog(apiKey, {\n host: process.env.TWICK_TELEMETRY_HOST || 'https://eu.posthog.com',\n });\n return client;\n}\n\nprocess.on('beforeExit', async () => {\n await client?.shutdown();\n});\n\nexport enum EventName {\n RenderStarted = 'twick-render-started',\n ServerStarted = 'twick-server-started',\n CLICommand = 'twick-cli-command',\n CreateCommand = 'twick-create-command',\n Error = 'twick-error',\n}\n\nasync function getCurrentVersion() {\n try {\n const packageData = JSON.parse(\n // Relative to this file: ../package.json\n await fs.promises.readFile(\n path.resolve(__dirname, '../package.json'),\n 'utf-8',\n ),\n );\n\n return packageData.version;\n } catch (e) {\n return 'ERROR';\n }\n}\n\nasync function getDistinctId() {\n try {\n return await fs.promises.readFile(\n path.resolve(os.homedir(), '.twick/id.txt'),\n 'utf-8',\n );\n } catch (e) {\n return 'anonymous-user';\n }\n}\n\nexport async function sendEvent(\n eventName: EventName,\n eventProperties: object = {},\n) {\n const telemetryClient = getTelemetryClient();\n if (!telemetryClient) return;\n\n try {\n const [version, distinctId] = await Promise.all([\n getCurrentVersion(),\n getDistinctId(),\n ]);\n\n telemetryClient.capture({\n distinctId,\n event: eventName,\n properties: {\n version,\n ...eventProperties,\n },\n });\n } catch (e) {\n // No-op\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,gBAAe;AACf,kBAAiB;AACjB,0BAAsB;AAEtB,IAAI,SAAyB;AAE7B,SAAS,qBAA8B;AACrC,MAAI,QAAQ,IAAI,sBAAsB,QAAQ;AAC5C,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,IAAI,4BAA4B;AACjD;AAEA,SAAS,qBAAqC;AAC5C,MAAI,CAAC,mBAAmB,EAAG,QAAO;AAClC,MAAI,OAAQ,QAAO;AAEnB,QAAM,SAAS,QAAQ,IAAI;AAC3B,MAAI,CAAC,OAAQ,QAAO;AAEpB,WAAS,IAAI,4BAAQ,QAAQ;AAAA,IAC3B,MAAM,QAAQ,IAAI,wBAAwB;AAAA,EAC5C,CAAC;AACD,SAAO;AACT;AAEA,QAAQ,GAAG,cAAc,YAAY;AACnC,QAAM,QAAQ,SAAS;AACzB,CAAC;AAEM,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,gBAAa;AACb,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,WAAQ;AALE,SAAAA;AAAA,GAAA;AAQZ,eAAe,oBAAoB;AACjC,MAAI;AACF,UAAM,cAAc,KAAK;AAAA;AAAA,MAEvB,MAAM,UAAAC,QAAG,SAAS;AAAA,QAChB,YAAAC,QAAK,QAAQ,WAAW,iBAAiB;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAEA,WAAO,YAAY;AAAA,EACrB,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEA,eAAe,gBAAgB;AAC7B,MAAI;AACF,WAAO,MAAM,UAAAD,QAAG,SAAS;AAAA,MACvB,YAAAC,QAAK,QAAQ,UAAAC,QAAG,QAAQ,GAAG,eAAe;AAAA,MAC1C;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,UACpB,WACA,kBAA0B,CAAC,GAC3B;AACA,QAAM,kBAAkB,mBAAmB;AAC3C,MAAI,CAAC,gBAAiB;AAEtB,MAAI;AACF,UAAM,CAAC,SAAS,UAAU,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC9C,kBAAkB;AAAA,MAClB,cAAc;AAAA,IAChB,CAAC;AAED,oBAAgB,QAAQ;AAAA,MACtB;AAAA,MACA,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,QACA,GAAG;AAAA,MACL;AAAA,IACF,CAAC;AAAA,EACH,SAAS,GAAG;AAAA,EAEZ;AACF;","names":["EventName","fs","path","os"]}
package/dist/index.js CHANGED
@@ -3,11 +3,25 @@ import fs from "fs";
3
3
  import os from "os";
4
4
  import path from "path";
5
5
  import { PostHog } from "posthog-node";
6
- var Client = new PostHog("phc_XaPky8YDbZjqm4GkCWBsVmICZTOTgjascrsftSOoJUJ", {
7
- host: "https://eu.posthog.com"
8
- });
6
+ var client = null;
7
+ function isTelemetryEnabled() {
8
+ if (process.env.DISABLE_TELEMETRY === "true") {
9
+ return false;
10
+ }
11
+ return process.env.TWICK_TELEMETRY_ENABLED === "true";
12
+ }
13
+ function getTelemetryClient() {
14
+ if (!isTelemetryEnabled()) return null;
15
+ if (client) return client;
16
+ const apiKey = process.env.TWICK_TELEMETRY_API_KEY;
17
+ if (!apiKey) return null;
18
+ client = new PostHog(apiKey, {
19
+ host: process.env.TWICK_TELEMETRY_HOST || "https://eu.posthog.com"
20
+ });
21
+ return client;
22
+ }
9
23
  process.on("beforeExit", async () => {
10
- await Client.shutdown();
24
+ await client?.shutdown();
11
25
  });
12
26
  var EventName = /* @__PURE__ */ ((EventName2) => {
13
27
  EventName2["RenderStarted"] = "twick-render-started";
@@ -42,15 +56,14 @@ async function getDistinctId() {
42
56
  }
43
57
  }
44
58
  async function sendEvent(eventName, eventProperties = {}) {
45
- if (process.env.DISABLE_TELEMETRY === "true") {
46
- return;
47
- }
59
+ const telemetryClient = getTelemetryClient();
60
+ if (!telemetryClient) return;
48
61
  try {
49
62
  const [version, distinctId] = await Promise.all([
50
63
  getCurrentVersion(),
51
64
  getDistinctId()
52
65
  ]);
53
- Client.capture({
66
+ telemetryClient.capture({
54
67
  distinctId,
55
68
  event: eventName,
56
69
  properties: {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {PostHog} from 'posthog-node';\n\nconst Client = new PostHog('phc_XaPky8YDbZjqm4GkCWBsVmICZTOTgjascrsftSOoJUJ', {\n host: 'https://eu.posthog.com',\n});\n\nprocess.on('beforeExit', async () => {\n await Client.shutdown();\n});\n\nexport enum EventName {\n RenderStarted = 'twick-render-started',\n ServerStarted = 'twick-server-started',\n CLICommand = 'twick-cli-command',\n CreateCommand = 'twick-create-command',\n Error = 'twick-error',\n}\n\nasync function getCurrentVersion() {\n try {\n const packageData = JSON.parse(\n // Relative to this file: ../package.json\n await fs.promises.readFile(\n path.resolve(__dirname, '../package.json'),\n 'utf-8',\n ),\n );\n\n return packageData.version;\n } catch (e) {\n return 'ERROR';\n }\n}\n\nasync function getDistinctId() {\n try {\n return await fs.promises.readFile(\n path.resolve(os.homedir(), '.twick/id.txt'),\n 'utf-8',\n );\n } catch (e) {\n return 'anonymous-user';\n }\n}\n\nexport async function sendEvent(\n eventName: EventName,\n eventProperties: object = {},\n) {\n if (process.env.DISABLE_TELEMETRY === 'true') {\n return;\n }\n\n try {\n const [version, distinctId] = await Promise.all([\n getCurrentVersion(),\n getDistinctId(),\n ]);\n\n Client.capture({\n distinctId,\n event: eventName,\n properties: {\n version,\n ...eventProperties,\n },\n });\n } catch (e) {\n // No-op\n }\n}\n"],"mappings":";AAAA,OAAO,QAAQ;AACf,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAQ,eAAc;AAEtB,IAAM,SAAS,IAAI,QAAQ,mDAAmD;AAAA,EAC5E,MAAM;AACR,CAAC;AAED,QAAQ,GAAG,cAAc,YAAY;AACnC,QAAM,OAAO,SAAS;AACxB,CAAC;AAEM,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,gBAAa;AACb,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,WAAQ;AALE,SAAAA;AAAA,GAAA;AAQZ,eAAe,oBAAoB;AACjC,MAAI;AACF,UAAM,cAAc,KAAK;AAAA;AAAA,MAEvB,MAAM,GAAG,SAAS;AAAA,QAChB,KAAK,QAAQ,WAAW,iBAAiB;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAEA,WAAO,YAAY;AAAA,EACrB,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEA,eAAe,gBAAgB;AAC7B,MAAI;AACF,WAAO,MAAM,GAAG,SAAS;AAAA,MACvB,KAAK,QAAQ,GAAG,QAAQ,GAAG,eAAe;AAAA,MAC1C;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,UACpB,WACA,kBAA0B,CAAC,GAC3B;AACA,MAAI,QAAQ,IAAI,sBAAsB,QAAQ;AAC5C;AAAA,EACF;AAEA,MAAI;AACF,UAAM,CAAC,SAAS,UAAU,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC9C,kBAAkB;AAAA,MAClB,cAAc;AAAA,IAChB,CAAC;AAED,WAAO,QAAQ;AAAA,MACb;AAAA,MACA,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,QACA,GAAG;AAAA,MACL;AAAA,IACF,CAAC;AAAA,EACH,SAAS,GAAG;AAAA,EAEZ;AACF;","names":["EventName"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {PostHog} from 'posthog-node';\n\nlet client: PostHog | null = null;\n\nfunction isTelemetryEnabled(): boolean {\n if (process.env.DISABLE_TELEMETRY === 'true') {\n return false;\n }\n return process.env.TWICK_TELEMETRY_ENABLED === 'true';\n}\n\nfunction getTelemetryClient(): PostHog | null {\n if (!isTelemetryEnabled()) return null;\n if (client) return client;\n\n const apiKey = process.env.TWICK_TELEMETRY_API_KEY;\n if (!apiKey) return null;\n\n client = new PostHog(apiKey, {\n host: process.env.TWICK_TELEMETRY_HOST || 'https://eu.posthog.com',\n });\n return client;\n}\n\nprocess.on('beforeExit', async () => {\n await client?.shutdown();\n});\n\nexport enum EventName {\n RenderStarted = 'twick-render-started',\n ServerStarted = 'twick-server-started',\n CLICommand = 'twick-cli-command',\n CreateCommand = 'twick-create-command',\n Error = 'twick-error',\n}\n\nasync function getCurrentVersion() {\n try {\n const packageData = JSON.parse(\n // Relative to this file: ../package.json\n await fs.promises.readFile(\n path.resolve(__dirname, '../package.json'),\n 'utf-8',\n ),\n );\n\n return packageData.version;\n } catch (e) {\n return 'ERROR';\n }\n}\n\nasync function getDistinctId() {\n try {\n return await fs.promises.readFile(\n path.resolve(os.homedir(), '.twick/id.txt'),\n 'utf-8',\n );\n } catch (e) {\n return 'anonymous-user';\n }\n}\n\nexport async function sendEvent(\n eventName: EventName,\n eventProperties: object = {},\n) {\n const telemetryClient = getTelemetryClient();\n if (!telemetryClient) return;\n\n try {\n const [version, distinctId] = await Promise.all([\n getCurrentVersion(),\n getDistinctId(),\n ]);\n\n telemetryClient.capture({\n distinctId,\n event: eventName,\n properties: {\n version,\n ...eventProperties,\n },\n });\n } catch (e) {\n // No-op\n }\n}\n"],"mappings":";AAAA,OAAO,QAAQ;AACf,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAQ,eAAc;AAEtB,IAAI,SAAyB;AAE7B,SAAS,qBAA8B;AACrC,MAAI,QAAQ,IAAI,sBAAsB,QAAQ;AAC5C,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,IAAI,4BAA4B;AACjD;AAEA,SAAS,qBAAqC;AAC5C,MAAI,CAAC,mBAAmB,EAAG,QAAO;AAClC,MAAI,OAAQ,QAAO;AAEnB,QAAM,SAAS,QAAQ,IAAI;AAC3B,MAAI,CAAC,OAAQ,QAAO;AAEpB,WAAS,IAAI,QAAQ,QAAQ;AAAA,IAC3B,MAAM,QAAQ,IAAI,wBAAwB;AAAA,EAC5C,CAAC;AACD,SAAO;AACT;AAEA,QAAQ,GAAG,cAAc,YAAY;AACnC,QAAM,QAAQ,SAAS;AACzB,CAAC;AAEM,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,gBAAa;AACb,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,WAAQ;AALE,SAAAA;AAAA,GAAA;AAQZ,eAAe,oBAAoB;AACjC,MAAI;AACF,UAAM,cAAc,KAAK;AAAA;AAAA,MAEvB,MAAM,GAAG,SAAS;AAAA,QAChB,KAAK,QAAQ,WAAW,iBAAiB;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAEA,WAAO,YAAY;AAAA,EACrB,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEA,eAAe,gBAAgB;AAC7B,MAAI;AACF,WAAO,MAAM,GAAG,SAAS;AAAA,MACvB,KAAK,QAAQ,GAAG,QAAQ,GAAG,eAAe;AAAA,MAC1C;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,UACpB,WACA,kBAA0B,CAAC,GAC3B;AACA,QAAM,kBAAkB,mBAAmB;AAC3C,MAAI,CAAC,gBAAiB;AAEtB,MAAI;AACF,UAAM,CAAC,SAAS,UAAU,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC9C,kBAAkB;AAAA,MAClB,cAAc;AAAA,IAChB,CAAC;AAED,oBAAgB,QAAQ;AAAA,MACtB;AAAA,MACA,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,QACA,GAAG;AAAA,MACL;AAAA,IACF,CAAC;AAAA,EACH,SAAS,GAAG;AAAA,EAEZ;AACF;","names":["EventName"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twick/telemetry",
3
- "version": "0.15.20",
3
+ "version": "0.15.21",
4
4
  "description": "Telemetry for Twick. Check the documentation to learn how to disable it.",
5
5
  "author": "twick",
6
6
  "license": "MIT",
@@ -39,5 +39,5 @@
39
39
  },
40
40
  "homepage": "https://twick.base/",
41
41
  "bugs": "https://github.com/ncounterspecialist/twick-base/issues",
42
- "gitHead": "fc5044b6e5a5b3ebbc2c02c909c55602e0d15d95"
42
+ "gitHead": "3712f98914034fa4c1807feeba7a9cbf7b3b45cc"
43
43
  }
package/src/index.ts CHANGED
@@ -3,12 +3,30 @@ import os from 'os';
3
3
  import path from 'path';
4
4
  import {PostHog} from 'posthog-node';
5
5
 
6
- const Client = new PostHog('phc_XaPky8YDbZjqm4GkCWBsVmICZTOTgjascrsftSOoJUJ', {
7
- host: 'https://eu.posthog.com',
8
- });
6
+ let client: PostHog | null = null;
7
+
8
+ function isTelemetryEnabled(): boolean {
9
+ if (process.env.DISABLE_TELEMETRY === 'true') {
10
+ return false;
11
+ }
12
+ return process.env.TWICK_TELEMETRY_ENABLED === 'true';
13
+ }
14
+
15
+ function getTelemetryClient(): PostHog | null {
16
+ if (!isTelemetryEnabled()) return null;
17
+ if (client) return client;
18
+
19
+ const apiKey = process.env.TWICK_TELEMETRY_API_KEY;
20
+ if (!apiKey) return null;
21
+
22
+ client = new PostHog(apiKey, {
23
+ host: process.env.TWICK_TELEMETRY_HOST || 'https://eu.posthog.com',
24
+ });
25
+ return client;
26
+ }
9
27
 
10
28
  process.on('beforeExit', async () => {
11
- await Client.shutdown();
29
+ await client?.shutdown();
12
30
  });
13
31
 
14
32
  export enum EventName {
@@ -50,9 +68,8 @@ export async function sendEvent(
50
68
  eventName: EventName,
51
69
  eventProperties: object = {},
52
70
  ) {
53
- if (process.env.DISABLE_TELEMETRY === 'true') {
54
- return;
55
- }
71
+ const telemetryClient = getTelemetryClient();
72
+ if (!telemetryClient) return;
56
73
 
57
74
  try {
58
75
  const [version, distinctId] = await Promise.all([
@@ -60,7 +77,7 @@ export async function sendEvent(
60
77
  getDistinctId(),
61
78
  ]);
62
79
 
63
- Client.capture({
80
+ telemetryClient.capture({
64
81
  distinctId,
65
82
  event: eventName,
66
83
  properties: {
@@ -15,6 +15,16 @@ const idPath = path.resolve(os.homedir(), '.twick/id.txt');
15
15
  const outputDirectory = path.dirname(idPath);
16
16
 
17
17
  function Run() {
18
+ if (process.env.DISABLE_TELEMETRY === 'true') {
19
+ return;
20
+ }
21
+ if (process.env.TWICK_TELEMETRY_NO_ID_FILE === 'true') {
22
+ return;
23
+ }
24
+ if (process.env.TWICK_TELEMETRY_ENABLED !== 'true') {
25
+ return;
26
+ }
27
+
18
28
  if (fs.existsSync(idPath)) {
19
29
  return;
20
30
  }