export const PRIORITY_PREFIX = '>';
export const QUEUE_PREFIX = 'jhipster:';
const INITIALIZING = 'initializing';
const PROMPTING = 'prompting';
const CONFIGURING = 'configuring';
const DEFAULT = 'default';
const WRITING = 'writing';
const TRANSFORM = 'transform';
const CONFLICTS = 'conflicts';
const INSTALL = 'install';
const END = 'end';
const COMPOSING = 'composing';
const COMPOSING_QUEUE = `${QUEUE_PREFIX}${COMPOSING}`;
const LOADING = 'loading';
const LOADING_QUEUE = `${QUEUE_PREFIX}${LOADING}`;
const PREPARING = 'preparing';
const PREPARING_QUEUE = `${QUEUE_PREFIX}${PREPARING}`;
const POST_PREPARING = 'postPreparing';
const POST_PREPARING_QUEUE = `${QUEUE_PREFIX}${POST_PREPARING}`;
const MULTISTEP_TRANSFORM = 'multistepTransform';
const MULTISTEP_TRANSFORM_QUEUE = `${QUEUE_PREFIX}${MULTISTEP_TRANSFORM}`;
const POST_WRITING = 'postWriting';
const POST_WRITING_QUEUE = `${QUEUE_PREFIX}${POST_WRITING}`;
const POST_INSTALL = 'postInstall';
const POST_INSTALL_QUEUE = `${QUEUE_PREFIX}${POST_INSTALL}`;
const PRE_CONFLICTS = 'preConflicts';
const PRE_CONFLICTS_QUEUE = `${QUEUE_PREFIX}${PRE_CONFLICTS}`;
export const CUSTOM_PRIORITIES = [
    {
        priorityName: INITIALIZING,
        args: generator => generator.getArgsForPriority(INITIALIZING),
        edit: true,
    },
    {
        priorityName: PROMPTING,
        args: generator => generator.getArgsForPriority(PROMPTING),
        edit: true,
    },
    {
        priorityName: CONFIGURING,
        args: generator => generator.getArgsForPriority(CONFIGURING),
        edit: true,
    },
    {
        priorityName: COMPOSING,
        queueName: COMPOSING_QUEUE,
        before: LOADING,
        args: generator => generator.getArgsForPriority(COMPOSING),
    },
    {
        priorityName: LOADING,
        queueName: LOADING_QUEUE,
        before: PREPARING,
        args: generator => generator.getArgsForPriority(LOADING),
    },
    {
        priorityName: PREPARING,
        queueName: PREPARING_QUEUE,
        before: POST_PREPARING,
        args: generator => generator.getArgsForPriority(PREPARING),
    },
    {
        priorityName: POST_PREPARING,
        queueName: POST_PREPARING_QUEUE,
        before: DEFAULT,
        args: generator => generator.getArgsForPriority(POST_PREPARING),
    },
    {
        priorityName: DEFAULT,
        args: generator => generator.getArgsForPriority(DEFAULT),
        edit: true,
    },
    {
        priorityName: WRITING,
        args: generator => generator.getArgsForPriority(WRITING),
        edit: true,
    },
    {
        priorityName: MULTISTEP_TRANSFORM,
        queueName: MULTISTEP_TRANSFORM_QUEUE,
        before: POST_WRITING,
    },
    {
        priorityName: POST_WRITING,
        queueName: POST_WRITING_QUEUE,
        before: PRE_CONFLICTS,
        args: generator => generator.getArgsForPriority(POST_WRITING),
    },
    {
        priorityName: PRE_CONFLICTS,
        queueName: PRE_CONFLICTS_QUEUE,
        args: generator => generator.getArgsForPriority(PRE_CONFLICTS),
        before: TRANSFORM,
    },
    {
        priorityName: INSTALL,
        args: generator => generator.getArgsForPriority(INSTALL),
        edit: true,
    },
    {
        priorityName: POST_INSTALL,
        queueName: POST_INSTALL_QUEUE,
        before: END,
        args: generator => generator.getArgsForPriority(POST_INSTALL),
    },
    {
        priorityName: END,
        args: generator => generator.getArgsForPriority(END),
        edit: true,
    },
].reverse();
export const PRIORITY_NAMES = {
    INITIALIZING,
    PROMPTING,
    CONFIGURING,
    COMPOSING,
    LOADING,
    PREPARING,
    POST_PREPARING,
    DEFAULT,
    WRITING,
    MULTISTEP_TRANSFORM,
    POST_WRITING,
    TRANSFORM,
    PRE_CONFLICTS,
    INSTALL,
    POST_INSTALL,
    END,
};
export const PRIORITY_NAMES_LIST = [
    INITIALIZING,
    PROMPTING,
    CONFIGURING,
    COMPOSING,
    LOADING,
    PREPARING,
    POST_PREPARING,
    DEFAULT,
    WRITING,
    MULTISTEP_TRANSFORM,
    POST_WRITING,
    TRANSFORM,
    INSTALL,
    POST_INSTALL,
    END,
];
export const QUEUES = {
    INITIALIZING_QUEUE: INITIALIZING,
    PROMPTING_QUEUE: PROMPTING,
    CONFIGURING_QUEUE: CONFIGURING,
    COMPOSING_QUEUE,
    LOADING_QUEUE,
    PREPARING_QUEUE,
    POST_PREPARING_QUEUE,
    DEFAULT_QUEUE: DEFAULT,
    WRITING_QUEUE: WRITING,
    MULTISTEP_TRANSFORM_QUEUE,
    POST_WRITING_QUEUE,
    TRANSFORM_QUEUE: TRANSFORM,
    PRE_CONFLICTS_QUEUE,
    INSTALL_QUEUE: INSTALL,
    POST_INSTALL_QUEUE,
    END_QUEUE: END,
};
