UNPKG

@sap/generator-cap-project

Version:

Creates a new SAP Cloud Application Programming Model project.

52 lines (51 loc) 1.67 kB
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]);