Skip to content

Commit

Permalink
refactor(ng-table): use named exports
Browse files Browse the repository at this point in the history
Workaround to webpack issue:
webpack/webpack#3415
  • Loading branch information
ccrowhurstram committed Dec 4, 2016
1 parent 9ca75ad commit 127c01f
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 13 deletions.
2 changes: 1 addition & 1 deletion demo-apps/es6-systemjs/system.config.js
Expand Up @@ -8,7 +8,7 @@
};

var packages = {
'ng-table': { main: '/bundles/ng-table.js', defaultExtension: 'js' },
'ng-table': { main: '/bundles/ng-table.js', defaultExtension: 'js', format: 'amd' },
'src': { defaultExtension: 'js' },
'angular': { main: 'index.js', defaultExtension: 'js' }
};
Expand Down
6 changes: 3 additions & 3 deletions demo-apps/es6-webpack/src/my-table/my-table.component.js
@@ -1,12 +1,12 @@
// todo: find out why this causes webpack to create a bundle that throws the error:
// `Cannot redefine property: NgTableParams`

// import { NgTableParams } from 'ng-table';
import { NgTableParams } from 'ng-table';

const templateUrl = require('./my-table.component.html');

class MyTableController {
constructor(NgTableParams) {
constructor() {
var data = [
{ name: "Moroni", age: 50 },
{ name: "Tiancum", age: 43 },
Expand All @@ -33,7 +33,7 @@ class MyTableController {
}
}

MyTableController.$inject = ['NgTableParams'];
MyTableController.$inject = [];

const myTableComponent = {
templateUrl: templateUrl,
Expand Down
26 changes: 25 additions & 1 deletion index.ts
Expand Up @@ -5,5 +5,29 @@ import { ngTableBrowserModule } from './src/browser';
const ngTableModule = ng1.module('ngTable', [ngTableCoreModule.name, ngTableBrowserModule.name]);

export { ngTableModule };
export * from './src/core';


// todo: replace individual exports below with commented out export below once webpack produces a working bundle
// to track the progress of this, see https://github.com/webpack/webpack/issues/3415

// export * from './src/core';
export { IDefaults } from './src/core/ngTableDefaults';
export * from './src/core/ngTableEventsChannel';
export { InternalTableParams, NgTableParams, IParamValues } from './src/core/ngTableParams';
export { ISettings } from './src/core/ngTableSettings';
export { IDataSettings } from './src/core/data/dataSettings';
export { IGetDataFunc, IInterceptableGetDataFunc } from './src/core/data/getData';
export { IInterceptor } from './src/core/data/interceptor';
export { IDefaultGetData, NgTableDefaultGetDataProvider } from './src/core/data/ngTableDefaultGetData';
export { DataResult, DataResults, IDataRowGroup, GroupedDataResults } from './src/core/data/results';
export { FilterComparator, IFilterComparatorFunc } from './src/core/filtering/filterComparator';
export { IFilterValues, IFilterFunc } from './src/core/filtering/filterFunc';
export { FilterLayout, IFilterSettings } from './src/core/filtering/filterSettings';
export { IGetGroupFunc } from './src/core/grouping/getGroup';
export { Grouping, GroupSort, IGroupingFunc, IGroupValues } from './src/core/grouping/groupingFunc';
export { IGroupSettings } from './src/core/grouping/groupSettings';
export { IPageButton } from './src/core/paging';
export { SortDirection, ISortingValues} from './src/core/sorting';
export { ngTableCoreModule };

export * from './src/browser';
36 changes: 28 additions & 8 deletions src/core/index.ts
@@ -1,8 +1,12 @@
import * as angular from 'angular';
import { NgTableDefaultGetDataProvider, IDefaultGetData } from './data';

import { IDefaultGetData, NgTableDefaultGetDataProvider } from './data/ngTableDefaultGetData';
import { IGroupSettings } from './grouping/groupSettings';
import { ngTableDefaultGetGroups } from './grouping/ngTableDefaultGetGroups';
// import { NgTableDefaultGetDataProvider, IDefaultGetData } from './data';
// import { IGroupSettings, ngTableDefaultGetGroups } from './grouping';
import { ngTableDefaults, IDefaults } from './ngTableDefaults';
import { NgTableSettings, ISettings } from './ngTableSettings';
import { IGroupSettings, ngTableDefaultGetGroups } from './grouping';
import { NgTableParams } from './ngTableParams';
import { NgTableEventsChannel } from './ngTableEventsChannel';

Expand All @@ -18,17 +22,33 @@ const ngTableCoreModule = angular.module('ngTable-core', [])
// import { NgTableParams } from 'ng-table';
ngTableCoreModule.value('NgTableParams', NgTableParams)

export { IDefaults };
export { IDefaults } from './ngTableDefaults';
export * from './ngTableEventsChannel';
// note: having to export as individual modules rather than `*` to avoid webpack (bug?)
// causing the final bundle to throw an error `Cannot redefine property: NgTableParams`
// todo: replace with commented out export below once webpack produces a working bundle
// note: having to export as individual modules rather than `*` to avoid webpack (bug?) causing
// the final bundle to throw an error `Cannot redefine property: NgTableParams`
export { InternalTableParams, NgTableParams, IParamValues } from './ngTableParams';
// export * from './ngTableParams';
export { ISettings } from './ngTableSettings';
export { IDataSettings } from './data/dataSettings';
export { IGetDataFunc, IInterceptableGetDataFunc } from './data/getData';
export { IInterceptor } from './data/interceptor';
export { IDefaultGetData, NgTableDefaultGetDataProvider } from './data/ngTableDefaultGetData';
export { DataResult, DataResults, IDataRowGroup, GroupedDataResults } from './data/results';
export { FilterComparator, IFilterComparatorFunc } from './filtering/filterComparator';
export { IFilterValues, IFilterFunc } from './filtering/filterFunc';
export { FilterLayout, IFilterSettings } from './filtering/filterSettings';
export { IGetGroupFunc } from './grouping/getGroup';
export { Grouping, GroupSort, IGroupingFunc, IGroupValues } from './grouping/groupingFunc';
export { IGroupSettings } from './grouping/groupSettings';
export { IPageButton } from './paging';
export { SortDirection, ISortingValues} from './sorting';
export { ngTableCoreModule };

// todo: replace individual exports above with commented out exports below once webpack produces a working bundle
// to track the progress of this, see https://github.com/webpack/webpack/issues/3415
/*
export * from './data';
export * from './filtering';
export * from './grouping/publicExports';
export * from './paging';
export * from './sorting';
export { ngTableCoreModule };
*/

0 comments on commit 127c01f

Please sign in to comment.