├── .gitignore ├── README.md ├── package-lock.json ├── package.json └── src ├── app.js ├── js-foundation ├── 01-template.js ├── 02-destructuring.js ├── 03-callbacks.js ├── 04-arrow.js ├── 05-factory.js └── 06-promises.js └── plugins ├── get-age.plugin.js ├── get-id.plugin.js ├── http-client.plugin.js └── index.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 02 Bases de Node 2 | 3 | 4 | Correr en Dev 5 | ``` 6 | npm run dev 7 | ``` -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "02-bases", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "02-bases", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "axios": "^1.4.0", 13 | "get-age": "^1.0.1", 14 | "uuid": "^9.0.0" 15 | }, 16 | "devDependencies": { 17 | "nodemon": "^3.0.1" 18 | } 19 | }, 20 | "node_modules/abbrev": { 21 | "version": "1.1.1", 22 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 23 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 24 | "dev": true 25 | }, 26 | "node_modules/anymatch": { 27 | "version": "3.1.3", 28 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 29 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 30 | "dev": true, 31 | "dependencies": { 32 | "normalize-path": "^3.0.0", 33 | "picomatch": "^2.0.4" 34 | }, 35 | "engines": { 36 | "node": ">= 8" 37 | } 38 | }, 39 | "node_modules/asynckit": { 40 | "version": "0.4.0", 41 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 42 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 43 | }, 44 | "node_modules/axios": { 45 | "version": "1.4.0", 46 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", 47 | "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", 48 | "dependencies": { 49 | "follow-redirects": "^1.15.0", 50 | "form-data": "^4.0.0", 51 | "proxy-from-env": "^1.1.0" 52 | } 53 | }, 54 | "node_modules/balanced-match": { 55 | "version": "1.0.2", 56 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 57 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 58 | "dev": true 59 | }, 60 | "node_modules/binary-extensions": { 61 | "version": "2.2.0", 62 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 63 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 64 | "dev": true, 65 | "engines": { 66 | "node": ">=8" 67 | } 68 | }, 69 | "node_modules/brace-expansion": { 70 | "version": "1.1.11", 71 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 72 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 73 | "dev": true, 74 | "dependencies": { 75 | "balanced-match": "^1.0.0", 76 | "concat-map": "0.0.1" 77 | } 78 | }, 79 | "node_modules/braces": { 80 | "version": "3.0.2", 81 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 82 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 83 | "dev": true, 84 | "dependencies": { 85 | "fill-range": "^7.0.1" 86 | }, 87 | "engines": { 88 | "node": ">=8" 89 | } 90 | }, 91 | "node_modules/chokidar": { 92 | "version": "3.5.3", 93 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 94 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 95 | "dev": true, 96 | "funding": [ 97 | { 98 | "type": "individual", 99 | "url": "https://paulmillr.com/funding/" 100 | } 101 | ], 102 | "dependencies": { 103 | "anymatch": "~3.1.2", 104 | "braces": "~3.0.2", 105 | "glob-parent": "~5.1.2", 106 | "is-binary-path": "~2.1.0", 107 | "is-glob": "~4.0.1", 108 | "normalize-path": "~3.0.0", 109 | "readdirp": "~3.6.0" 110 | }, 111 | "engines": { 112 | "node": ">= 8.10.0" 113 | }, 114 | "optionalDependencies": { 115 | "fsevents": "~2.3.2" 116 | } 117 | }, 118 | "node_modules/combined-stream": { 119 | "version": "1.0.8", 120 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 121 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 122 | "dependencies": { 123 | "delayed-stream": "~1.0.0" 124 | }, 125 | "engines": { 126 | "node": ">= 0.8" 127 | } 128 | }, 129 | "node_modules/concat-map": { 130 | "version": "0.0.1", 131 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 132 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 133 | "dev": true 134 | }, 135 | "node_modules/debug": { 136 | "version": "3.2.7", 137 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 138 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 139 | "dev": true, 140 | "dependencies": { 141 | "ms": "^2.1.1" 142 | } 143 | }, 144 | "node_modules/delayed-stream": { 145 | "version": "1.0.0", 146 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 147 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 148 | "engines": { 149 | "node": ">=0.4.0" 150 | } 151 | }, 152 | "node_modules/fill-range": { 153 | "version": "7.0.1", 154 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 155 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 156 | "dev": true, 157 | "dependencies": { 158 | "to-regex-range": "^5.0.1" 159 | }, 160 | "engines": { 161 | "node": ">=8" 162 | } 163 | }, 164 | "node_modules/follow-redirects": { 165 | "version": "1.15.2", 166 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", 167 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", 168 | "funding": [ 169 | { 170 | "type": "individual", 171 | "url": "https://github.com/sponsors/RubenVerborgh" 172 | } 173 | ], 174 | "engines": { 175 | "node": ">=4.0" 176 | }, 177 | "peerDependenciesMeta": { 178 | "debug": { 179 | "optional": true 180 | } 181 | } 182 | }, 183 | "node_modules/form-data": { 184 | "version": "4.0.0", 185 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 186 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 187 | "dependencies": { 188 | "asynckit": "^0.4.0", 189 | "combined-stream": "^1.0.8", 190 | "mime-types": "^2.1.12" 191 | }, 192 | "engines": { 193 | "node": ">= 6" 194 | } 195 | }, 196 | "node_modules/fsevents": { 197 | "version": "2.3.2", 198 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 199 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 200 | "dev": true, 201 | "hasInstallScript": true, 202 | "optional": true, 203 | "os": [ 204 | "darwin" 205 | ], 206 | "engines": { 207 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 208 | } 209 | }, 210 | "node_modules/get-age": { 211 | "version": "1.0.1", 212 | "resolved": "https://registry.npmjs.org/get-age/-/get-age-1.0.1.tgz", 213 | "integrity": "sha512-jNlL4ORfTdHQaU7VZKVmhQb1oyM61IhJVsZsG5aG5lLNKxGHwmS/2B+2ibsWQVJCABoegHhRqSYDPeU0iQAn7Q==" 214 | }, 215 | "node_modules/glob-parent": { 216 | "version": "5.1.2", 217 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 218 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 219 | "dev": true, 220 | "dependencies": { 221 | "is-glob": "^4.0.1" 222 | }, 223 | "engines": { 224 | "node": ">= 6" 225 | } 226 | }, 227 | "node_modules/has-flag": { 228 | "version": "3.0.0", 229 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 230 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 231 | "dev": true, 232 | "engines": { 233 | "node": ">=4" 234 | } 235 | }, 236 | "node_modules/ignore-by-default": { 237 | "version": "1.0.1", 238 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 239 | "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", 240 | "dev": true 241 | }, 242 | "node_modules/is-binary-path": { 243 | "version": "2.1.0", 244 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 245 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 246 | "dev": true, 247 | "dependencies": { 248 | "binary-extensions": "^2.0.0" 249 | }, 250 | "engines": { 251 | "node": ">=8" 252 | } 253 | }, 254 | "node_modules/is-extglob": { 255 | "version": "2.1.1", 256 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 257 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 258 | "dev": true, 259 | "engines": { 260 | "node": ">=0.10.0" 261 | } 262 | }, 263 | "node_modules/is-glob": { 264 | "version": "4.0.3", 265 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 266 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 267 | "dev": true, 268 | "dependencies": { 269 | "is-extglob": "^2.1.1" 270 | }, 271 | "engines": { 272 | "node": ">=0.10.0" 273 | } 274 | }, 275 | "node_modules/is-number": { 276 | "version": "7.0.0", 277 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 278 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 279 | "dev": true, 280 | "engines": { 281 | "node": ">=0.12.0" 282 | } 283 | }, 284 | "node_modules/lru-cache": { 285 | "version": "6.0.0", 286 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 287 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 288 | "dev": true, 289 | "dependencies": { 290 | "yallist": "^4.0.0" 291 | }, 292 | "engines": { 293 | "node": ">=10" 294 | } 295 | }, 296 | "node_modules/mime-db": { 297 | "version": "1.52.0", 298 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 299 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 300 | "engines": { 301 | "node": ">= 0.6" 302 | } 303 | }, 304 | "node_modules/mime-types": { 305 | "version": "2.1.35", 306 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 307 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 308 | "dependencies": { 309 | "mime-db": "1.52.0" 310 | }, 311 | "engines": { 312 | "node": ">= 0.6" 313 | } 314 | }, 315 | "node_modules/minimatch": { 316 | "version": "3.1.2", 317 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 318 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 319 | "dev": true, 320 | "dependencies": { 321 | "brace-expansion": "^1.1.7" 322 | }, 323 | "engines": { 324 | "node": "*" 325 | } 326 | }, 327 | "node_modules/ms": { 328 | "version": "2.1.3", 329 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 330 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 331 | "dev": true 332 | }, 333 | "node_modules/nodemon": { 334 | "version": "3.0.1", 335 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz", 336 | "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==", 337 | "dev": true, 338 | "dependencies": { 339 | "chokidar": "^3.5.2", 340 | "debug": "^3.2.7", 341 | "ignore-by-default": "^1.0.1", 342 | "minimatch": "^3.1.2", 343 | "pstree.remy": "^1.1.8", 344 | "semver": "^7.5.3", 345 | "simple-update-notifier": "^2.0.0", 346 | "supports-color": "^5.5.0", 347 | "touch": "^3.1.0", 348 | "undefsafe": "^2.0.5" 349 | }, 350 | "bin": { 351 | "nodemon": "bin/nodemon.js" 352 | }, 353 | "engines": { 354 | "node": ">=10" 355 | }, 356 | "funding": { 357 | "type": "opencollective", 358 | "url": "https://opencollective.com/nodemon" 359 | } 360 | }, 361 | "node_modules/nopt": { 362 | "version": "1.0.10", 363 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 364 | "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", 365 | "dev": true, 366 | "dependencies": { 367 | "abbrev": "1" 368 | }, 369 | "bin": { 370 | "nopt": "bin/nopt.js" 371 | }, 372 | "engines": { 373 | "node": "*" 374 | } 375 | }, 376 | "node_modules/normalize-path": { 377 | "version": "3.0.0", 378 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 379 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 380 | "dev": true, 381 | "engines": { 382 | "node": ">=0.10.0" 383 | } 384 | }, 385 | "node_modules/picomatch": { 386 | "version": "2.3.1", 387 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 388 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 389 | "dev": true, 390 | "engines": { 391 | "node": ">=8.6" 392 | }, 393 | "funding": { 394 | "url": "https://github.com/sponsors/jonschlinkert" 395 | } 396 | }, 397 | "node_modules/proxy-from-env": { 398 | "version": "1.1.0", 399 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 400 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 401 | }, 402 | "node_modules/pstree.remy": { 403 | "version": "1.1.8", 404 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", 405 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", 406 | "dev": true 407 | }, 408 | "node_modules/readdirp": { 409 | "version": "3.6.0", 410 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 411 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 412 | "dev": true, 413 | "dependencies": { 414 | "picomatch": "^2.2.1" 415 | }, 416 | "engines": { 417 | "node": ">=8.10.0" 418 | } 419 | }, 420 | "node_modules/semver": { 421 | "version": "7.5.4", 422 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", 423 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", 424 | "dev": true, 425 | "dependencies": { 426 | "lru-cache": "^6.0.0" 427 | }, 428 | "bin": { 429 | "semver": "bin/semver.js" 430 | }, 431 | "engines": { 432 | "node": ">=10" 433 | } 434 | }, 435 | "node_modules/simple-update-notifier": { 436 | "version": "2.0.0", 437 | "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", 438 | "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", 439 | "dev": true, 440 | "dependencies": { 441 | "semver": "^7.5.3" 442 | }, 443 | "engines": { 444 | "node": ">=10" 445 | } 446 | }, 447 | "node_modules/supports-color": { 448 | "version": "5.5.0", 449 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 450 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 451 | "dev": true, 452 | "dependencies": { 453 | "has-flag": "^3.0.0" 454 | }, 455 | "engines": { 456 | "node": ">=4" 457 | } 458 | }, 459 | "node_modules/to-regex-range": { 460 | "version": "5.0.1", 461 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 462 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 463 | "dev": true, 464 | "dependencies": { 465 | "is-number": "^7.0.0" 466 | }, 467 | "engines": { 468 | "node": ">=8.0" 469 | } 470 | }, 471 | "node_modules/touch": { 472 | "version": "3.1.0", 473 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 474 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", 475 | "dev": true, 476 | "dependencies": { 477 | "nopt": "~1.0.10" 478 | }, 479 | "bin": { 480 | "nodetouch": "bin/nodetouch.js" 481 | } 482 | }, 483 | "node_modules/undefsafe": { 484 | "version": "2.0.5", 485 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", 486 | "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", 487 | "dev": true 488 | }, 489 | "node_modules/uuid": { 490 | "version": "9.0.0", 491 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", 492 | "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", 493 | "bin": { 494 | "uuid": "dist/bin/uuid" 495 | } 496 | }, 497 | "node_modules/yallist": { 498 | "version": "4.0.0", 499 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 500 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 501 | "dev": true 502 | } 503 | } 504 | } 505 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "02-bases", 3 | "version": "1.0.0", 4 | "description": "Esta es mi primera aplicación real de Node", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node src/app.js", 9 | "dev": "nodemon src/app.js", 10 | "start:dev": "echo 'Hola mundo desde dev' ", 11 | "start:stag": "echo 'Hola mundo desde dev' " 12 | }, 13 | "author": "Fernando Herrera", 14 | "license": "MIT", 15 | "devDependencies": { 16 | "nodemon": "^3.0.1" 17 | }, 18 | "dependencies": { 19 | "axios": "^1.4.0", 20 | "get-age": "^1.0.1", 21 | "uuid": "^9.0.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/app.js: -------------------------------------------------------------------------------- 1 | const { getAge, getUUID } = require('./plugins'); 2 | 3 | // const { emailTemplate } = require('./js-foundation/01-template'); 4 | // require('./js-foundation/02-destructuring'); 5 | // const { getUserById } = require('./js-foundation/03-callbacks'); 6 | // const { getUserById } = require('./js-foundation/04-arrow'); 7 | // const { buildMakePerson } = require('./js-foundation/05-factory') 8 | const getPokemonById = require('./js-foundation/06-promises'); 9 | 10 | 11 | getPokemonById(4) 12 | .then( ( pokemon ) => console.log({ pokemon }) ) 13 | .catch( ( err ) => console.log( err ) ) 14 | .finally( () => console.log('Finalmente') ); 15 | 16 | 17 | 18 | // token de acceso 19 | // Publicas 20 | 21 | 22 | // ! Referencia a la función factory y uso 23 | // const makePerson = buildMakePerson({ getUUID, getAge }); 24 | 25 | // const obj = { name: 'John', birthdate: '1985-10-21' }; 26 | 27 | // const john = makePerson( obj ); 28 | 29 | // console.log({ john }); 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/js-foundation/01-template.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const emailTemplate = ` 4 |
Thank you for your order.
7 |Order ID: {{orderId}}
8 |