From 4d2c532457a20043766af0544789cba6e28b9f68 Mon Sep 17 00:00:00 2001 From: "Diego F.(EW7)" Date: Mon, 7 Nov 2016 12:44:05 -0300 Subject: [PATCH] Preparando para #23 --- bin/fast.js | 8 +++++--- bin/txt-to-sql-run.js | 10 +++++++--- lib/txt-to-sql.js | 17 ++++++++++++++++- web/txt-to-sql.js | 17 ++++++++++++++++- 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/bin/fast.js b/bin/fast.js index 3c597b4..233d62c 100644 --- a/bin/fast.js +++ b/bin/fast.js @@ -69,7 +69,7 @@ function fastFinalize(info, outStream) { function streamToPromise(stream) { function resolveResult(func) { - return func(stream.preparedResult); + return func({preparedResult:stream.preparedResult, stats:stream.stats}); } return new Promise(function(resolve, reject) { var res = resolveResult.bind(undefined, resolve); @@ -85,8 +85,9 @@ function doFast(params, inputBase, fastBufferingThreshold, outputStream) { var rl; var preparedResult; return Promise.resolve().then(function() { - return txtToSql.verifyInputParams(params); - }).then(fastProcessEncodingOptions) + return txtToSql.initializeStats(params); + }).then(txtToSql.verifyInputParams) + .then(fastProcessEncodingOptions) .then(function(info) { inStream = fsSync.createReadStream(inputBase+'.txt', {encoding:'utf8'}); outStream = outputStream || fsSync.createWriteStream(inputBase+'.sql', {encoding:'utf8'}); @@ -128,6 +129,7 @@ function doFast(params, inputBase, fastBufferingThreshold, outputStream) { fastFinalize(info, outStream); } rl.preparedResult = preparedResult; + rl.stats = txtToSql.generateStats(info).stats; outStream.end(); }); return streamToPromise(rl); diff --git a/bin/txt-to-sql-run.js b/bin/txt-to-sql-run.js index f63cf84..e7af7d2 100644 --- a/bin/txt-to-sql-run.js +++ b/bin/txt-to-sql-run.js @@ -150,10 +150,14 @@ Promises.start(function() { }).then(function(rawInput) { params.rawTable = rawInput; if(cmdParams.fast) { - return fast.doFast(params, inputBase, fastBufferingThreshold).then(function(preparedResult) { - return writeConfigYaml(createParams(params, preparedResult), inputBase+'.yaml'); + var result; + return fast.doFast(params, inputBase, fastBufferingThreshold).then(function(res) { + result = res; + return writeConfigYaml(createParams(params, result.preparedResult), inputBase+'.yaml'); }).then(function() { - process.stdout.write("Generated '"+inputBase+".sql'") + process.stdout.write("Generated '"+inputBase+".sql'"); + // WARN: implicit string conversion of result.stats! + process.stdout.write("\n"+result.stats); }); } else if (cmdParams.prepare) { return doPrepare(params, inputYaml); diff --git a/lib/txt-to-sql.js b/lib/txt-to-sql.js index a7f2c2b..602ddcb 100644 --- a/lib/txt-to-sql.js +++ b/lib/txt-to-sql.js @@ -657,14 +657,27 @@ function prepare(info) { .catch(catchErrors.bind(null, info)); } +function initializeStats(info) { + info.stats = {}; + return info; +} + +function generateStats(info) { + info.stats = JSON.stringify(info.stats); + return info; +} + function generateScripts(info){ - return setup(info) + return Promise.resolve(info) + .then(initializeStats) + .then(setup) .then(quoteNames) .then(generateDropTable) .then(generateCreateScript) .then(removeIgnoredLines) .then(generateInsertScript) .then(processOutputBuffer) + .then(generateStats) .catch(catchErrors.bind(null, info)); } @@ -700,6 +713,8 @@ txtToSql.createAdaptedRows = createAdaptedRows; txtToSql.createInsertInto = createInsertInto; txtToSql.createInsertValues = createInsertValues; txtToSql.generatePrepareResult = generatePrepareResult; +txtToSql.initializeStats = initializeStats; +txtToSql.generateStats = generateStats; txtToSql.engines = engines; diff --git a/web/txt-to-sql.js b/web/txt-to-sql.js index a7f2c2b..602ddcb 100644 --- a/web/txt-to-sql.js +++ b/web/txt-to-sql.js @@ -657,14 +657,27 @@ function prepare(info) { .catch(catchErrors.bind(null, info)); } +function initializeStats(info) { + info.stats = {}; + return info; +} + +function generateStats(info) { + info.stats = JSON.stringify(info.stats); + return info; +} + function generateScripts(info){ - return setup(info) + return Promise.resolve(info) + .then(initializeStats) + .then(setup) .then(quoteNames) .then(generateDropTable) .then(generateCreateScript) .then(removeIgnoredLines) .then(generateInsertScript) .then(processOutputBuffer) + .then(generateStats) .catch(catchErrors.bind(null, info)); } @@ -700,6 +713,8 @@ txtToSql.createAdaptedRows = createAdaptedRows; txtToSql.createInsertInto = createInsertInto; txtToSql.createInsertValues = createInsertValues; txtToSql.generatePrepareResult = generatePrepareResult; +txtToSql.initializeStats = initializeStats; +txtToSql.generateStats = generateStats; txtToSql.engines = engines;