set method

_lastwrite set(
  1. dynamic keyData,
  2. dynamic valueData
)

Implementation

_lastwrite set(keyData, valueData) {
  if (!ifjs(stateDataFile)) {
    stateDataFile = _data ?? {};
  }
  if (ifjs(keyData) && ifjs(valueData) && typeof(keyData) == "string") {
    var keyDatas = keyData.toString().split(".");
    if (keyDatas.length == 1) {
      stateDataFile[keyData.toString()] = valueData;
    } else if (keyDatas.length == 2) {
      stateDataFile[keyDatas[0].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()] =
          valueData;
    } else if (keyDatas.length == 3) {
      stateDataFile[keyDatas[0].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
          [keyDatas[2].toString()] = valueData;
    } else if (keyDatas.length == 4) {
      stateDataFile[keyDatas[0].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
          [keyDatas[2].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
          [keyDatas[2].toString()][keyDatas[3].toString()] = valueData;
    } else if (keyDatas.length == 5) {
      stateDataFile[keyDatas[0].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
          [keyDatas[2].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
          [keyDatas[2].toString()][keyDatas[3].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
              [keyDatas[2].toString()][keyDatas[3].toString()]
          [keyDatas[4].toString()] = valueData;
    } else if (keyDatas.length == 6) {
      stateDataFile[keyDatas[0].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
          [keyDatas[2].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
          [keyDatas[2].toString()][keyDatas[3].toString()] = valueData;
    } else if (keyDatas.length == 5) {
      stateDataFile[keyDatas[0].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
          [keyDatas[2].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
          [keyDatas[2].toString()][keyDatas[3].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
              [keyDatas[2].toString()][keyDatas[3].toString()]
          [keyDatas[4].toString()] = {};
      stateDataFile[keyDatas[0].toString()][keyDatas[1].toString()]
              [keyDatas[2].toString()][keyDatas[3].toString()]
          [keyDatas[4].toString()][keyDatas[4].toString()] = valueData;
    }
  }
  return _lastwrite(_db);
}