aboutsummaryrefslogtreecommitdiff
path: root/node_modules/time-require/src/timeRequire.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-03-27 21:01:33 +0100
committerFlorian Dold <florian.dold@gmail.com>2019-03-27 21:01:33 +0100
commitcc97a4dd2a967e1c2273bd5f4c5f49a5bf2e2585 (patch)
tree92c5d88706a6ffc654d1b133618d357890e7096b /node_modules/time-require/src/timeRequire.js
parent3771b4d6b67b34c130f3a9a1a15f42deefdb2eda (diff)
remove node_modules
Diffstat (limited to 'node_modules/time-require/src/timeRequire.js')
-rw-r--r--node_modules/time-require/src/timeRequire.js140
1 files changed, 0 insertions, 140 deletions
diff --git a/node_modules/time-require/src/timeRequire.js b/node_modules/time-require/src/timeRequire.js
deleted file mode 100644
index 0ba556fab..000000000
--- a/node_modules/time-require/src/timeRequire.js
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * timeRequire - measure the time to load all the subsequnt modules by hoocking require() calls
- *
- * @author Ciprian Popa (cyparu)
- * @since 0.0.1
- * @version 0.0.1
- */
-
-"use strict";
-
-var // setup vars
- requireData = [],
- write = process.stdout.write.bind(process.stdout),
- relative = require("path").relative,
- cwd = process.cwd(),
- // require hooker should be first module loaded so all the other requires should count as well
- /* jshint -W003 */
- hook = require("./requireHook")(_hooker),
- table = require("text-table"),
- dateTime = require("date-time"),
- prettyMs = require("pretty-ms"),
- chalk = require("chalk"),
- // extra locals
- DEFAULT_COLUMNS = 80,
- BAR_CHAR = process.platform === "win32" ? "■" : "▇",
- sorted = hasArg("--sorted") || hasArg("--s"),
- treshold = (hasArg("--verbose") || hasArg("--V")) ? 0.0: 0.01, // TODO - configure treshold using CLI ?
- EXTRA_COLUMNS = sorted ? 24 : 20;
-
-function hasArg(arg) {
- return process.argv.indexOf(arg) !== -1;
-}
-
-function pad(count, seq) {
- return (count > 1) ? new Array(count).join(seq) : "";
-}
-
-function log(str) {
- write(str + "\n", "utf8");
-}
-
-/**
- * Callback/listener used by requireHook hook to collect all the modules in their loading order
- */
-function _hooker(data) {
- var filename = relative(cwd, data.filename);
- // use the shortest name
- if (filename.length > data.filename) {
- filename = data.filename;
- }
- requireData.push({
- order: requireData.length, // loading order
- time: data.startedIn, // time
- label: data.name + " (" + filename + ")"
-// name: data.name,
-// filename: filename
- });
-}
-
-function formatTable(tableData, totalTime) {
- var NAME_FILE_REX = /(.+)( \(.+\))/,
- maxColumns = process.stdout.columns || DEFAULT_COLUMNS,
- validCount = 0,
- longestRequire = tableData.reduce(function(acc, data) {
- var avg = data.time / totalTime;
- if (avg < treshold) {
- return acc;
- }
- validCount++;
- return Math.max(acc, data.label.length);
- }, 0),
- maxBarWidth = (longestRequire > maxColumns / 2) ? ((maxColumns - EXTRA_COLUMNS) / 2) : (maxColumns - (longestRequire + EXTRA_COLUMNS)),
- processedTableData = [],
- counter, maxOrderChars;
-
- function shorten(name) {
- var nameLength = name.length,
- partLength, start, end;
- if (name.length < maxBarWidth) {
- return name;
- }
- partLength = Math.floor((maxBarWidth - 3) / 2);
- start = name.substr(0, partLength + 1);
- end = name.substr(nameLength - partLength);
- return start.trim() + "..." + end.trim();
- }
-
- function createBar(percentage) {
- var rounded = Math.round(percentage * 100);
- return ((rounded === 0) ? "0" : (pad(Math.ceil(maxBarWidth * percentage) + 1, BAR_CHAR) + " " + rounded)) + "%";
- }
-
- // sort the data if needed
- if (sorted) {
- tableData.sort(function(e1, e2) {
- return e2.time - e1.time;
- });
- }
- // initialize the counter
- counter = 1;
- // get num ber of chars for padding
- maxOrderChars = tableData.length.toString().length;
- // push the header
- processedTableData.push(["#" + (sorted ? " [order]" : ""), "module", "time", "%"]);
- tableData.forEach(function(data) {
- var avg = data.time / totalTime,
- counterLabel, label, match;
- // slect just data over the threshold
- if (avg >= treshold) {
- counterLabel = counter++;
- // for sorted collumns show the order loading with padding
- if (sorted) {
- counterLabel += pad(maxOrderChars - data.order.toString().length + 1, " ") + " [" + data.order + "]";
- }
- label = shorten(data.label);
- match = label.match(NAME_FILE_REX);
- if (match) {
- label = chalk.green(match[1]) + match[2];
- }
- processedTableData.push([counterLabel, label, chalk.yellow(prettyMs(data.time)), chalk.blue(createBar(avg))]);
- }
- });
-
- return table(processedTableData, {
- align: ["r", "l", "r", "l"],
- stringLength: function(str) {
- return chalk.stripColor(str).length;
- }
- });
-}
-
-// hook process exit to display the report at the end
-process.once("exit", function() {
- var startTime = hook.hookedAt,
- totalTime = Date.now() - startTime.getTime();
- log("\n\n" + chalk.underline("Start time: " + chalk.yellow("(" + dateTime(startTime) + ")") + " [treshold=" + (treshold * 100) + "%" + (sorted ? ",sorted" : "") + "]"));
- log(formatTable(requireData, totalTime));
- log(chalk.bold.blue("Total require(): ") + chalk.yellow(requireData.length));
- log(chalk.bold.blue("Total time: ") + chalk.yellow(prettyMs(totalTime)));
-});