import { parseIdentifier } from "@webiny/utils" ; import { getZeroPaddedVersionNumber } from "@webiny/api-page-builder/utils/zeroPaddedVersionNumber" ; interface BasePartitionKeyParams { tenant : string ; locale : string ; } const createBasePartitionKey = ( params ) : string => { const { tenant , locale } = params ; return `T#${ tenant }#L#${ locale }#PB#` ; } ; export interface PartitionKeyParams extends BasePartitionKeyParams { id : string ; } export const createPartitionKey = ( params ) : string => { const { id } = parseIdentifier ( params . id ) ; return `${ createBasePartitionKey ( params ) }P#${ id }` ; } ; export interface SortKeyParams { version : number ; } export const createSortKey = ( params ) : string => { return `REV#${ getZeroPaddedVersionNumber ( params . version ) }` ; } ; export const createPathPartitionKey = ( params ) : string => { return `${ createBasePartitionKey ( params ) }PATH` ; } ; export interface PathSortKeyParams { path : string ; } export const createPathSortKey = ( params ) : string => { return params . path ; } ; export const createPublishedSortKey = ( ) : string => { return "P" ; } ; export const createLatestSortKey = ( ) : string => { return "L" ; } ; export const createBasicType = ( ) : string => { return "pb.page" ; } ; export const createLatestType = ( ) : string => { return "pb.page.l" ; } ; export const createPublishedType = ( ) : string => { return "pb.page.p" ; } ; export const createPublishedPathType = ( ) : string => { return "pb.page.p.path" ; } ;