Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var specialConsole = (function() {
- function writeLine (message) {
- var args = [];
- if (writeLine.arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args.push(arguments[i]);
- };
- return console.log(replacePlaceHolder(arguments[0],args));
- } else {
- return console.log(message);
- };
- }
- function writeError (message) {
- var args = [];
- if (writeError.arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args.push(arguments[i]);
- };
- return console.error(replacePlaceHolder(arguments[0],args));
- } else {
- return console.error(message);
- };
- }
- function writeWarning (message) {
- var args = [];
- if (writeWarning.arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args.push(arguments[i]);
- };
- return console.warn(replacePlaceHolder(arguments[0],args));
- } else {
- return console.warn(message);
- };
- }
- function writeInfo (message) {
- var args = [];
- if (writeInfo.arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args.push(arguments[i]);
- };
- return console.warn(replacePlaceHolder(arguments[0],args));
- } else {
- return console.warn(message);
- };
- }
- function replacePlaceHolder(message,args) {
- var hasPlaceHolder = false;
- var nextArg = 0;
- var newMessage = "";
- for (var i = 0; i < message.length - 2; i+= 1) {
- if (message[i] == "{" && message[i + 2] == "}" && isNumber(message[i + 1])) {
- if (parseInt(message[i + 1] + 1) > args.length) {
- throw new Error("There are not enough arguments passed to the function");
- };
- if (args[nextArg].hasOwnProperty("toString")) {
- newMessage = message.replace(nextArg, args[nextArg].toString());
- nextArg++;
- } else {
- newMessage = message.replace(nextArg, args[nextArg]);
- nextArg++;
- };
- };
- };
- function isNumber(n) {
- return !isNaN(parseFloat(n)) && isFinite(n);
- }
- return newMessage;
- }
- return {
- writeLine: writeLine,
- writeError: writeError,
- writeWarning: writeWarning,
- writeInfo: writeInfo
- }
- })();
- specialConsole.writeLine("Message: hello");
- specialConsole.writeLine("Message: {0}", "hello");
- specialConsole.writeLine("Object: {0}", { name: "Gosho", toString: function() { return this.name }});
- specialConsole.writeError("Error: {0}", "A fatal error has occurred.");
- specialConsole.writeWarning("Warning: {0}", "You are not allowed to do that!");
- specialConsole.writeInfo("Info: {0}", "Hi there! Here is some info for you.");
- specialConsole.writeError(Error" object: {0}", { msg: "An error happened", toString: function() { return this.msg }});
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement