Skip to content

Commit 9f9e39e

Browse files
committed
Merged PR 209427: Support accessTokenProvider hook - Release version 2.19.0
1 parent 054c79f commit 9f9e39e

File tree

7 files changed

+65
-25
lines changed

7 files changed

+65
-25
lines changed

dist/powerbi-client.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// powerbi-client v2.18.7
1+
// powerbi-client v2.19.0
22
// Copyright (c) Microsoft Corporation.
33
// Licensed under the MIT License.
44
declare module "config" {

dist/powerbi.js

+38-17
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/powerbi.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "powerbi-client",
3-
"version": "2.18.7",
3+
"version": "2.19.0",
44
"description": "JavaScript library for embedding Power BI into your apps. Provides service which makes it easy to embed different types of components and an object model which allows easy interaction with these components such as changing pages, applying filters, and responding to data selection.",
55
"main": "dist/powerbi.js",
66
"types": "dist/powerbi-client.d.ts",
@@ -81,7 +81,7 @@
8181
},
8282
"dependencies": {
8383
"http-post-message": "^0.2",
84-
"powerbi-models": "^1.9.7",
84+
"powerbi-models": "^1.9.8",
8585
"powerbi-router": "^0.1",
8686
"window-post-message-proxy": "^0.2"
8787
},

src/config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
/** @ignore *//** */
55
const config = {
6-
version: '2.18.7',
6+
version: '2.19.0',
77
type: 'js'
88
};
99

src/embed.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ export abstract class Embed {
564564
return;
565565
}
566566

567-
for (var key in eventHooks) {
567+
for (let key in eventHooks) {
568568
if (eventHooks.hasOwnProperty(key) && typeof eventHooks[key] !== 'function') {
569569
throw new Error(key + " must be a function");
570570
}
@@ -578,6 +578,13 @@ export abstract class Embed {
578578

579579
this.config.embedUrl = addParamToUrl(this.config.embedUrl, "registerQueryCallback", "true");
580580
}
581+
582+
const accessTokenProvider = eventHooks.accessTokenProvider;
583+
if (!!accessTokenProvider) {
584+
if (this.embedtype.toLowerCase() !== "report" || this.config.tokenType !== models.TokenType.Aad) {
585+
throw new Error("accessTokenProvider is only supported in report SaaS embed");
586+
}
587+
}
581588
}
582589

583590
/**

src/service.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,15 @@ export class Service implements IService {
175175
case "preQuery":
176176
req.body = req.body || {};
177177
req.body.report = embed;
178-
await this.invokeSDKHook(embed.eventHooks.applicationContextProvider, req, _res);
178+
await this.invokeSDKHook(embed.eventHooks?.applicationContextProvider, req, _res);
179179
break;
180+
181+
case "newAccessToken":
182+
req.body = req.body || {};
183+
req.body.report = embed;
184+
await this.invokeSDKHook(embed.eventHooks?.accessTokenProvider, req, _res);
185+
break;
186+
180187
default:
181188
break;
182189
}
@@ -571,6 +578,11 @@ export class Service implements IService {
571578
}
572579

573580
private async invokeSDKHook(hook: Function, req: IExtendedRequest, res: IExtendedResponse): Promise<void> {
581+
if (!hook) {
582+
res.send(404, null);
583+
return;
584+
}
585+
574586
try {
575587
let result = await hook(req.body);
576588
res.send(200, result);

0 commit comments

Comments
 (0)