format.js 917 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. function csv_decode(str) {
  2. return str.replace(/^(.*[,"\n].*)$/, function(k) {
  3. // console.log(arguments);
  4. return '"' + k.replace(/"/g, '""') + '"';
  5. });
  6. }
  7. function format_csv(val) {
  8. return (
  9. val
  10. .map(function(v) {
  11. return csv_decode(String(v));
  12. })
  13. .join(',') + '\n'
  14. );
  15. }
  16. function format_json(obj) {
  17. return JSON.stringify(obj);
  18. }
  19. function format_text(arr) {
  20. var _ipstr = arr[2] + ' - ' + arr[3];
  21. _ipstr += _ipstr.length < 33 ? new Array(34 - _ipstr.length).join(' ') : '';
  22. return _ipstr + ' ' + arr[4] + ' ' + arr[5] + '\n';
  23. }
  24. //arr [begInt, endInt, begIP, endIP, Country, Area]
  25. //obj {begInt, endInt, begIP, endIP, Country, Area}
  26. module.exports = function getFormatFn(fomat) {
  27. switch (fomat) {
  28. case 'object':
  29. return function(val) {
  30. return val;
  31. };
  32. case 'csv':
  33. return format_csv;
  34. case 'json':
  35. return format_json;
  36. case 'text':
  37. default:
  38. return format_text;
  39. }
  40. };