import storage from '../common/storage';

export default {
  /**
   * 服务端持久化
   * @namespace storage
   */
  storage: {
    /**
     * 获取存储信息
     * @eapi
     * @param {string} key 存储的键
     * @returns {Promise<string>} 返回存储信息
     */
    getItem(key) {
      return storage.getItem(key);
    },

    /**
     * 设置存储信息
     * @summary 键名规则：
     *   首字符为英文，最大128个可见字符，只支持数字，大小写英文，下划线，加号
     *   每个值大小不超过5K
     *   每个直播间允许存储最大key数量：50个
     * @eapi
     * @param {string} key 存储的键
     * @param {string} value 存储的值
     * @returns {Promise<void>} 调用结果
     */
    setItem(key, value) {
      return storage.setItem(key, value);
    },

    /**
     * 移除存储信息
     * @eapi
     * @param {string} key 存储的键
     * @returns {Promise<void>} 调用结果
     */
    removeItem(key) {
      return storage.removeItem(key);
    },

    /**
     * @edata
     * @typedef {Array.<string>} StorageKeys 存储键的集合
     */
    /**
     * 获取所有存储的键
     * @eapi
     * @returns {Promise<StorageKeys>} 调用结果
     */
    getKeys() {
      return storage.getKeys();
    }
  }

}
