gitlab-org--gitlab-foss/spec/frontend/ide/file_helpers.js

36 lines
939 B
JavaScript

export const createFile = (path, content = '') => ({
id: path,
path,
content,
raw: content,
});
export const createNewFile = (path, content) =>
Object.assign(createFile(path, content), {
tempFile: true,
raw: '',
});
export const createDeletedFile = (path, content) =>
Object.assign(createFile(path, content), {
deleted: true,
});
export const createUpdatedFile = (path, oldContent, content) =>
Object.assign(createFile(path, content), {
raw: oldContent,
});
export const createMovedFile = (path, prevPath, content) =>
Object.assign(createNewFile(path, content), {
prevPath,
});
export const createEntries = (path) =>
path.split('/').reduce((acc, part, idx, parts) => {
const parentPath = parts.slice(0, idx).join('/');
const fullPath = parentPath ? `${parentPath}/${part}` : part;
return Object.assign(acc, { [fullPath]: { ...createFile(fullPath), parentPath } });
}, {});