permission-node: add example to changeset

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
This commit is contained in:
Vincenzo Scamporlino
2023-04-12 11:45:03 +02:00
parent b947f4230d
commit 2c837e99a3
3 changed files with 83 additions and 72 deletions
+58 -70
View File
@@ -116,53 +116,6 @@ export const createConditionTransformer: <
permissionRules: [...TRules],
) => ConditionTransformer<TQuery>;
// @public
export function createPermissionIntegrationRouter<
TResourceType extends string,
TResource,
>(
options:
| CreatePermissionIntegrationRouterResourceOptions<TResourceType, TResource>
| {
resources: CreatePermissionIntegrationRouterResourceOptions<
TResourceType,
TResource
>;
},
): express.Router;
// @public
export function createPermissionIntegrationRouter(
options:
| {
permissions: Array<Permission>;
}
| {
resources: {
permissions: Array<Permission>;
};
},
): express.Router;
// @public
export function createPermissionIntegrationRouter<
TResourceType1 extends string,
TResource1,
TResourceType2 extends string,
TResource2,
>(options: {
resources: [
CreatePermissionIntegrationRouterResourceOptions<
TResourceType1,
TResource1
>,
CreatePermissionIntegrationRouterResourceOptions<
TResourceType2,
TResource2
>,
];
}): express.Router;
// @public
export function createPermissionIntegrationRouter<
TResourceType1 extends string,
@@ -171,22 +124,24 @@ export function createPermissionIntegrationRouter<
TResource2,
TResourceType3 extends string,
TResource3,
>(options: {
resources: [
CreatePermissionIntegrationRouterResourceOptions<
TResourceType1,
TResource1
>,
CreatePermissionIntegrationRouterResourceOptions<
TResourceType2,
TResource2
>,
CreatePermissionIntegrationRouterResourceOptions<
TResourceType3,
TResource3
>,
];
}): express.Router;
>(
options:
| {
permissions: Array<Permission>;
}
| CreatePermissionIntegrationRouterResourceOptions<
TResourceType1,
TResource1
>
| OptionResources<
TResourceType1,
TResource1,
TResourceType2,
TResource2,
TResourceType3,
TResource3
>,
): express.Router;
// @public
export type CreatePermissionIntegrationRouterResourceOptions<
@@ -250,13 +205,46 @@ export type MetadataResponseSerializedRule = {
};
// @public
export type OptionResources<TResourceType extends string, TResource> = {
resources:
| {
permissions: Array<Permission>;
}
| CreatePermissionIntegrationRouterResourceOptions<TResourceType, TResource>
| Array<CreatePermissionIntegrationRouterResourceOptions<string, any>>;
export type OptionResources<
TResourceType1 extends string = string,
TResource1 = any,
TResourceType2 extends string = string,
TResource2 = any,
TResourceType3 extends string = string,
TResource3 = any,
> = {
resources: Readonly<
| [
CreatePermissionIntegrationRouterResourceOptions<
TResourceType1,
TResource1
>,
]
| [
CreatePermissionIntegrationRouterResourceOptions<
TResourceType1,
TResource1
>,
CreatePermissionIntegrationRouterResourceOptions<
TResourceType2,
TResource2
>,
]
| [
CreatePermissionIntegrationRouterResourceOptions<
TResourceType1,
TResource1
>,
CreatePermissionIntegrationRouterResourceOptions<
TResourceType2,
TResource2
>,
CreatePermissionIntegrationRouterResourceOptions<
TResourceType3,
TResource3
>,
]
>;
};
// @public
@@ -207,6 +207,12 @@ export type CreatePermissionIntegrationRouterResourceOptions<
) => Promise<Array<TResource | undefined>>;
};
/**
* Options for creating a permission integration router exposing
* permissions and rules from multiple resource types.
*
* @public
*/
export type OptionResources<
TResourceType1 extends string = string,
TResource1 = any,