diff --git a/plugins/permission-node/api-report.md b/plugins/permission-node/api-report.md index 9fda5cfd96..5d2966ec73 100644 --- a/plugins/permission-node/api-report.md +++ b/plugins/permission-node/api-report.md @@ -137,7 +137,9 @@ export type CreatePermissionIntegrationRouterResourceOptions< resourceType: TResourceType; permissions?: Array; rules: PermissionRule>[]; - getResources?: GetResourcesFn; + getResources?: ( + resourceRefs: string[], + ) => Promise>; }; // @public @@ -150,11 +152,6 @@ export const createPermissionRule: < rule: PermissionRule, ) => PermissionRule; -// @public -export type GetResourcesFn = ( - resourceRefs: string[], -) => Promise>; - // @alpha export const isAndCriteria: ( criteria: PermissionCriteria, diff --git a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts index 577267b161..8b918cabb2 100644 --- a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts +++ b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts @@ -24,7 +24,7 @@ import request, { Response } from 'supertest'; import { z } from 'zod'; import { createPermissionIntegrationRouter, - GetResourcesFn, + CreatePermissionIntegrationRouterResourceOptions, } from './createPermissionIntegrationRouter'; import { createPermissionRule } from './createPermissionRule'; @@ -53,8 +53,11 @@ const testRule2 = createPermissionRule({ toQuery: () => ({}), }); -const defaultMockedGetResources: GetResourcesFn<{ id: string }> = jest.fn( - async resourceRefs => resourceRefs.map(resourceRef => ({ id: resourceRef })), +const defaultMockedGetResources: CreatePermissionIntegrationRouterResourceOptions< + string, + { id: string } +>['getResources'] = jest.fn(async resourceRefs => + resourceRefs.map(resourceRef => ({ id: resourceRef })), ); const createApp = ( @@ -415,8 +418,11 @@ describe('createPermissionIntegrationRouter', () => { }); it('returns 200/DENY when resource is not found', async () => { - const mockedGetResources: GetResourcesFn<{ id: string }> = jest.fn( - async resourceRefs => resourceRefs.map(() => undefined), + const mockedGetResources: CreatePermissionIntegrationRouterResourceOptions< + string, + { id: string } + >['getResources'] = jest.fn(async resourceRefs => + resourceRefs.map(() => undefined), ); const response = await request(createApp(mockedGetResources)) @@ -448,13 +454,15 @@ describe('createPermissionIntegrationRouter', () => { }); it('interleaves responses for present and missing resources', async () => { - const mockedGetResources: GetResourcesFn<{ id: string }> = jest.fn( - async resourceRefs => - resourceRefs.map(resourceRef => - resourceRef === 'default:test/missing-resource' - ? undefined - : { id: resourceRef }, - ), + const mockedGetResources: CreatePermissionIntegrationRouterResourceOptions< + string, + { id: string } + >['getResources'] = jest.fn(async resourceRefs => + resourceRefs.map(resourceRef => + resourceRef === 'default:test/missing-resource' + ? undefined + : { id: resourceRef }, + ), ); const response = await request(createApp(mockedGetResources)) diff --git a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts index f78fea6ea6..715b1ec574 100644 --- a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts +++ b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts @@ -126,16 +126,6 @@ export type MetadataResponse = { rules: MetadataResponseSerializedRule[]; }; -/** - * Function type for returning an array of resources - * matching the given resourceRefs. - * - * @public - */ -export type GetResourcesFn = ( - resourceRefs: string[], -) => Promise>; - const applyConditions = ( criteria: PermissionCriteria>, resource: TResource | undefined, @@ -187,7 +177,9 @@ export type CreatePermissionIntegrationRouterResourceOptions< // consider any rules whose resource type does not match // to be an error. rules: PermissionRule>[]; - getResources?: GetResourcesFn; + getResources?: ( + resourceRefs: string[], + ) => Promise>; }; /**