ruch
Version:
Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.
36 lines (30 loc) • 1.05 kB
text/typescript
export const getPortTemplate = (domainName: string): string => {
const capitalizedName = domainName.charAt(0).toUpperCase() + domainName.slice(1);
return `import type { ${capitalizedName}Entity, ${capitalizedName}CreationData, ${capitalizedName}UpdateData } from '../entities/${capitalizedName}';
/**
* Port interface for ${capitalizedName} domain
* This interface defines the contract that adapters must implement
*/
export interface ${capitalizedName}Port {
/**
* Get all ${domainName} entities
*/
getAll(): Promise<${capitalizedName}Entity[]>;
/**
* Get a ${domainName} entity by ID
*/
getById(id: string): Promise<${capitalizedName}Entity>;
/**
* Create a new ${domainName} entity
*/
create(data: ${capitalizedName}CreationData): Promise<${capitalizedName}Entity>;
/**
* Update an existing ${domainName} entity
*/
update(id: string, data: ${capitalizedName}UpdateData): Promise<${capitalizedName}Entity>;
/**
* Delete a ${domainName} entity
*/
delete(id: string): Promise<void>;
}`;
};