Publish twenty-cli npm package (#14871)

as title
This commit is contained in:
martmull
2025-10-03 15:08:06 +02:00
committed by GitHub
parent 0648dc5c65
commit f973a1bcdb
14 changed files with 235 additions and 45 deletions
@@ -6,12 +6,15 @@ import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorat
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
import { ApplicationSyncService } from 'src/engine/core-modules/application/application-sync.service';
import { ApplicationInput } from 'src/engine/core-modules/application/dtos/application.input';
import { DeleteApplicationInput } from 'src/engine/core-modules/application/dtos/deleteApplication.input';
import { ApplicationService } from 'src/engine/core-modules/application/application.service';
@UseGuards(WorkspaceAuthGuard)
@Resolver()
export class ApplicationResolver {
constructor(
private readonly applicationSyncService: ApplicationSyncService,
private readonly applicationService: ApplicationService,
) {}
@Mutation(() => Boolean)
@@ -28,4 +31,17 @@ export class ApplicationResolver {
return true;
}
@Mutation(() => Boolean)
async deleteApplication(
@Args() { packageJson }: DeleteApplicationInput,
@AuthWorkspace() { id: workspaceId }: Workspace,
) {
await this.applicationService.delete(
packageJson.universalIdentifier,
workspaceId,
);
return true;
}
}
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { isDefined } from 'twenty-shared/utils';
import { ApplicationEntity } from 'src/engine/core-modules/application/application.entity';
import { PackageJson } from 'src/engine/core-modules/application/types/application.types';
@@ -70,4 +71,20 @@ export class ApplicationService {
return updatedApplication;
}
async delete(universalIdentifier: string, workspaceId: string) {
const application = await this.findByUniversalIdentifier(
universalIdentifier,
workspaceId,
);
if (!isDefined(application)) {
throw new Error(`Application does not exist`);
}
await this.applicationRepository.delete({
universalIdentifier,
workspaceId,
});
}
}
@@ -0,0 +1,11 @@
import { ArgsType, Field } from '@nestjs/graphql';
import GraphQLJSON from 'graphql-type-json';
import { PackageJson } from 'src/engine/core-modules/application/types/application.types';
@ArgsType()
export class DeleteApplicationInput {
@Field(() => GraphQLJSON, { nullable: false })
packageJson: PackageJson;
}