30 lines
848 B
TypeScript
30 lines
848 B
TypeScript
import { getFileExtention } from '../../utils/helpers'
|
|
import state, { IFile } from '../index'
|
|
|
|
const languageMapping: Record<string, string | undefined> = {
|
|
ts: 'typescript',
|
|
js: 'javascript',
|
|
md: 'markdown',
|
|
c: 'c',
|
|
h: 'c',
|
|
txt: 'text'
|
|
}
|
|
|
|
export const createNewFile = (name: string) => {
|
|
const ext = getFileExtention(name) || ''
|
|
|
|
const emptyFile: IFile = { name, language: languageMapping[ext] || 'text', content: '' }
|
|
state.files.push(emptyFile)
|
|
state.active = state.files.length - 1
|
|
}
|
|
|
|
export const renameFile = (oldName: string, nwName: string) => {
|
|
const file = state.files.find(file => file.name === oldName)
|
|
if (!file) throw Error(`No file exists with name ${oldName}`)
|
|
|
|
const ext = getFileExtention(nwName) || ''
|
|
const language = languageMapping[ext] || 'text'
|
|
file.name = nwName
|
|
file.language = language
|
|
}
|