@reckona/mreact-devtools 0.0.138 → 0.0.139

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.d.ts CHANGED
@@ -15,11 +15,14 @@ export interface Devtools {
15
15
  events(): DevtoolsEvent[];
16
16
  subscribe(listener: DevtoolsListener): () => void;
17
17
  }
18
+ export interface InstallDevtoolsOptions {
19
+ force?: boolean | undefined;
20
+ }
18
21
  declare global {
19
22
  var __mreactDevtools: Devtools | undefined;
20
23
  }
21
24
  export declare function createDevtools(options?: CreateDevtoolsOptions): Devtools;
22
- export declare function installDevtools(devtools?: Devtools): Devtools;
25
+ export declare function installDevtools(devtools?: Devtools, options?: InstallDevtoolsOptions): Devtools;
23
26
  export declare function getInstalledDevtools(): Devtools | undefined;
24
27
  export declare function emitMreactDevtoolsEvent(packageName: string, event: {
25
28
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAE9D,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,IAAI,IAAI,CAAC;IAChB,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,MAAM,IAAI,aAAa,EAAE,CAAC;IAC1B,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;CACnD;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,gBAAgB,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC5C;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,QAAQ,CAoC5E;AAUD,wBAAgB,eAAe,CAAC,QAAQ,GAAE,QAA2B,GAAG,QAAQ,CAI/E;AAED,wBAAgB,oBAAoB,IAAI,QAAQ,GAAG,SAAS,CAE3D;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChD,IAAI,CAMN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAE9D,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,IAAI,IAAI,CAAC;IAChB,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,MAAM,IAAI,aAAa,EAAE,CAAC;IAC1B,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,gBAAgB,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC5C;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,QAAQ,CAoC5E;AAUD,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,QAA2B,EACrC,OAAO,GAAE,sBAA2B,GACnC,QAAQ,CAQV;AAQD,wBAAgB,oBAAoB,IAAI,QAAQ,GAAG,SAAS,CAE3D;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChD,IAAI,CAMN"}
package/dist/index.js CHANGED
@@ -39,10 +39,16 @@ function normalizeMaxEvents(maxEvents) {
39
39
  }
40
40
  return Math.max(0, Math.floor(maxEvents));
41
41
  }
42
- export function installDevtools(devtools = createDevtools()) {
42
+ export function installDevtools(devtools = createDevtools(), options = {}) {
43
+ if (options.force !== true && currentNodeEnv() === "production") {
44
+ return devtools;
45
+ }
43
46
  globalThis.__mreactDevtools = devtools;
44
47
  return devtools;
45
48
  }
49
+ function currentNodeEnv() {
50
+ return globalThis.process?.env?.NODE_ENV;
51
+ }
46
52
  export function getInstalledDevtools() {
47
53
  return globalThis.__mreactDevtools;
48
54
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAkB9C,MAAM,UAAU,cAAc,CAAC,UAAiC,EAAE;IAChE,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE9C,OAAO;QACL,OAAO;YACL,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBACzC,UAAU,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK;YACR,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,MAAM;YACJ,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;QACvB,CAAC;QACD,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAExB,OAAO,GAAG,EAAE;gBACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA6B;IACvD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAqB,cAAc,EAAE;IACnE,UAAU,CAAC,gBAAgB,GAAG,QAAQ,CAAC;IAEvC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,UAAU,CAAC,gBAAgB,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,KAAiD;IAEjD,UAAU,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAClC,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC","sourcesContent":["export interface DevtoolsEvent {\n package: string;\n timestamp?: number;\n type: string;\n [key: string]: unknown;\n}\n\nexport type DevtoolsListener = (event: DevtoolsEvent) => void;\n\nexport const defaultDevtoolsMaxEvents = 1_000;\n\nexport interface CreateDevtoolsOptions {\n maxEvents?: number | undefined;\n}\n\nexport interface Devtools {\n dispose(): void;\n emit(event: DevtoolsEvent): void;\n events(): DevtoolsEvent[];\n subscribe(listener: DevtoolsListener): () => void;\n}\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __mreactDevtools: Devtools | undefined;\n}\n\nexport function createDevtools(options: CreateDevtoolsOptions = {}): Devtools {\n const maxEvents = normalizeMaxEvents(options.maxEvents);\n const recorded: DevtoolsEvent[] = [];\n const listeners = new Set<DevtoolsListener>();\n\n return {\n dispose() {\n listeners.clear();\n recorded.length = 0;\n if (globalThis.__mreactDevtools === this) {\n globalThis.__mreactDevtools = undefined;\n }\n },\n emit(event) {\n if (maxEvents > 0) {\n recorded.push(event);\n if (recorded.length > maxEvents) {\n recorded.splice(0, recorded.length - maxEvents);\n }\n }\n\n for (const listener of Array.from(listeners)) {\n listener(event);\n }\n },\n events() {\n return [...recorded];\n },\n subscribe(listener) {\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\nfunction normalizeMaxEvents(maxEvents: number | undefined): number {\n if (maxEvents === undefined) {\n return defaultDevtoolsMaxEvents;\n }\n\n return Math.max(0, Math.floor(maxEvents));\n}\n\nexport function installDevtools(devtools: Devtools = createDevtools()): Devtools {\n globalThis.__mreactDevtools = devtools;\n\n return devtools;\n}\n\nexport function getInstalledDevtools(): Devtools | undefined {\n return globalThis.__mreactDevtools;\n}\n\nexport function emitMreactDevtoolsEvent(\n packageName: string,\n event: { type: string } & Record<string, unknown>,\n): void {\n globalThis.__mreactDevtools?.emit?.({\n package: packageName,\n timestamp: Date.now(),\n ...event,\n });\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAsB9C,MAAM,UAAU,cAAc,CAAC,UAAiC,EAAE;IAChE,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE9C,OAAO;QACL,OAAO;YACL,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBACzC,UAAU,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK;YACR,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,MAAM;YACJ,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;QACvB,CAAC;QACD,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAExB,OAAO,GAAG,EAAE;gBACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA6B;IACvD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,WAAqB,cAAc,EAAE,EACrC,UAAkC,EAAE;IAEpC,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,cAAc,EAAE,KAAK,YAAY,EAAE,CAAC;QAChE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,gBAAgB,GAAG,QAAQ,CAAC;IAEvC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc;IACrB,OAAQ,UAEN,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,UAAU,CAAC,gBAAgB,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,KAAiD;IAEjD,UAAU,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAClC,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC","sourcesContent":["export interface DevtoolsEvent {\n package: string;\n timestamp?: number;\n type: string;\n [key: string]: unknown;\n}\n\nexport type DevtoolsListener = (event: DevtoolsEvent) => void;\n\nexport const defaultDevtoolsMaxEvents = 1_000;\n\nexport interface CreateDevtoolsOptions {\n maxEvents?: number | undefined;\n}\n\nexport interface Devtools {\n dispose(): void;\n emit(event: DevtoolsEvent): void;\n events(): DevtoolsEvent[];\n subscribe(listener: DevtoolsListener): () => void;\n}\n\nexport interface InstallDevtoolsOptions {\n force?: boolean | undefined;\n}\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __mreactDevtools: Devtools | undefined;\n}\n\nexport function createDevtools(options: CreateDevtoolsOptions = {}): Devtools {\n const maxEvents = normalizeMaxEvents(options.maxEvents);\n const recorded: DevtoolsEvent[] = [];\n const listeners = new Set<DevtoolsListener>();\n\n return {\n dispose() {\n listeners.clear();\n recorded.length = 0;\n if (globalThis.__mreactDevtools === this) {\n globalThis.__mreactDevtools = undefined;\n }\n },\n emit(event) {\n if (maxEvents > 0) {\n recorded.push(event);\n if (recorded.length > maxEvents) {\n recorded.splice(0, recorded.length - maxEvents);\n }\n }\n\n for (const listener of Array.from(listeners)) {\n listener(event);\n }\n },\n events() {\n return [...recorded];\n },\n subscribe(listener) {\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\nfunction normalizeMaxEvents(maxEvents: number | undefined): number {\n if (maxEvents === undefined) {\n return defaultDevtoolsMaxEvents;\n }\n\n return Math.max(0, Math.floor(maxEvents));\n}\n\nexport function installDevtools(\n devtools: Devtools = createDevtools(),\n options: InstallDevtoolsOptions = {},\n): Devtools {\n if (options.force !== true && currentNodeEnv() === \"production\") {\n return devtools;\n }\n\n globalThis.__mreactDevtools = devtools;\n\n return devtools;\n}\n\nfunction currentNodeEnv(): string | undefined {\n return (globalThis as {\n process?: { env?: { NODE_ENV?: string | undefined } | undefined } | undefined;\n }).process?.env?.NODE_ENV;\n}\n\nexport function getInstalledDevtools(): Devtools | undefined {\n return globalThis.__mreactDevtools;\n}\n\nexport function emitMreactDevtoolsEvent(\n packageName: string,\n event: { type: string } & Record<string, unknown>,\n): void {\n globalThis.__mreactDevtools?.emit?.({\n package: packageName,\n timestamp: Date.now(),\n ...event,\n });\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reckona/mreact-devtools",
3
- "version": "0.0.138",
3
+ "version": "0.0.139",
4
4
  "description": "Runtime event bridge for mreact developer tooling.",
5
5
  "keywords": [
6
6
  "debugging",
package/src/index.ts CHANGED
@@ -20,6 +20,10 @@ export interface Devtools {
20
20
  subscribe(listener: DevtoolsListener): () => void;
21
21
  }
22
22
 
23
+ export interface InstallDevtoolsOptions {
24
+ force?: boolean | undefined;
25
+ }
26
+
23
27
  declare global {
24
28
  // eslint-disable-next-line no-var
25
29
  var __mreactDevtools: Devtools | undefined;
@@ -71,12 +75,25 @@ function normalizeMaxEvents(maxEvents: number | undefined): number {
71
75
  return Math.max(0, Math.floor(maxEvents));
72
76
  }
73
77
 
74
- export function installDevtools(devtools: Devtools = createDevtools()): Devtools {
78
+ export function installDevtools(
79
+ devtools: Devtools = createDevtools(),
80
+ options: InstallDevtoolsOptions = {},
81
+ ): Devtools {
82
+ if (options.force !== true && currentNodeEnv() === "production") {
83
+ return devtools;
84
+ }
85
+
75
86
  globalThis.__mreactDevtools = devtools;
76
87
 
77
88
  return devtools;
78
89
  }
79
90
 
91
+ function currentNodeEnv(): string | undefined {
92
+ return (globalThis as {
93
+ process?: { env?: { NODE_ENV?: string | undefined } | undefined } | undefined;
94
+ }).process?.env?.NODE_ENV;
95
+ }
96
+
80
97
  export function getInstalledDevtools(): Devtools | undefined {
81
98
  return globalThis.__mreactDevtools;
82
99
  }