@sap/generator-cap-project
Version:
Creates a new SAP Cloud Application Programming Model project.
52 lines (51 loc) • 1.67 kB
JavaScript
import fs from 'fs';
const STATE = 'state';
const STATE_CLEARED = 'stateCleared';
const STATE_MODIFIED = 'modified';
const STATE_DELETED = 'deleted';
const IS_NEW = 'isNew';
export const setFileState = (file, state) => {
file[STATE] = state;
};
export const isFileNew = (file) => {
if (file[IS_NEW] === undefined) {
file[IS_NEW] = !fs.existsSync(file.path);
}
return file[IS_NEW];
};
export const isFileStateModified = (file) => file[STATE] === STATE_MODIFIED;
export const setModifiedFileState = (file) => setFileState(file, STATE_MODIFIED);
export const isFileStateDeleted = (file) => file[STATE] === STATE_DELETED;
export const setDeletedFileState = (file) => setFileState(file, STATE_DELETED);
export const isFilePending = (file) => isFileStateModified(file) || (isFileStateDeleted(file) && !isFileNew(file));
export const setCommittedFile = (file) => {
file.committed = true;
};
export const isFileCommitted = (file) => Boolean(file.committed);
export const resetFileState = (file) => {
delete file[STATE];
};
/**
* Delete commit related states.
*/
export const resetFileCommitStates = (file) => {
delete file[STATE_CLEARED];
delete file.committed;
};
/**
* Delete all mem-fs-editor`s related states.
*/
export const resetFile = (file) => {
resetFileState(file);
resetFileCommitStates(file);
delete file[IS_NEW];
};
export const clearFileState = (file) => {
if (file[STATE]) {
file[STATE_CLEARED] = file[STATE];
}
resetFileState(file);
delete file[IS_NEW];
};
export const hasState = (file) => Boolean(file[STATE]);
export const hasClearedState = (file) => Boolean(file[STATE_CLEARED]);