Skip to content

Commit

Permalink
Remove lodash as dependencies (#13)
Browse files Browse the repository at this point in the history
* Remove lodash as dependencies
  • Loading branch information
MrMeison authored and ignatvilesov committed Jun 8, 2017
1 parent 6406bbe commit 59ff848
Show file tree
Hide file tree
Showing 10 changed files with 69 additions and 62 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
@@ -0,0 +1,2 @@
## 1.2.0
* Removed `lodash` as dependencies
2 changes: 0 additions & 2 deletions docs/usage/installation-guide.md
Expand Up @@ -36,7 +36,6 @@ As a result you will have the following file structure:

## Including artifacts to the custom visual
To use the package with your custom visuals your should add the following files to the ```externalJS``` property of ```pbiviz.json``` :
* ```node_modules/lodash/lodash.min.js```
* ```node_modules/powerbi-visuals-utils-dataviewutils/lib/index.js```

As a result you will have the following file structure:
Expand All @@ -47,7 +46,6 @@ As a result you will have the following file structure:
"author": {...},
"assets": {...},
"externalJS": [
"node_modules/lodash/lodash.min.js",
"node_modules/powerbi-visuals-utils-dataviewutils/lib/index.js"
],
"style": ...,
Expand Down
1 change: 0 additions & 1 deletion karma.conf.js
Expand Up @@ -57,7 +57,6 @@ module.exports = (config) => {
],
singleRun: true,
files: [
'node_modules/lodash/lodash.min.js',
srcRecursivePath,
testRecursivePath,
{
Expand Down
32 changes: 17 additions & 15 deletions lib/index.js
Expand Up @@ -122,15 +122,16 @@ var powerbi;
var DataRoleHelper;
(function (DataRoleHelper) {
function getMeasureIndexOfRole(grouped, roleName) {
if (!_.isEmpty(grouped)) {
var firstGroup = grouped[0];
if (firstGroup.values && firstGroup.values.length > 0) {
for (var i = 0, len = firstGroup.values.length; i < len; ++i) {
var value = firstGroup.values[i];
if (value && value.source) {
if (hasRole(value.source, roleName)) {
return i;
}
if (!grouped || !grouped.length) {
return -1;
}
var firstGroup = grouped[0];
if (firstGroup.values && firstGroup.values.length > 0) {
for (var i = 0, len = firstGroup.values.length; i < len; ++i) {
var value = firstGroup.values[i];
if (value && value.source) {
if (hasRole(value.source, roleName)) {
return i;
}
}
}
Expand All @@ -139,7 +140,7 @@ var powerbi;
}
DataRoleHelper.getMeasureIndexOfRole = getMeasureIndexOfRole;
function getCategoryIndexOfRole(categories, roleName) {
if (!_.isEmpty(categories)) {
if (categories && categories.length) {
for (var i = 0, ilen = categories.length; i < ilen; i++) {
if (hasRole(categories[i].source, roleName)) {
return i;
Expand All @@ -158,7 +159,7 @@ var powerbi;
return dataView != null
&& dataView.metadata != null
&& dataView.metadata.columns
&& _.some(dataView.metadata.columns, function (c) { return c.roles && c.roles[name] !== undefined; }); // any is an alias of some
&& dataView.metadata.columns.some(function (c) { return c.roles && c.roles[name] !== undefined; }); // any is an alias of some
}
DataRoleHelper.hasRoleInDataView = hasRoleInDataView;
function hasRoleInValueColumn(valueColumn, name) {
Expand Down Expand Up @@ -382,9 +383,10 @@ var powerbi;
}
converterHelper.getMiscellaneousTypeDescriptor = getMiscellaneousTypeDescriptor;
function hasImageUrlColumn(dataView) {
if (!dataView || !dataView.metadata || _.isEmpty(dataView.metadata.columns))
if (!dataView || !dataView.metadata || !dataView.metadata.columns || !dataView.metadata.columns.length) {
return false;
return _.some(dataView.metadata.columns, function (column) { return isImageUrlColumn(column) === true; });
}
return dataView.metadata.columns.some(function (column) { return isImageUrlColumn(column) === true; });
}
converterHelper.hasImageUrlColumn = hasImageUrlColumn;
})(converterHelper = dataview.converterHelper || (dataview.converterHelper = {}));
Expand Down Expand Up @@ -465,7 +467,7 @@ var powerbi;
properties: {}
};
for (var key in dataViewProperties) {
if (_.has(dataViewProperties, key)) {
if (dataViewProperties.hasOwnProperty(key)) {
instance.properties[key] = dataViewProperties[key];
}
}
Expand All @@ -490,9 +492,9 @@ var powerbi;
});
return properties;
};
DataViewObjectsParser.InnumerablePropertyPrefix = /^_/;
return DataViewObjectsParser;
}());
DataViewObjectsParser.InnumerablePropertyPrefix = /^_/;
dataview.DataViewObjectsParser = DataViewObjectsParser;
})(dataview = utils.dataview || (utils.dataview = {}));
})(utils = extensibility.utils || (extensibility.utils = {}));
Expand Down
24 changes: 10 additions & 14 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "powerbi-visuals-utils-dataviewutils",
"version": "1.1.1",
"version": "1.2.0",
"description": "dataviewutils",
"main": "lib/index.js",
"repository": {
Expand All @@ -27,23 +27,19 @@
"lint": "tslint -r \"node_modules/tslint-microsoft-contrib\" \"+(src|test)/**/*.ts\""
},
"devDependencies": {
"@types/jasmine": "2.5.37",
"@types/lodash": "4.14.36",
"coveralls": "2.11.15",
"jasmine": "2.5.2",
"karma": "1.3.0",
"karma-chrome-launcher": "2.0.0",
"@types/jasmine": "2.5.51",
"coveralls": "2.13.1",
"jasmine": "2.6.0",
"karma": "1.7.0",
"karma-chrome-launcher": "2.1.1",
"karma-coverage": "1.1.1",
"karma-jasmine": "1.0.2",
"karma-remap-istanbul": "0.4.0",
"karma-jasmine": "1.1.0",
"karma-remap-istanbul": "0.6.0",
"karma-sourcemap-loader": "0.3.7",
"karma-typescript-preprocessor": "0.3.0",
"powerbi-visuals-tools": "1.2.0",
"tslint": "4.4.2",
"tslint-microsoft-contrib": "^4.0.1",
"tslint": "5.4.3",
"tslint-microsoft-contrib": "^5.0.0",
"typescript": "2.1.4"
},
"dependencies": {
"lodash": "4.16.2"
}
}
6 changes: 3 additions & 3 deletions src/converterHelper.ts
Expand Up @@ -71,10 +71,10 @@ module powerbi.extensibility.utils.dataview {
}

export function hasImageUrlColumn(dataView: DataView): boolean {
if (!dataView || !dataView.metadata || _.isEmpty(dataView.metadata.columns))
if (!dataView || !dataView.metadata || !dataView.metadata.columns || !dataView.metadata.columns.length) {
return false;

return _.some(dataView.metadata.columns, column => isImageUrlColumn(column) === true);
}
return dataView.metadata.columns.some((column: DataViewMetadataColumn) => isImageUrlColumn(column) === true);
}
}
}
24 changes: 12 additions & 12 deletions src/dataRoleHelper.ts
Expand Up @@ -34,17 +34,17 @@ module powerbi.extensibility.utils.dataview {

export module DataRoleHelper {
export function getMeasureIndexOfRole(grouped: DataViewValueColumnGroup[], roleName: string): number {
if (!_.isEmpty(grouped)) {
let firstGroup = grouped[0];

if (firstGroup.values && firstGroup.values.length > 0) {
for (let i = 0, len = firstGroup.values.length; i < len; ++i) {
let value = firstGroup.values[i];
if (!grouped || !grouped.length) {
return -1;
}
let firstGroup = grouped[0];
if (firstGroup.values && firstGroup.values.length > 0) {
for (let i = 0, len = firstGroup.values.length; i < len; ++i) {
let value = firstGroup.values[i];

if (value && value.source) {
if (hasRole(value.source, roleName)) {
return i;
}
if (value && value.source) {
if (hasRole(value.source, roleName)) {
return i;
}
}
}
Expand All @@ -54,7 +54,7 @@ module powerbi.extensibility.utils.dataview {
}

export function getCategoryIndexOfRole(categories: DataViewCategoryColumn[], roleName: string): number {
if (!_.isEmpty(categories)) {
if (categories && categories.length) {
for (let i = 0, ilen = categories.length; i < ilen; i++) {
if (hasRole(categories[i].source, roleName)) {
return i;
Expand All @@ -74,7 +74,7 @@ module powerbi.extensibility.utils.dataview {
return dataView != null
&& dataView.metadata != null
&& dataView.metadata.columns
&& _.some(dataView.metadata.columns, c => c.roles && c.roles[name] !== undefined); // any is an alias of some
&& dataView.metadata.columns.some((c: DataViewMetadataColumn) => c.roles && c.roles[name] !== undefined); // any is an alias of some
}

export function hasRoleInValueColumn(valueColumn: DataViewValueColumn, name: string): boolean {
Expand Down
2 changes: 1 addition & 1 deletion src/dataViewObjectsParser.ts
Expand Up @@ -103,7 +103,7 @@ module powerbi.extensibility.utils.dataview {
};

for (let key in dataViewProperties) {
if (_.has(dataViewProperties, key)) {
if (dataViewProperties.hasOwnProperty(key)) {
instance.properties[key] = dataViewProperties[key];
}
}
Expand Down
37 changes: 24 additions & 13 deletions test/dataRoleHelperTest.ts
Expand Up @@ -58,11 +58,11 @@ module powerbi.extensibility.utils.dataview.test {
{ displayName: "col4", isMeasure: true, roles: { "Y": true } }
];

let dataView: DataView = dataViewBuilder.build();
const dataView: DataView = dataViewBuilder.build();

let grouped = dataView.categorical.values.grouped();
const grouped: DataViewValueColumnGroup[] = dataView.categorical.values.grouped();

let result = DataRoleHelper.getMeasureIndexOfRole(grouped, "InvalidRoleName");
let result: number = DataRoleHelper.getMeasureIndexOfRole(grouped, "InvalidRoleName");
expect(result).toBe(-1);

result = DataRoleHelper.getMeasureIndexOfRole(grouped, "Size");
Expand All @@ -83,9 +83,9 @@ module powerbi.extensibility.utils.dataview.test {
{ displayName: "col4", isMeasure: true }
];

let dataView: DataView = dataViewBuilder.build();
const dataView: DataView = dataViewBuilder.build();

let grouped = dataView.categorical.values.grouped();
const grouped = dataView.categorical.values.grouped();

let result = DataRoleHelper.getMeasureIndexOfRole(grouped, "InvalidRoleName");
expect(result).toBe(-1);
Expand All @@ -108,11 +108,11 @@ module powerbi.extensibility.utils.dataview.test {
{ displayName: "col4", isMeasure: true }
];

let dataView: DataView = dataViewBuilder.build();
const dataView: DataView = dataViewBuilder.build();

let grouped = dataView.categorical.values.grouped();
const grouped: DataViewValueColumnGroup[] = dataView.categorical.values.grouped();

let result = DataRoleHelper.getMeasureIndexOfRole(grouped, "Size");
let result: number = DataRoleHelper.getMeasureIndexOfRole(grouped, "Size");
expect(result).toBe(-1);
});

Expand All @@ -124,25 +124,36 @@ module powerbi.extensibility.utils.dataview.test {
{ displayName: "col2", isMeasure: true }
];

let dataView: DataView = dataViewBuilder.build();
const dataView: DataView = dataViewBuilder.build();

const grouped: DataViewValueColumnGroup[] = dataView.categorical.values.grouped();

let result: number = DataRoleHelper.getMeasureIndexOfRole(grouped, "2nd measure");
expect(result).toBe(-1);
});

it("getMeasureIndexOfRole without any groups", () => {
dataViewBuilder.values = [];

dataViewBuilder.columns = [];

const dataView: DataView = dataViewBuilder.build();

let grouped = dataView.categorical.values.grouped();
const grouped: DataViewValueColumnGroup[] = dataView.categorical.values.grouped();

let result = DataRoleHelper.getMeasureIndexOfRole(grouped, "2nd measure");
let result: number = DataRoleHelper.getMeasureIndexOfRole(grouped, "");
expect(result).toBe(-1);
});
});

describe("hasRoleInDataView", () => {
it("should return true is the role is available", () => {
const dataView: DataView = getDataView();

expect(DataRoleHelper.hasRoleInDataView(dataView, "Series")).toBe(true);
});

it("should return false is the role isn't available", () => {
const dataView: DataView = getDataView();

expect(DataRoleHelper.hasRoleInDataView(dataView, "Category")).toBe(false);
});

Expand Down
1 change: 0 additions & 1 deletion tsconfig.json
Expand Up @@ -7,7 +7,6 @@
"outFile": "./lib/index.js"
},
"files": [
"node_modules/@types/lodash/index.d.ts",
"node_modules/powerbi-visuals-tools/templates/visuals/.api/v1.2.0/PowerBI-visuals.d.ts",
"src/dataViewTransform.ts",
"src/dataRoleHelper.ts",
Expand Down

0 comments on commit 59ff848

Please sign in to comment.