Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

wix-jsdoc-babel

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wix-jsdoc-babel - npm Package Compare versions

Comparing version 1.3.3 to 1.3.4

87

dist/index.js
'use strict';
var jsdocBabel = require('jsdoc-babel');
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handlers = undefined;
exports.setExtensions = function (value) {
global.env.conf.babel.extensions = value;
var _lodash = require('lodash');
var _babelCore = require('babel-core');
var _jsdocRegex = require('jsdoc-regex');
var _jsdocRegex2 = _interopRequireDefault(_jsdocRegex);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// jsdoc with requizzle loads the modules twice - so the only way to move config between the two runs is using global
if (!global.wixJsdocBabelExtensions) global.wixJsdocBabelExtensions = ['js'];
function shouldProcessFile(filename, _ref) {
var extensions = _ref.extensions;
return (0, _lodash.includes)(extensions, (0, _lodash.last)(filename.split('.')));
}
function countCharInRange(source, from, to, char) {
var cnt = 0;
for (var i = from; i < to; i += 1) {
if (source[i] === char) {
cnt += 1;
}
}
return cnt;
}
function stripWhitespace(text) {
return text.replace(/ /g, '');
}
function processFile(source, options, doclets) {
var regex = (0, _jsdocRegex2.default)();
var lastIndex = 0;
var linesCount = 1;
var match = regex.exec(source);
while (match !== null) {
var _match = match,
index = _match.index;
linesCount += countCharInRange(source, lastIndex, index, '\n');
var key = stripWhitespace(match[0]);
// eslint-disable-next-line no-param-reassign
doclets[key] = linesCount;
lastIndex = index;
match = regex.exec(source);
}
return (0, _babelCore.transform)(source, (0, _lodash.omit)(options, 'extensions')).code;
}
var doclets = {};
// eslint-disable-next-line import/prefer-default-export
var handlers = exports.handlers = {
beforeParse: function beforeParse(event) {
doclets = {};
var options = {
extensions: global.wixJsdocBabelExtensions,
filename: event.filename
};
if (shouldProcessFile(event.filename, options)) {
// eslint-disable-next-line no-param-reassign
event.source = processFile(event.source, options, doclets);
}
},
newDoclet: function newDoclet(e) {
if (e) {
if (doclets[stripWhitespace(e.doclet.comment)]) {
e.doclet.meta.lineno = doclets[stripWhitespace(e.doclet.comment)];
}
}
}
};
exports.init = function (param) {
exports.setExtensions(param.split(','));
};
exports.handlers = jsdocBabel.handlers;
global.wixJsdocBabelExtensions = param.split(',');
};

8

package.json
{
"name": "wix-jsdoc-babel",
"version": "1.3.3",
"version": "1.3.4",
"description": "",

@@ -14,4 +14,8 @@ "main": "dist/index.js",

"dependencies": {
"jsdoc-babel": "wix/jsdoc-babel"
"jsdoc-regex": "^1.0.1",
"lodash": "^4.13.1"
},
"peerDependencies": {
"babel-core": ">6.0.0"
},
"devDependencies": {

@@ -18,0 +22,0 @@ "babel-cli": "^6.26.0",

@@ -1,12 +0,71 @@

let jsdocBabel = require('jsdoc-babel');
import { assign, includes, get, last, omit } from 'lodash';
import { transform } from 'babel-core';
import jsdocRegex from 'jsdoc-regex';
exports.setExtensions = function(value) {
global.env.conf.babel.extensions = value;
// jsdoc with requizzle loads the modules twice - so the only way to move config between the two runs is using global
if (!global.wixJsdocBabelExtensions)
global.wixJsdocBabelExtensions =['js'];
function shouldProcessFile(filename, { extensions }) {
return includes(extensions, last(filename.split('.')));
}
function countCharInRange(source, from, to, char) {
let cnt = 0;
for (let i = from; i < to; i += 1) {
if (source[i] === char) {
cnt += 1;
}
}
return cnt;
}
function stripWhitespace(text) {
return text.replace(/ /g, '');
}
function processFile(source, options, doclets) {
const regex = jsdocRegex();
let lastIndex = 0;
let linesCount = 1;
let match = regex.exec(source);
while (match !== null) {
const { index } = match;
linesCount += countCharInRange(source, lastIndex, index, '\n');
const key = stripWhitespace(match[0]);
// eslint-disable-next-line no-param-reassign
doclets[key] = linesCount;
lastIndex = index;
match = regex.exec(source);
}
return transform(source, omit(options, 'extensions')).code;
}
let doclets = {};
// eslint-disable-next-line import/prefer-default-export
export const handlers = {
beforeParse: (event) => {
doclets = {};
const options = {
extensions: global.wixJsdocBabelExtensions,
filename: event.filename,
};
if (shouldProcessFile(event.filename, options)) {
// eslint-disable-next-line no-param-reassign
event.source = processFile(event.source, options, doclets);
}
},
newDoclet: (e) => {
if (e) {
if (doclets[stripWhitespace(e.doclet.comment)]) {
e.doclet.meta.lineno = doclets[stripWhitespace(e.doclet.comment)];
}
}
},
};
exports.init = function(param) {
exports.setExtensions(param.split(','));
global.wixJsdocBabelExtensions = param.split(',');
};
exports.handlers = jsdocBabel.handlers;
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc