Guest User

Untitled

a guest
Nov 19th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. let fs = require("fs");
  2.  
  3. fs.readFile("./in.txt", "utf8", (err, data) => {
  4. let lines = data.split("\r\n");
  5. let name = lines[0];
  6. let colNames = lines[1].split("\t");
  7. let colTypes = lines[2].split("\t").map(val => {
  8. let ret = "text";
  9.  
  10. if (/^(\d+-)+\d+$/.test(val)) {
  11. ret = "date";
  12. } else if (!isNaN(parseInt(val))) {
  13. ret = "real";
  14. }
  15.  
  16. return ret;
  17. });
  18. let cols = "";
  19. let vals = "";
  20. let output = `\
  21. CREATE TABLE IF NOT EXISTS ${name} (
  22. :cols);
  23.  
  24. INSERT INTO ${name} VALUES
  25. :vals`;
  26.  
  27. colNames.forEach((col, i) => {
  28. cols += `\t${col} ${colTypes[i]}${i === colNames.length - 1 ? "" : ","}\n`
  29. });
  30. lines = lines.slice(2);
  31. lines.forEach((dataLine, i) => {
  32. let dataArr = dataLine.split("\t");
  33. let lastLine = i === lines.length - 1;
  34.  
  35. vals += "\t("
  36. dataArr.forEach((val, j) => {
  37. let last = j === dataArr.length - 1;
  38. let formattedVal;
  39.  
  40. if (val) {
  41. formattedVal = colTypes[j] === "real" ? val : `'${val}'`;
  42. } else {
  43. formattedVal = "NULL";
  44. }
  45.  
  46. vals += `${formattedVal}${last ? "" : ", "}`
  47. });
  48. vals += `)${lastLine ? ";" : ","}\n`
  49. });
  50. output = output.replace(":cols", cols).replace(":vals", vals);
  51.  
  52. fs.writeFile(`${name}.sql`, output, (err, data) => console.log(err));
  53. });
Add Comment
Please, Sign In to add comment