feat: add package lifecycle operations

This commit is contained in:
2025-12-27 18:39:27 +00:00
parent cadaa8c5fe
commit c0f1b5af14
5 changed files with 36 additions and 2 deletions

View File

@@ -1,2 +1 @@
export { createPackageOperations } from './package'
export type { PackageOperations } from './package'
export * from './package'

View File

@@ -2,9 +2,15 @@ import type { DBALAdapter } from '../../../../adapters/adapter'
import type { Package, ListOptions, ListResult } from '../../../../foundation/types'
import { createManyPackages, deleteManyPackages, updateManyPackages } from './batch'
import { createPackage, deletePackage, updatePackage } from './mutations'
import { publishPackage } from './publish'
import { listPackages, readPackage } from './reads'
import { unpublishPackage } from './unpublish'
import { validatePackage } from './validate'
export interface PackageOperations {
validate: (data: Partial<Package>) => string[]
publish: (data: Omit<Package, 'id' | 'createdAt' | 'updatedAt'>) => Promise<Package>
unpublish: (id: string) => Promise<boolean>
create: (data: Omit<Package, 'id' | 'createdAt' | 'updatedAt'>) => Promise<Package>
read: (id: string) => Promise<Package | null>
update: (id: string, data: Partial<Package>) => Promise<Package>
@@ -16,6 +22,9 @@ export interface PackageOperations {
}
export const createPackageOperations = (adapter: DBALAdapter): PackageOperations => ({
validate: data => validatePackage(data),
publish: data => publishPackage(adapter, data),
unpublish: id => unpublishPackage(adapter, id),
create: data => createPackage(adapter, data),
read: id => readPackage(adapter, id),
update: (id, data) => updatePackage(adapter, id, data),
@@ -25,3 +34,7 @@ export const createPackageOperations = (adapter: DBALAdapter): PackageOperations
updateMany: (filter, data) => updateManyPackages(adapter, filter, data),
deleteMany: filter => deleteManyPackages(adapter, filter),
})
export { publishPackage } from './publish'
export { unpublishPackage } from './unpublish'
export { validatePackage } from './validate'

View File

@@ -0,0 +1,10 @@
import type { DBALAdapter } from '../../../../adapters/adapter'
import type { Package } from '../../../../foundation/types'
import { createPackage } from './mutations'
export const publishPackage = (
adapter: DBALAdapter,
data: Omit<Package, 'id' | 'createdAt' | 'updatedAt'>,
): Promise<Package> => {
return createPackage(adapter, data)
}

View File

@@ -0,0 +1,6 @@
import type { DBALAdapter } from '../../../../adapters/adapter'
import { deletePackage } from './mutations'
export const unpublishPackage = (adapter: DBALAdapter, id: string): Promise<boolean> => {
return deletePackage(adapter, id)
}

View File

@@ -0,0 +1,6 @@
import type { Package } from '../../../../foundation/types'
import { validatePackageCreate } from '../../../../foundation/validation'
export const validatePackage = (data: Partial<Package>): string[] => {
return validatePackageCreate(data)
}