Skip to content

Commit dec398c

Browse files
committed
v.0.1.1
- Added unit test; - Added tslint;
1 parent 8b951b5 commit dec398c

24 files changed

+220
-244
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@ node_modules/
2323
Thumbs.db
2424
UserInterfaceState.xcuserstate
2525

26-
*.js
27-
*.d.ts
26+
*.abc.js
27+
*.abc.d.ts

docs-commands.ignorenpm

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
##Compile TS:
2+
> tsc
3+
4+
##TSLint:
5+
# Run check:
6+
> tslint -c tslint.json 'src/**/*.ts'
7+
# Run check and fixed:
8+
> tslint -c tslint.json 'src/**/*.ts' --fix

docs-compile.ignorenpm

Lines changed: 0 additions & 2 deletions
This file was deleted.

package.json

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
{
22
"name": "lambda-expression",
3-
"version": "0.1.0",
3+
"version": "0.1.1",
44
"description": "Utility to analyze function (js) and arrow functions (ts), and create metadata of expressions, the initial scope is that it seeks to solve simple expressions. And later advance to encompass complex expressions.",
55
"main": "./src/main.js",
66
"types": "./src/main.d.ts",
77
"scripts": {
8-
"test": "echo \"Error: no test specified\" && exit 1"
8+
"test": "mocha -r ts-node/register src/**/*.spec.ts",
9+
"showcase": "cd .\\showcase\\ npm run start-showcase"
910
},
1011
"keywords": [
1112
"linq",
@@ -26,5 +27,12 @@
2627
"url": "https://github.com/fernandocode/lambda-expression/issues"
2728
},
2829
"homepage": "https://github.com/fernandocode/lambda-expression#readme",
29-
"devDependencies": {}
30+
"devDependencies": {
31+
"@types/chai": "^4.1.1",
32+
"@types/mocha": "^2.2.46",
33+
"chai": "^4.1.2",
34+
"mocha": "^5.0.0",
35+
"ts-node": "^4.1.0",
36+
"typescript": "2.6.2"
37+
}
3038
}

showcase/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
</head>
1313

1414
<body>
15+
<h1>See console</h1>
1516
<script src="bundle.js" type="text/javascript"></script>
1617
</body>
1718

showcase/package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"scripts": {
33
"start": "webpack-dev-server",
4+
"start-showcase": "npm run start",
45
"dev": "lite-server",
56
"test": "echo \"Error: no test specified\" && exit 1"
67
},
@@ -12,11 +13,8 @@
1213
"devDependencies": {
1314
"lite-server": "^2.3.0",
1415
"ts-loader": "^2.3.7",
15-
"typescript": "^2.5.3",
16+
"typescript": "2.6.2",
1617
"webpack": "^3.6.0",
1718
"webpack-dev-server": "^2.9.0"
18-
},
19-
"dependencies": {
20-
"lambda-expression": "0.0.5"
2119
}
2220
}

src/expression-utils.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,24 +40,25 @@ var ExpressionUtils = (function () {
4040
};
4141
ExpressionUtils.prototype.getPropertiesByExpressionString = function (expression) {
4242
var propertiesReferences = expression.split(".");
43-
if (propertiesReferences.length)
44-
propertiesReferences.shift(); // remove alias
43+
if (propertiesReferences.length) {
44+
propertiesReferences.shift();
45+
} // remove alias
4546
return propertiesReferences;
4647
};
4748
ExpressionUtils.prototype.getColumnByLambdaExpression = function (expression) {
4849
var propertiesMetadada = this.getPropertiesByLambdaExpression(expression);
4950
return {
5051
columnLeft: this.getColumnByProperties(propertiesMetadada.propertiesLeft),
52+
columnRight: this.getColumnByProperties(propertiesMetadada.propertiesRight),
5153
operator: propertiesMetadada.operator,
52-
columnRight: this.getColumnByProperties(propertiesMetadada.propertiesRight)
5354
};
5455
};
5556
ExpressionUtils.prototype.getPropertiesByLambdaExpression = function (expression) {
5657
var expressionMetadada = this.getExpressionByLambdaExpression(expression);
5758
return {
58-
propertiesLeft: this.getPropertiesByExpressionString(expressionMetadada.expressionLeft),
5959
operator: expressionMetadada.operator,
60-
propertiesRight: this.getPropertiesByExpressionString(expressionMetadada.expressionRight)
60+
propertiesLeft: this.getPropertiesByExpressionString(expressionMetadada.expressionLeft),
61+
propertiesRight: this.getPropertiesByExpressionString(expressionMetadada.expressionRight),
6162
};
6263
};
6364
ExpressionUtils.prototype.getExpressionByLambdaExpression = function (expression) {
@@ -66,13 +67,13 @@ var ExpressionUtils = (function () {
6667
strAfterReturn = expression.toString().split("{")[1].trim();
6768
}
6869
var strExpression = strAfterReturn.split(";")[0].split(" ");
69-
if (strExpression.length != 3) {
70-
throw "Lambda expression '" + expression.toString() + "' not supported! Use simple expression with '{expressionLeft} {operador} {expressionRight}'";
70+
if (strExpression.length !== 3) {
71+
throw new Error("Lambda expression '" + expression.toString() + "'\n not supported! Use simple expression with '{expressionLeft} {operador} {expressionRight}'");
7172
}
7273
return {
7374
expressionLeft: strExpression[0],
75+
expressionRight: strExpression[2],
7476
operator: strExpression[1],
75-
expressionRight: strExpression[2]
7677
};
7778
};
7879
return ExpressionUtils;

src/expression-utils.ts

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { LambdaColumnMetadata, LambdaPropertiesMetadata, LambdaExpressionMetadata } from './metadatas';
1+
import { LambdaColumnMetadata, LambdaExpressionMetadata, LambdaPropertiesMetadata } from "./metadatas";
22
import { Expression, LambdaExpression } from "./types";
33

44
export class ExpressionUtils {
@@ -13,7 +13,7 @@ export class ExpressionUtils {
1313

1414
public getValueByProperties(instance: any, properties: string[]) {
1515
let result = instance;
16-
properties.forEach(property => {
16+
properties.forEach((property) => {
1717
result = this.getValue(result, property);
1818
});
1919
return result;
@@ -39,32 +39,33 @@ export class ExpressionUtils {
3939
if (!strAfterReturn) {
4040
strAfterReturn = expression.toString().split("{")[1].trim();
4141
}
42-
let strBeforeSemicon = strAfterReturn.split(" ")[0].split(";")[0];
42+
const strBeforeSemicon = strAfterReturn.split(" ")[0].split(";")[0];
4343
return this.getPropertiesByExpressionString(strBeforeSemicon);
4444
}
4545

4646
private getPropertiesByExpressionString(expression: string): string[] {
47-
let propertiesReferences = expression.split(".");
48-
if (propertiesReferences.length)
49-
propertiesReferences.shift(); // remove alias
47+
const propertiesReferences = expression.split(".");
48+
if (propertiesReferences.length) {
49+
propertiesReferences.shift();
50+
} // remove alias
5051
return propertiesReferences;
5152
}
5253

5354
private getColumnByLambdaExpression<T>(expression: LambdaExpression<T>): LambdaColumnMetadata {
54-
let propertiesMetadada = this.getPropertiesByLambdaExpression(expression);
55+
const propertiesMetadada = this.getPropertiesByLambdaExpression(expression);
5556
return {
5657
columnLeft: this.getColumnByProperties(propertiesMetadada.propertiesLeft),
58+
columnRight: this.getColumnByProperties(propertiesMetadada.propertiesRight),
5759
operator: propertiesMetadada.operator,
58-
columnRight: this.getColumnByProperties(propertiesMetadada.propertiesRight)
5960
};
6061
}
6162

6263
private getPropertiesByLambdaExpression<T>(expression: LambdaExpression<T>): LambdaPropertiesMetadata {
63-
let expressionMetadada = this.getExpressionByLambdaExpression(expression);
64+
const expressionMetadada = this.getExpressionByLambdaExpression(expression);
6465
return {
65-
propertiesLeft: this.getPropertiesByExpressionString(expressionMetadada.expressionLeft),
6666
operator: expressionMetadada.operator,
67-
propertiesRight: this.getPropertiesByExpressionString(expressionMetadada.expressionRight)
67+
propertiesLeft: this.getPropertiesByExpressionString(expressionMetadada.expressionLeft),
68+
propertiesRight: this.getPropertiesByExpressionString(expressionMetadada.expressionRight),
6869
};
6970
}
7071

@@ -74,15 +75,16 @@ export class ExpressionUtils {
7475
if (!strAfterReturn) {
7576
strAfterReturn = expression.toString().split("{")[1].trim();
7677
}
77-
let strExpression = strAfterReturn.split(";")[0].split(" ");
78+
const strExpression = strAfterReturn.split(";")[0].split(" ");
7879

79-
if (strExpression.length != 3) {
80-
throw `Lambda expression '${expression.toString()}' not supported! Use simple expression with '{expressionLeft} {operador} {expressionRight}'`;
80+
if (strExpression.length !== 3) {
81+
throw new Error(`Lambda expression '${expression.toString()}'
82+
not supported! Use simple expression with '{expressionLeft} {operador} {expressionRight}'`);
8183
}
8284
return {
8385
expressionLeft: strExpression[0],
86+
expressionRight: strExpression[2],
8487
operator: strExpression[1],
85-
expressionRight: strExpression[2]
8688
};
8789
}
88-
}
90+
}

src/index.d.ts

Whitespace-only changes.

src/index.js

Lines changed: 0 additions & 94 deletions
This file was deleted.

0 commit comments

Comments
 (0)