fecs lint
This commit is contained in:
18
.fecsignore
Normal file
18
.fecsignore
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
src/fonteditor/template/dialog/*
|
||||||
|
src/fonteditor/template/export/*
|
||||||
|
src/editor/shapes/*
|
||||||
|
src/ttf/data/*
|
||||||
|
build/*
|
||||||
|
css/*
|
||||||
|
demo/*
|
||||||
|
dep/*
|
||||||
|
font/*
|
||||||
|
node_modules
|
||||||
|
release
|
||||||
|
test
|
||||||
|
index.html
|
||||||
|
index-en.html
|
||||||
|
empty.html
|
||||||
|
edp-build-config.js
|
||||||
|
edp-build-config-node.js
|
||||||
|
edp-webserver-config.js
|
||||||
@@ -4,8 +4,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var esprima = require('esprima');
|
var esprima = require('esprima');
|
||||||
var estraverse = require( 'estraverse' );
|
var estraverse = require('estraverse');
|
||||||
var escodegen = require('escodegen');
|
|
||||||
|
|
||||||
var SYNTAX = estraverse.Syntax;
|
var SYNTAX = estraverse.Syntax;
|
||||||
|
|
||||||
// 顶级模块,用来生成相对位置
|
// 顶级模块,用来生成相对位置
|
||||||
@@ -32,7 +33,8 @@ function getAst(code) {
|
|||||||
ast = esprima.parse(code, {
|
ast = esprima.parse(code, {
|
||||||
range: true
|
range: true
|
||||||
});
|
});
|
||||||
} catch (ex) {
|
}
|
||||||
|
catch (e) {
|
||||||
throw 'can\'t parse amd code';
|
throw 'can\'t parse amd code';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,12 +43,12 @@ function getAst(code) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取define的factory
|
* 获取define的factory
|
||||||
*
|
* @param {Object} defineExpr define表达式
|
||||||
* @return {astNode}
|
* @return {astNode}
|
||||||
*/
|
*/
|
||||||
function getDefineFactory(defineExpr) {
|
function getDefineFactory(defineExpr) {
|
||||||
|
|
||||||
var args = defineExpr['arguments'];
|
var args = defineExpr.arguments;
|
||||||
var factoryAst;
|
var factoryAst;
|
||||||
|
|
||||||
// 解析参数
|
// 解析参数
|
||||||
@@ -74,9 +76,9 @@ function getDefineBlock(code) {
|
|||||||
// require('fs').writeFileSync('ast.json', JSON.stringify(ast));
|
// require('fs').writeFileSync('ast.json', JSON.stringify(ast));
|
||||||
estraverse.traverse(ast, {
|
estraverse.traverse(ast, {
|
||||||
enter: function (node, parent) {
|
enter: function (node, parent) {
|
||||||
if ( node.type == SYNTAX.ExpressionStatement
|
if (node.type === SYNTAX.ExpressionStatement
|
||||||
&& node.expression.type == SYNTAX.CallExpression
|
&& node.expression.type === SYNTAX.CallExpression
|
||||||
&& node.expression.callee.name == 'define'
|
&& node.expression.callee.name === 'define'
|
||||||
) {
|
) {
|
||||||
|
|
||||||
var factory = getDefineFactory(node.expression);
|
var factory = getDefineFactory(node.expression);
|
||||||
@@ -91,7 +93,7 @@ function getDefineBlock(code) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// define(function() {})
|
// define(function() {})
|
||||||
else if (factory.type === SYNTAX.FunctionExpression){
|
else if (factory.type === SYNTAX.FunctionExpression) {
|
||||||
defineBlock = {
|
defineBlock = {
|
||||||
type: 'function',
|
type: 'function',
|
||||||
defineRange: node.range,
|
defineRange: node.range,
|
||||||
@@ -101,6 +103,18 @@ function getDefineBlock(code) {
|
|||||||
var body = factory.body.body;
|
var body = factory.body.body;
|
||||||
var returnRange = defineBlock.returnRange = [];
|
var returnRange = defineBlock.returnRange = [];
|
||||||
|
|
||||||
|
var enterHandler = function (returnNode) {
|
||||||
|
if (
|
||||||
|
returnNode.type === SYNTAX.FunctionExpression
|
||||||
|
|| returnNode.type === SYNTAX.FunctionDeclaration
|
||||||
|
) {
|
||||||
|
this.skip();
|
||||||
|
}
|
||||||
|
else if (returnNode.type === SYNTAX.ReturnStatement) {
|
||||||
|
returnRange.push(returnNode.range);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// 替换return
|
// 替换return
|
||||||
for (var i = 0, l = body.length; i < l; i++) {
|
for (var i = 0, l = body.length; i < l; i++) {
|
||||||
// 直接在函数体里的return
|
// 直接在函数体里的return
|
||||||
@@ -109,19 +123,9 @@ function getDefineBlock(code) {
|
|||||||
}
|
}
|
||||||
// 在函数内部块里的return
|
// 在函数内部块里的return
|
||||||
else if (body[i].type !== SYNTAX.FunctionExpression) {
|
else if (body[i].type !== SYNTAX.FunctionExpression) {
|
||||||
var functionEnter = 0;
|
|
||||||
estraverse.traverse(body[i], {
|
estraverse.traverse(body[i], {
|
||||||
enter: function (returnNode) {
|
enter: enterHandler
|
||||||
if (
|
|
||||||
returnNode.type === SYNTAX.FunctionExpression
|
|
||||||
|| returnNode.type === SYNTAX.FunctionDeclaration
|
|
||||||
) {
|
|
||||||
this.skip();
|
|
||||||
}
|
|
||||||
else if (returnNode.type === SYNTAX.ReturnStatement){
|
|
||||||
returnRange.push(returnNode.range);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -166,7 +170,7 @@ function replaceDefine(code) {
|
|||||||
|
|
||||||
index = block.defineRange[1];
|
index = block.defineRange[1];
|
||||||
}
|
}
|
||||||
else if (block.type === 'object'){
|
else if (block.type === 'object') {
|
||||||
segments.push(code.slice(index, block.defineRange[0]));
|
segments.push(code.slice(index, block.defineRange[0]));
|
||||||
segments.push('module.exports =');
|
segments.push('module.exports =');
|
||||||
segments.push(code.slice(block.factoryRange[0], block.factoryRange[1]) + ';');
|
segments.push(code.slice(block.factoryRange[0], block.factoryRange[1]) + ';');
|
||||||
@@ -202,16 +206,6 @@ function replaceRequire(code, codeDepth) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成commonjs代码
|
|
||||||
* @param {Object} ast ast树
|
|
||||||
* @return {string} 生成后的代码
|
|
||||||
*/
|
|
||||||
function genCommonJS(ast) {
|
|
||||||
return escodegen.generate(ast);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = function (code, codeDepth) {
|
module.exports = function (code, codeDepth) {
|
||||||
|
|
||||||
if (codeDepth && codeDepth[codeDepth.length - 1] !== '/') {
|
if (codeDepth && codeDepth[codeDepth.length - 1] !== '/') {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
* @author mengke01(kekee000@gmail.com)
|
* @author mengke01(kekee000@gmail.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* eslint-disable*/
|
||||||
|
|
||||||
// 测试define函数
|
// 测试define函数
|
||||||
|
|
||||||
@@ -11,14 +12,14 @@
|
|||||||
test1: 'test1',
|
test1: 'test1',
|
||||||
test2: 'test2'
|
test2: 'test2'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 测试 string
|
// 测试 string
|
||||||
|
|
||||||
|
|
||||||
module.exports = 'test string';
|
module.exports = 'test string';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 测试commonjs wrapper
|
// 测试commonjs wrapper
|
||||||
@@ -28,7 +29,7 @@
|
|||||||
test1: 'test1',
|
test1: 'test1',
|
||||||
test2: 'test2'
|
test2: 'test2'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -56,7 +57,7 @@ module.exports ={
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 测试 nodejs兼容写法
|
// 测试 nodejs兼容写法
|
||||||
@@ -65,7 +66,7 @@ if (typeof exports !== 'undefined') {
|
|||||||
module.exports = exports = require('xmldom').DOMParser;
|
module.exports = exports = require('xmldom').DOMParser;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
module.exports = window.DOMParser;
|
module.exports = window.DOMParser;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,11 @@
|
|||||||
* @author mengke01(kekee000@gmail.com)
|
* @author mengke01(kekee000@gmail.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* eslint-disable*/
|
||||||
|
|
||||||
// 测试define函数
|
// 测试define函数
|
||||||
define(
|
define(
|
||||||
function(require) {
|
function (require) {
|
||||||
|
|
||||||
return require('common/test').test({
|
return require('common/test').test({
|
||||||
test1: 'test1',
|
test1: 'test1',
|
||||||
@@ -19,7 +20,7 @@ define(
|
|||||||
// 测试 string
|
// 测试 string
|
||||||
|
|
||||||
define(
|
define(
|
||||||
function(require) {
|
function (require) {
|
||||||
return 'test string';
|
return 'test string';
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -28,7 +29,7 @@ define(
|
|||||||
// 测试commonjs wrapper
|
// 测试commonjs wrapper
|
||||||
|
|
||||||
define('test-module', ['test-module'],
|
define('test-module', ['test-module'],
|
||||||
function(require) {
|
function (require) {
|
||||||
return {
|
return {
|
||||||
test1: 'test1',
|
test1: 'test1',
|
||||||
test2: 'test2'
|
test2: 'test2'
|
||||||
@@ -49,7 +50,7 @@ define('test-module', {
|
|||||||
|
|
||||||
// 测试多return
|
// 测试多return
|
||||||
define(
|
define(
|
||||||
function(require) {
|
function (require) {
|
||||||
|
|
||||||
var string = require('common/string');
|
var string = require('common/string');
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
fonteditor/template/dialog/*
|
|
||||||
fonteditor/template/export/*
|
|
||||||
editor/shapes/*
|
|
||||||
ttf/data/*
|
|
||||||
@@ -124,7 +124,7 @@ define(
|
|||||||
var buffer = e.target.result;
|
var buffer = e.target.result;
|
||||||
var imported = svg2ttf(buffer);
|
var imported = svg2ttf(buffer);
|
||||||
// 设置单个字形名字
|
// 设置单个字形名字
|
||||||
if (imported.glyf && imported.glyf.length == 1) {
|
if (imported.glyf && imported.glyf.length === 1) {
|
||||||
imported.glyf[0].name = fName;
|
imported.glyf[0].name = fName;
|
||||||
}
|
}
|
||||||
fileReader = null;
|
fileReader = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user