import { readdir, readFile } from 'fs' import path from 'path' import Papa from 'papaparse' export default { namespaced: true, state: { csv_files: [], rows: { data: [], meta: { fields: [] } }, }, getters: { csvs: (state) => { return state.csv_files }, rows: (state) => { return state.rows.data } }, mutations: { SET_CSV_FILES: (state, { csvs }) => { state.csv_files = csvs }, SET_DATA: (state, { data }) => { data.data = data.data.filter(x => x.Libellé != undefined) state.rows = data }, APPEND_DATA: (state, { content }) => { state.rows.push(content) } }, actions: { async find_csv (context) { try { readdir(context.rootGetters['config/data_dir'], (err, list) => { if (err) { console.log(err) } else { var csvs = list.filter(x => { return x.split('.').pop() === 'csv' }) for (var i in csvs) { context.dispatch('load_csv', csvs[i]) } context.commit('SET_CSV_FILES', { csvs }) } }) } catch (e) { console.log(e) } }, async load_csv (context, csv) { readFile(path.join(context.rootGetters['config/data_dir'], csv), 'utf8', (err, content) => { if (err) { console.log(err) } else { var parseConfig = { header: true } var parsed = Papa.parse(content, parseConfig) context.commit('SET_DATA', { data: parsed }) } }) } } }