PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/mem-fs-editor/lib

Просмотр файла: state.js

const fs = require('fs');

const STATE = 'state';

const STATE_CLEARED = 'stateCleared';

const STATE_MODIFIED = 'modified';

const STATE_DELETED = 'deleted';

const IS_NEW = 'isNew';

const setFileState = (file, state) => {
  file[STATE] = state;
};

const isFileNew = (file) => {
  if (file[IS_NEW] === undefined) {
    file[IS_NEW] = !fs.existsSync(file.path);
  }

  return file[IS_NEW];
};

const isFileStateModified = (file) => file[STATE] === STATE_MODIFIED;

const setModifiedFileState = (file) => setFileState(file, STATE_MODIFIED);

const isFileStateDeleted = (file) => file[STATE] === STATE_DELETED;

const setDeletedFileState = (file) => setFileState(file, STATE_DELETED);

const isFilePending = (file) =>
  isFileStateModified(file) || (isFileStateDeleted(file) && !isFileNew(file));

const setCommittedFile = (file) => {
  file.committed = true;
};

const isFileCommitted = (file) => Boolean(file.committed);

const resetFileState = (file) => {
  delete file[STATE];
};

/**
 * Delete commit related states.
 */
const resetFileCommitStates = (file) => {
  delete file[STATE_CLEARED];
  delete file.committed;
};

/**
 * Delete all mem-fs-editor`s related states.
 */
const resetFile = (file) => {
  resetFileState(file);
  resetFileCommitStates(file);
  delete file[IS_NEW];
};

const clearFileState = (file) => {
  if (file[STATE]) {
    file[STATE_CLEARED] = file[STATE];
  }

  resetFileState(file);
  delete file[IS_NEW];
};

const hasState = (file) => Boolean(file[STATE]);

const hasClearedState = (file) => Boolean(file[STATE_CLEARED]);

module.exports = {
  STATE,
  STATE_CLEARED,
  STATE_MODIFIED,
  STATE_DELETED,
  isFileStateModified,
  setModifiedFileState,
  isFileStateDeleted,
  setDeletedFileState,
  setCommittedFile,
  isFileCommitted,
  isFileNew,
  isFilePending,
  resetFileState,
  resetFileCommitStates,
  resetFile,
  clearFileState,
  hasState,
  hasClearedState,
};

Выполнить команду


Для локальной разработки. Не используйте в интернете!