0.0.3 • Published 5 years ago

babel-plugin-logfunctionname v0.0.3

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

babel-plugin-logfunctionname

A babel plugin to insert a log in function to show the function name

if you join in a large project but with no document, this plugin maybe could help you;

In

const functionName = function () {

}
function functionHere() {

}
const arrowFunction = () => {

}
class ClassFunction {
  constructor(name) {
    this.name = name;
  }
  seyHello() {
    console.log(`hello ${this.name}`)
  }
}
let classFunctionItem = new ClassFunction('sz-p')

functionName();
functionHere();
arrowFunction();
classFunctionItem.seyHello();

out

"use strict";

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

var functionName = function functionName() {
  console.log("function_working:functionName");
};

function functionHere() {
  console.log("function_working:functionHere");
}

var arrowFunction = function arrowFunction() {
  console.log("function_working:arrowFunction");
};

var ClassFunction =
/*#__PURE__*/
function () {
  function ClassFunction(name) {
    console.log("function_working:ClassFunction");

    _classCallCheck(this, ClassFunction);

    this.name = name;
  }

  _createClass(ClassFunction, [{
    key: "seyHello",
    value: function seyHello() {
      console.log("function_working:seyHello");
      console.log("hello ".concat(this.name));
    }
  }]);

  return ClassFunction;
}();

var classFunctionItem = new ClassFunction('sz-p');
functionName();
functionHere();
arrowFunction();
classFunctionItem.seyHello();

Installation

$ yarn add babel-plugin-logfunctionname -D

Usage

Via .babelrc (Recommended)

.babelrc

{
  "plugins": ["babel-plugin-logfunctionname"]
}

Via CLI

$ babel --plugins babel-plugin-logfunctionname script.js

Via Node API

require('babel-core').transform('code', {
  plugins: ['babel-plugin-logfunctionname']
});

Options

KeyTypeDescriptionExample
enablebooleanenable or disable pluginfalse
functionWorkingHintstringThe string before functionNamefunction_working:
excludeFunctionsNamearrayexclude functions by function name['doNotLogThis', /^excludeByRegExp/]
excludeFilesNamearrayexclude functions by file name['subCode', /node_modules/]

test

$ yarn install
$ yarn transform
$ yarn runOut