@webiny/api 0.0.0-unstable.9e825fd5fb → 0.0.0-unstable.ad3a7a4920

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/Benchmark.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Benchmark as BenchmarkInterface, BenchmarkEnableOnCallable, BenchmarkMeasurement, BenchmarkOutputCallable, BenchmarkRuns } from "./types";
1
+ import { Benchmark as BenchmarkInterface, BenchmarkEnableOnCallable, BenchmarkMeasurement, BenchmarkMeasureOptions, BenchmarkOutputCallable, BenchmarkRuns } from "./types";
2
2
  export declare class Benchmark implements BenchmarkInterface {
3
3
  readonly measurements: BenchmarkMeasurement[];
4
4
  private outputDone;
@@ -20,7 +20,7 @@ export declare class Benchmark implements BenchmarkInterface {
20
20
  * The first one is our built-in console.log output, which we want to be the last one executed - and we need to stop output if user wants to end it.
21
21
  */
22
22
  output(): Promise<void>;
23
- measure<T = any>(name: string, cb: () => Promise<T>): Promise<T>;
23
+ measure<T = any>(options: BenchmarkMeasureOptions | string, cb: () => Promise<T>): Promise<T>;
24
24
  private getIsAlreadyRunning;
25
25
  private startRunning;
26
26
  private endRunning;
package/Benchmark.js CHANGED
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.Benchmark = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _types = require("./types");
10
9
  var BenchmarkState;
11
10
  (function (BenchmarkState) {
12
11
  BenchmarkState["DISABLED"] = "disabled";
@@ -63,19 +62,22 @@ class Benchmark {
63
62
  }
64
63
  const callables = this.onOutputCallables.reverse();
65
64
  for (const cb of callables) {
66
- const result = await cb(this);
67
- if (result === _types.BenchmarkOutputCallableResponse.BREAK) {
65
+ const result = await cb({
66
+ benchmark: this,
67
+ stop: () => "stop"
68
+ });
69
+ if (result === "stop") {
68
70
  return;
69
71
  }
70
72
  }
71
73
  this.outputDone = true;
72
74
  }
73
- async measure(name, cb) {
75
+ async measure(options, cb) {
74
76
  const enabled = await this.getIsEnabled();
75
77
  if (!enabled) {
76
78
  return cb();
77
79
  }
78
- const measurement = this.startMeasurement(name);
80
+ const measurement = this.startMeasurement(options);
79
81
  const isAlreadyRunning = this.getIsAlreadyRunning();
80
82
  this.startRunning();
81
83
  try {
@@ -83,7 +85,7 @@ class Benchmark {
83
85
  } finally {
84
86
  const measurementEnded = this.stopMeasurement(measurement);
85
87
  this.measurements.push(measurementEnded);
86
- this.addRun(measurementEnded.name);
88
+ this.addRun(measurementEnded);
87
89
  /**
88
90
  * Only add to total time if this run is not a child of another run.
89
91
  * And then end running.
@@ -122,7 +124,8 @@ class Benchmark {
122
124
  addElapsed(measurement) {
123
125
  this.totalElapsed = this.totalElapsed + measurement.elapsed;
124
126
  }
125
- addRun(name) {
127
+ addRun(measurement) {
128
+ const name = `${measurement.category}#${measurement.name}`;
126
129
  if (!this.runs[name]) {
127
130
  this.runs[name] = 0;
128
131
  }
@@ -131,9 +134,12 @@ class Benchmark {
131
134
  setState(state) {
132
135
  this.state = state;
133
136
  }
134
- startMeasurement(name) {
137
+ startMeasurement(options) {
138
+ const name = typeof options === "string" ? options : options.name;
139
+ const category = typeof options === "string" ? "webiny" : options.category;
135
140
  return {
136
141
  name,
142
+ category,
137
143
  start: new Date(),
138
144
  memoryStart: process.memoryUsage().heapUsed
139
145
  };
@@ -144,6 +150,7 @@ class Benchmark {
144
150
  const elapsed = end.getTime() - measurement.start.getTime();
145
151
  return {
146
152
  name: measurement.name,
153
+ category: measurement.category,
147
154
  start: measurement.start,
148
155
  end,
149
156
  elapsed,
package/Benchmark.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["BenchmarkState","Benchmark","elapsed","totalElapsed","constructor","UNDETERMINED","onOutputCallables","push","console","log","measurements","enableOn","cb","enableOnCallables","onOutput","enable","setState","ENABLED","disable","DISABLED","output","outputDone","length","callables","reverse","result","BenchmarkOutputCallableResponse","BREAK","measure","name","enabled","getIsEnabled","measurement","startMeasurement","isAlreadyRunning","getIsAlreadyRunning","startRunning","measurementEnded","stopMeasurement","addRun","addElapsed","endRunning","state","runs","start","Date","memoryStart","process","memoryUsage","heapUsed","end","memoryEnd","getTime","memory"],"sources":["Benchmark.ts"],"sourcesContent":["import {\n Benchmark as BenchmarkInterface,\n BenchmarkEnableOnCallable,\n BenchmarkMeasurement,\n BenchmarkOutputCallable,\n BenchmarkOutputCallableResponse,\n BenchmarkRuns\n} from \"~/types\";\n\nenum BenchmarkState {\n DISABLED = \"disabled\",\n ENABLED = \"enabled\",\n UNDETERMINED = \"undetermined\"\n}\n\ninterface BenchmarkMeasurementStart extends Pick<BenchmarkMeasurement, \"name\" | \"start\"> {\n memoryStart: number;\n}\n\nexport class Benchmark implements BenchmarkInterface {\n public readonly measurements: BenchmarkMeasurement[] = [];\n\n private outputDone = false;\n private isAlreadyRunning = false;\n private totalElapsed = 0;\n public readonly runs: BenchmarkRuns = {};\n private readonly enableOnCallables: BenchmarkEnableOnCallable[] = [];\n private readonly onOutputCallables: BenchmarkOutputCallable[] = [];\n private state: BenchmarkState = BenchmarkState.UNDETERMINED;\n\n public get elapsed(): number {\n return this.totalElapsed;\n }\n\n public constructor() {\n /**\n * The default output is to the console.\n * This one is executed after all other user defined outputs.\n */\n this.onOutputCallables.push(async () => {\n console.log(`Benchmark total time elapsed: ${this.elapsed}ms`);\n console.log(\"Benchmark measurements:\");\n console.log(this.measurements);\n });\n }\n\n public enableOn(cb: BenchmarkEnableOnCallable): void {\n this.enableOnCallables.push(cb);\n }\n\n public onOutput(cb: BenchmarkOutputCallable): void {\n this.onOutputCallables.push(cb);\n }\n\n public enable(): void {\n this.setState(BenchmarkState.ENABLED);\n }\n\n public disable(): void {\n this.setState(BenchmarkState.DISABLED);\n }\n\n /**\n * When running the output, we need to reverse the callables array, so that the last one added is the first one executed.\n *\n * The first one is our built-in console.log output, which we want to be the last one executed - and we need to stop output if user wants to end it.\n */\n public async output(): Promise<void> {\n /**\n * No point in outputting more than once or if no measurements were made.\n */\n if (this.outputDone || this.measurements.length === 0) {\n return;\n }\n const callables = this.onOutputCallables.reverse();\n for (const cb of callables) {\n const result = await cb(this);\n if (result === BenchmarkOutputCallableResponse.BREAK) {\n return;\n }\n }\n this.outputDone = true;\n }\n\n public async measure<T = any>(name: string, cb: () => Promise<T>): Promise<T> {\n const enabled = await this.getIsEnabled();\n if (!enabled) {\n return cb();\n }\n const measurement = this.startMeasurement(name);\n const isAlreadyRunning = this.getIsAlreadyRunning();\n this.startRunning();\n try {\n return await cb();\n } finally {\n const measurementEnded = this.stopMeasurement(measurement);\n this.measurements.push(measurementEnded);\n this.addRun(measurementEnded.name);\n /**\n * Only add to total time if this run is not a child of another run.\n * And then end running.\n */\n if (!isAlreadyRunning) {\n this.addElapsed(measurementEnded);\n this.endRunning();\n }\n }\n }\n\n private getIsAlreadyRunning(): boolean {\n return this.isAlreadyRunning;\n }\n private startRunning(): void {\n this.isAlreadyRunning = true;\n }\n private endRunning(): void {\n this.isAlreadyRunning = false;\n }\n\n private async getIsEnabled(): Promise<boolean> {\n if (this.state === BenchmarkState.ENABLED) {\n return true;\n } else if (this.state === BenchmarkState.DISABLED) {\n return false;\n }\n\n for (const cb of this.enableOnCallables) {\n const result = await cb();\n if (result) {\n this.enable();\n return true;\n }\n }\n this.disable();\n return false;\n }\n\n private addElapsed(measurement: Pick<BenchmarkMeasurement, \"elapsed\">): void {\n this.totalElapsed = this.totalElapsed + measurement.elapsed;\n }\n\n private addRun(name: string): void {\n if (!this.runs[name]) {\n this.runs[name] = 0;\n }\n this.runs[name]++;\n }\n\n private setState(state: BenchmarkState): void {\n this.state = state;\n }\n\n private startMeasurement(name: string): BenchmarkMeasurementStart {\n return {\n name,\n start: new Date(),\n memoryStart: process.memoryUsage().heapUsed\n };\n }\n\n private stopMeasurement(measurement: BenchmarkMeasurementStart): BenchmarkMeasurement {\n const end = new Date();\n const memoryEnd = process.memoryUsage().heapUsed;\n const elapsed = end.getTime() - measurement.start.getTime();\n return {\n name: measurement.name,\n start: measurement.start,\n end,\n elapsed,\n memory: memoryEnd - measurement.memoryStart\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BenchmarkState","Benchmark","elapsed","totalElapsed","constructor","UNDETERMINED","onOutputCallables","push","console","log","measurements","enableOn","cb","enableOnCallables","onOutput","enable","setState","ENABLED","disable","DISABLED","output","outputDone","length","callables","reverse","result","benchmark","stop","measure","options","enabled","getIsEnabled","measurement","startMeasurement","isAlreadyRunning","getIsAlreadyRunning","startRunning","measurementEnded","stopMeasurement","addRun","addElapsed","endRunning","state","name","category","runs","start","Date","memoryStart","process","memoryUsage","heapUsed","end","memoryEnd","getTime","memory"],"sources":["Benchmark.ts"],"sourcesContent":["import {\n Benchmark as BenchmarkInterface,\n BenchmarkEnableOnCallable,\n BenchmarkMeasurement,\n BenchmarkMeasureOptions,\n BenchmarkOutputCallable,\n BenchmarkRuns\n} from \"~/types\";\n\nenum BenchmarkState {\n DISABLED = \"disabled\",\n ENABLED = \"enabled\",\n UNDETERMINED = \"undetermined\"\n}\n\ninterface BenchmarkMeasurementStart\n extends Pick<BenchmarkMeasurement, \"name\" | \"category\" | \"start\"> {\n memoryStart: number;\n}\n\nexport class Benchmark implements BenchmarkInterface {\n public readonly measurements: BenchmarkMeasurement[] = [];\n\n private outputDone = false;\n private isAlreadyRunning = false;\n private totalElapsed = 0;\n public readonly runs: BenchmarkRuns = {};\n private readonly enableOnCallables: BenchmarkEnableOnCallable[] = [];\n private readonly onOutputCallables: BenchmarkOutputCallable[] = [];\n private state: BenchmarkState = BenchmarkState.UNDETERMINED;\n\n public get elapsed(): number {\n return this.totalElapsed;\n }\n\n public constructor() {\n /**\n * The default output is to the console.\n * This one is executed after all other user defined outputs.\n */\n this.onOutputCallables.push(async () => {\n console.log(`Benchmark total time elapsed: ${this.elapsed}ms`);\n console.log(\"Benchmark measurements:\");\n console.log(this.measurements);\n });\n }\n\n public enableOn(cb: BenchmarkEnableOnCallable): void {\n this.enableOnCallables.push(cb);\n }\n\n public onOutput(cb: BenchmarkOutputCallable): void {\n this.onOutputCallables.push(cb);\n }\n\n public enable(): void {\n this.setState(BenchmarkState.ENABLED);\n }\n\n public disable(): void {\n this.setState(BenchmarkState.DISABLED);\n }\n\n /**\n * When running the output, we need to reverse the callables array, so that the last one added is the first one executed.\n *\n * The first one is our built-in console.log output, which we want to be the last one executed - and we need to stop output if user wants to end it.\n */\n public async output(): Promise<void> {\n /**\n * No point in outputting more than once or if no measurements were made.\n */\n if (this.outputDone || this.measurements.length === 0) {\n return;\n }\n const callables = this.onOutputCallables.reverse();\n for (const cb of callables) {\n const result = await cb({\n benchmark: this,\n stop: () => \"stop\"\n });\n if (result === \"stop\") {\n return;\n }\n }\n this.outputDone = true;\n }\n\n public async measure<T = any>(\n options: BenchmarkMeasureOptions | string,\n cb: () => Promise<T>\n ): Promise<T> {\n const enabled = await this.getIsEnabled();\n if (!enabled) {\n return cb();\n }\n const measurement = this.startMeasurement(options);\n const isAlreadyRunning = this.getIsAlreadyRunning();\n this.startRunning();\n try {\n return await cb();\n } finally {\n const measurementEnded = this.stopMeasurement(measurement);\n this.measurements.push(measurementEnded);\n this.addRun(measurementEnded);\n /**\n * Only add to total time if this run is not a child of another run.\n * And then end running.\n */\n if (!isAlreadyRunning) {\n this.addElapsed(measurementEnded);\n this.endRunning();\n }\n }\n }\n\n private getIsAlreadyRunning(): boolean {\n return this.isAlreadyRunning;\n }\n private startRunning(): void {\n this.isAlreadyRunning = true;\n }\n private endRunning(): void {\n this.isAlreadyRunning = false;\n }\n\n private async getIsEnabled(): Promise<boolean> {\n if (this.state === BenchmarkState.ENABLED) {\n return true;\n } else if (this.state === BenchmarkState.DISABLED) {\n return false;\n }\n\n for (const cb of this.enableOnCallables) {\n const result = await cb();\n if (result) {\n this.enable();\n return true;\n }\n }\n this.disable();\n return false;\n }\n\n private addElapsed(measurement: Pick<BenchmarkMeasurement, \"elapsed\">): void {\n this.totalElapsed = this.totalElapsed + measurement.elapsed;\n }\n\n private addRun(measurement: Pick<BenchmarkMeasurement, \"name\" | \"category\">): void {\n const name = `${measurement.category}#${measurement.name}`;\n if (!this.runs[name]) {\n this.runs[name] = 0;\n }\n this.runs[name]++;\n }\n\n private setState(state: BenchmarkState): void {\n this.state = state;\n }\n\n private startMeasurement(options: BenchmarkMeasureOptions | string): BenchmarkMeasurementStart {\n const name = typeof options === \"string\" ? options : options.name;\n const category = typeof options === \"string\" ? \"webiny\" : options.category;\n return {\n name,\n category,\n start: new Date(),\n memoryStart: process.memoryUsage().heapUsed\n };\n }\n\n private stopMeasurement(measurement: BenchmarkMeasurementStart): BenchmarkMeasurement {\n const end = new Date();\n const memoryEnd = process.memoryUsage().heapUsed;\n const elapsed = end.getTime() - measurement.start.getTime();\n return {\n name: measurement.name,\n category: measurement.category,\n start: measurement.start,\n end,\n elapsed,\n memory: memoryEnd - measurement.memoryStart\n };\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api",
3
- "version": "0.0.0-unstable.9e825fd5fb",
3
+ "version": "0.0.0-unstable.ad3a7a4920",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,15 +13,15 @@
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
15
  "@babel/runtime": "7.20.13",
16
- "@webiny/plugins": "0.0.0-unstable.9e825fd5fb"
16
+ "@webiny/plugins": "0.0.0-unstable.ad3a7a4920"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@babel/cli": "^7.19.3",
20
20
  "@babel/core": "^7.19.3",
21
21
  "@babel/preset-env": "^7.19.4",
22
22
  "@babel/preset-typescript": "^7.18.6",
23
- "@webiny/cli": "^0.0.0-unstable.9e825fd5fb",
24
- "@webiny/project-utils": "^0.0.0-unstable.9e825fd5fb",
23
+ "@webiny/cli": "^0.0.0-unstable.ad3a7a4920",
24
+ "@webiny/project-utils": "^0.0.0-unstable.ad3a7a4920",
25
25
  "rimraf": "^3.0.2",
26
26
  "ttypescript": "^1.5.13",
27
27
  "typescript": "4.7.4"
@@ -34,5 +34,5 @@
34
34
  "build": "yarn webiny run build",
35
35
  "watch": "yarn webiny run watch"
36
36
  },
37
- "gitHead": "9e825fd5fb3c021691acbaee6c5fd925f5f5de4d"
37
+ "gitHead": "ad3a7a492009155a589fde9ef4dc7c94af43c86e"
38
38
  }
package/types.d.ts CHANGED
@@ -4,6 +4,7 @@ export interface BenchmarkRuns {
4
4
  }
5
5
  export interface BenchmarkMeasurement {
6
6
  name: string;
7
+ category: string;
7
8
  start: Date;
8
9
  end: Date;
9
10
  elapsed: number;
@@ -12,11 +13,16 @@ export interface BenchmarkMeasurement {
12
13
  export interface BenchmarkEnableOnCallable {
13
14
  (): Promise<boolean>;
14
15
  }
15
- export declare enum BenchmarkOutputCallableResponse {
16
- BREAK = "break"
16
+ export interface BenchmarkOutputCallableParams {
17
+ benchmark: Benchmark;
18
+ stop: () => "stop";
17
19
  }
18
20
  export interface BenchmarkOutputCallable {
19
- (benchmark: Benchmark): Promise<BenchmarkOutputCallableResponse | undefined | null | void>;
21
+ (params: BenchmarkOutputCallableParams): Promise<"stop" | undefined | null | void>;
22
+ }
23
+ export interface BenchmarkMeasureOptions {
24
+ name: string;
25
+ category: string;
20
26
  }
21
27
  export interface Benchmark {
22
28
  elapsed: number;
@@ -25,7 +31,7 @@ export interface Benchmark {
25
31
  output: () => Promise<void>;
26
32
  onOutput: (cb: BenchmarkOutputCallable) => void;
27
33
  enableOn: (cb: BenchmarkEnableOnCallable) => void;
28
- measure: <T = any>(name: string, cb: () => Promise<T>) => Promise<T>;
34
+ measure: <T = any>(options: BenchmarkMeasureOptions | string, cb: () => Promise<T>) => Promise<T>;
29
35
  enable: () => void;
30
36
  disable: () => void;
31
37
  }
package/types.js CHANGED
@@ -2,10 +2,4 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
- });
6
- exports.BenchmarkOutputCallableResponse = void 0;
7
- let BenchmarkOutputCallableResponse;
8
- exports.BenchmarkOutputCallableResponse = BenchmarkOutputCallableResponse;
9
- (function (BenchmarkOutputCallableResponse) {
10
- BenchmarkOutputCallableResponse["BREAK"] = "break";
11
- })(BenchmarkOutputCallableResponse || (exports.BenchmarkOutputCallableResponse = BenchmarkOutputCallableResponse = {}));
5
+ });
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["BenchmarkOutputCallableResponse"],"sources":["types.ts"],"sourcesContent":["import { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface BenchmarkRuns {\n [key: string]: number;\n}\n\nexport interface BenchmarkMeasurement {\n name: string;\n start: Date;\n end: Date;\n elapsed: number;\n memory: number;\n}\n\nexport interface BenchmarkEnableOnCallable {\n (): Promise<boolean>;\n}\n\nexport enum BenchmarkOutputCallableResponse {\n BREAK = \"break\"\n}\n\nexport interface BenchmarkOutputCallable {\n (benchmark: Benchmark): Promise<BenchmarkOutputCallableResponse | undefined | null | void>;\n}\n\nexport interface Benchmark {\n elapsed: number;\n runs: BenchmarkRuns;\n measurements: BenchmarkMeasurement[];\n output: () => Promise<void>;\n onOutput: (cb: BenchmarkOutputCallable) => void;\n enableOn: (cb: BenchmarkEnableOnCallable) => void;\n measure: <T = any>(name: string, cb: () => Promise<T>) => Promise<T>;\n enable: () => void;\n disable: () => void;\n}\n\n/**\n * The main context which is constructed on every request.\n * All other contexts should extend or augment this one.\n */\nexport interface Context {\n plugins: PluginsContainer;\n args: any;\n readonly WEBINY_VERSION: string;\n /**\n * Not to be used outside of Webiny internal code.\n * @internal\n */\n hasResult: () => boolean;\n /**\n * Not to be used outside of Webiny internal code.\n * @internal\n *\n * @private\n */\n _result?: any;\n /**\n * Not to be used outside of Webiny internal code.\n * @internal\n */\n setResult: (value: any) => void;\n /**\n * Not to be used outside of Webiny internal code.\n * @internal\n */\n getResult: () => void;\n /**\n * Wait for property to be defined on the object and then execute the callable.\n * In case of multiple objects defined, wait for all of them.\n */\n waitFor: <T extends Context = Context>(\n obj: string[] | string,\n cb: (context: T) => void\n ) => void;\n\n benchmark: Benchmark;\n}\n"],"mappings":";;;;;;IAkBYA,+BAA+B;AAAA;AAAA,WAA/BA,+BAA+B;EAA/BA,+BAA+B;AAAA,GAA/BA,+BAA+B,+CAA/BA,+BAA+B"}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface BenchmarkRuns {\n [key: string]: number;\n}\n\nexport interface BenchmarkMeasurement {\n name: string;\n category: string;\n start: Date;\n end: Date;\n elapsed: number;\n memory: number;\n}\n\nexport interface BenchmarkEnableOnCallable {\n (): Promise<boolean>;\n}\n\nexport interface BenchmarkOutputCallableParams {\n benchmark: Benchmark;\n stop: () => \"stop\";\n}\nexport interface BenchmarkOutputCallable {\n (params: BenchmarkOutputCallableParams): Promise<\"stop\" | undefined | null | void>;\n}\nexport interface BenchmarkMeasureOptions {\n name: string;\n category: string;\n}\nexport interface Benchmark {\n elapsed: number;\n runs: BenchmarkRuns;\n measurements: BenchmarkMeasurement[];\n output: () => Promise<void>;\n onOutput: (cb: BenchmarkOutputCallable) => void;\n enableOn: (cb: BenchmarkEnableOnCallable) => void;\n measure: <T = any>(\n options: BenchmarkMeasureOptions | string,\n cb: () => Promise<T>\n ) => Promise<T>;\n enable: () => void;\n disable: () => void;\n}\n\n/**\n * The main context which is constructed on every request.\n * All other contexts should extend or augment this one.\n */\nexport interface Context {\n plugins: PluginsContainer;\n args: any;\n readonly WEBINY_VERSION: string;\n /**\n * Not to be used outside of Webiny internal code.\n * @internal\n */\n hasResult: () => boolean;\n /**\n * Not to be used outside of Webiny internal code.\n * @internal\n *\n * @private\n */\n _result?: any;\n /**\n * Not to be used outside of Webiny internal code.\n * @internal\n */\n setResult: (value: any) => void;\n /**\n * Not to be used outside of Webiny internal code.\n * @internal\n */\n getResult: () => void;\n /**\n * Wait for property to be defined on the object and then execute the callable.\n * In case of multiple objects defined, wait for all of them.\n */\n waitFor: <T extends Context = Context>(\n obj: string[] | string,\n cb: (context: T) => void\n ) => void;\n\n benchmark: Benchmark;\n}\n"],"mappings":""}