n8n
Version:
n8n Workflow Automation Tool
84 lines (83 loc) • 4.05 kB
TypeScript
import { GlobalConfig } from '@n8n/config';
import { DataSource, Repository } from '@n8n/typeorm';
import type { SelectQueryBuilder, UpdateResult, FindOptionsWhere, FindOptionsRelations, EntityManager } from '@n8n/typeorm';
import type { ListQuery } from '../../requests';
import { FolderRepository } from './folder.repository';
import type { FolderWithWorkflowAndSubFolderCount } from '../entities/folder';
import { WorkflowEntity } from '../entities/workflow-entity';
type ResourceType = 'folder' | 'workflow';
export type WorkflowFolderUnionFull = (ListQuery.Workflow.Plain | ListQuery.Workflow.WithSharing | FolderWithWorkflowAndSubFolderCount) & {
resource: ResourceType;
};
export declare class WorkflowRepository extends Repository<WorkflowEntity> {
private readonly globalConfig;
private readonly folderRepository;
constructor(dataSource: DataSource, globalConfig: GlobalConfig, folderRepository: FolderRepository);
get(where: FindOptionsWhere<WorkflowEntity>, options?: {
relations: string[] | FindOptionsRelations<WorkflowEntity>;
}): Promise<WorkflowEntity | null>;
getAllActiveIds(): Promise<string[]>;
getActiveIds({ maxResults }?: {
maxResults?: number;
}): Promise<string[]>;
getActiveCount(): Promise<number>;
findById(workflowId: string): Promise<WorkflowEntity | null>;
findByIds(workflowIds: string[], { fields }?: {
fields?: string[];
}): Promise<WorkflowEntity[]>;
getActiveTriggerCount(): Promise<number>;
updateWorkflowTriggerCount(id: string, triggerCount: number): Promise<UpdateResult>;
private buildBaseUnionQuery;
getWorkflowsAndFoldersUnion(workflowIds: string[], options?: ListQuery.Options): Promise<{
id: string;
name: string;
resource: ResourceType;
createdAt: Date;
updatedAt: Date;
}[]>;
private buildUnionQuery;
private applySortingToUnionQuery;
private applyPaginationToUnionQuery;
private removeNameLowerFromResults;
getWorkflowsAndFoldersCount(workflowIds: string[], options?: ListQuery.Options): Promise<number>;
getWorkflowsAndFoldersWithCount(workflowIds: string[], options?: ListQuery.Options): Promise<readonly [WorkflowFolderUnionFull[], number]>;
private getFolderIds;
private getWorkflowsIds;
private fetchExtraData;
private enrichDataWithExtras;
getMany(workflowIds: string[], options?: ListQuery.Options): Promise<(Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "tags" | "createdAt" | "updatedAt" | "name" | "versionId" | "active">>)[]>;
getManyAndCount(sharedWorkflowIds: string[], options?: ListQuery.Options): Promise<{
workflows: (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "tags" | "createdAt" | "updatedAt" | "name" | "versionId" | "active">>)[] | ListQuery.Workflow.WithSharing[];
count: number;
}>;
getManyQuery(workflowIds: string[], options?: ListQuery.Options): SelectQueryBuilder<WorkflowEntity>;
private createBaseQuery;
private applyFilters;
private applyNameFilter;
private applyParentFolderFilter;
private applyActiveFilter;
private applyTagsFilter;
private applyProjectFilter;
private applyOwnedByRelation;
private applySelect;
private applyRelations;
private applyTagsRelation;
private applySorting;
private parseSortingParams;
private applySortingByColumn;
private applyPagination;
findStartingWith(workflowName: string): Promise<Array<{
name: string;
}>>;
findIn(workflowIds: string[]): Promise<WorkflowEntity[]>;
findWebhookBasedActiveWorkflows(): Promise<{
id: string;
name: string;
}[]>;
updateActiveState(workflowId: string, newState: boolean): Promise<UpdateResult>;
deactivateAll(): Promise<UpdateResult>;
activateAll(): Promise<UpdateResult>;
findByActiveState(activeState: boolean): Promise<WorkflowEntity[]>;
moveAllToFolder(fromFolderId: string, toFolderId: string, tx: EntityManager): Promise<void>;
}
export {};