Skip to content

Commit c4bcbe4

Browse files
committed
#12 - TypeScript
1 parent 554b1ad commit c4bcbe4

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
const fs = require('fs')
2+
const path = require('path')
3+
4+
/*
5+
* EJERCICIO:
6+
* Desarrolla un programa capaz de crear un archivo XML y JSON que guarde los
7+
* siguientes datos (haciendo uso de la sintaxis correcta en cada caso):
8+
* - Nombre
9+
* - Edad
10+
* - Fecha de nacimiento
11+
* - Listado de lenguajes de programación
12+
* Muestra el contenido de los archivos.
13+
* Borra los archivos.
14+
*/
15+
16+
async function saveData(): Promise<void> {
17+
const JSONdata = {
18+
name: 'Victor',
19+
age: 21,
20+
dateOfBirth: new Date(2002, 11, 17).toDateString(),
21+
programmingLanguages: ['JavaScript', 'TypeScript', 'Python', 'PHP']
22+
}
23+
24+
const xmlData = `
25+
<root>
26+
<name>Victor</name>
27+
<age>21</age>
28+
<dateOfBirth>2002-11-17</dateOfBirth>
29+
<programmingLanguages>
30+
<language>JavaScript</language>
31+
<language>TypeScript</language>
32+
<language>Python</language>
33+
<language>PHP</language>
34+
</programmingLanguages>
35+
</root>`
36+
37+
38+
await fs.writeFileSync('data.json', JSON.stringify(JSONdata))
39+
fs.writeFileSync('data.xml', xmlData, 'utf8')
40+
console.log(fs.readFileSync('data.xml', 'utf8'))
41+
console.log(fs.readFileSync('data.json', 'utf8'))
42+
// fs.unlinkSync('data.json')
43+
// fs.unlinkSync('data.xml')
44+
}
45+
46+
saveData()
47+
48+
/*
49+
* DIFICULTAD EXTRA (opcional):
50+
* Utilizando la lógica de creación de los archivos anteriores, crea un
51+
* programa capaz de leer y transformar en una misma clase custom de tu
52+
* lenguaje los datos almacenados en el XML y el JSON.
53+
* Borra los archivos.
54+
*/
55+
56+
class customData {
57+
file: string
58+
constructor(file: string) {
59+
this.file = file
60+
}
61+
62+
async readData(): Promise<any> {
63+
if (path.extname(this.file) === '.json') {
64+
return JSON.parse(fs.readFileSync(this.file, 'utf8'))
65+
}
66+
}
67+
68+
async updateData(): Promise<any> {
69+
if (path.extname(this.file) === '.xml') {
70+
return fs.readFileSync('data.xml', 'utf8')
71+
}
72+
}
73+
74+
async deleteFile(): Promise<void> {
75+
fs.unlinkSync(this.file)
76+
}
77+
}
78+
79+
const dataJson = new customData('data.json')
80+
console.log(dataJson.readData())
81+
82+
const dataXml = new customData('data.xml')
83+
console.log(dataXml.updateData())
84+
85+
dataJson.deleteFile()
86+
dataXml.deleteFile()

0 commit comments

Comments
 (0)