mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
feat: add package lifecycle operations
This commit is contained in:
@@ -1,2 +1 @@
|
||||
export { createPackageOperations } from './package'
|
||||
export type { PackageOperations } from './package'
|
||||
export * from './package'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user