Create factory functions for File and Folder construction.
Requirements
Types
type FileConfig = {
name: string
content: string
}
type FolderConfig = {
name: string
children?: Record<string, File | Folder>
}
Factory functions
const file = (config: FileConfig): File => ({
type: 'file',
name: config.name,
content: config.content,
createdAt: Date.now(),
updatedAt: Date.now()
})
const folder = (config: FolderConfig): Folder => ({
type: 'folder',
name: config.name,
children: config.children ?? {},
createdAt: Date.now(),
updatedAt: Date.now()
})
Usage example
const root = folder({
name: '/',
children: {
'src': folder({
name: 'src',
children: {
'main.ts': file({
name: 'main.ts',
content: 'console.log("hello")'
})
}
}),
'package.json': file({
name: 'package.json',
content: '{"name": "my-app"}'
})
}
})
Goals
- Pure functions, no side effects
- Auto-set timestamps on creation
Create factory functions for File and Folder construction.
Requirements
Types
Factory functions
Usage example
Goals