
import { CreateItem } from '../../../@utility/data-structures/database'

import { storeTable } from '../variables'
import { createItemStore } from './create-item-store'
import { createItemId } from './create-item-id'

const createItem: CreateItem = createItemFunction

async function createItemFunction (storeId: string, item: any, itemId?: string): Promise<any[]> {
  if (!storeTable[storeId]) {
    await createItemStore(storeId)
  }

  await storeTable[storeId].setItem(itemId || (await createItemId(storeId))[0], item)
  return [item]
}

export {
  createItem
}