Make all angular modules export the name of the module (#318)

This makes them very nicely require-able, for example:

    angular.module('MyModule', [
      require('my-dependency');
    ]);

From https://medium.com/@kentcdodds/how-to-distribute-your-angularjs-module-e04d4dd58ddc#.yqg2zo8im
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
This commit is contained in:
Juan Cruz Viotti 2016-04-13 14:22:51 -04:00
parent 39786e3271
commit a874d4b808
27 changed files with 113 additions and 87 deletions

View File

@ -26,52 +26,37 @@ const electron = require('electron');
const dialog = electron.remote.require('./src/dialog'); const dialog = electron.remote.require('./src/dialog');
require('angular-ui-router'); require('angular-ui-router');
require('./browser/models/selection-state');
require('./browser/modules/drive-scanner');
require('./browser/modules/image-writer');
require('./browser/modules/analytics');
require('./browser/components/progress-button/progress-button');
require('./browser/components/drive-selector/drive-selector');
require('./browser/pages/finish/finish');
require('./browser/pages/settings/settings');
require('./browser/os/notification/notification');
require('./browser/os/window-progress/window-progress');
require('./browser/os/open-external/open-external');
require('./browser/os/dropzone/dropzone');
require('./browser/utils/if-state/if-state');
require('./browser/utils/notifier/notifier');
require('./browser/utils/path/path');
const app = angular.module('Etcher', [ const app = angular.module('Etcher', [
'ui.router', 'ui.router',
// Etcher modules // Etcher modules
'Etcher.drive-scanner', require('./browser/modules/drive-scanner'),
'Etcher.image-writer', require('./browser/modules/image-writer'),
'Etcher.analytics', require('./browser/modules/analytics'),
// Models // Models
'Etcher.Models.SelectionState', require('./browser/models/selection-state'),
'Etcher.Models.Settings', require('./browser/models/settings'),
// Components // Components
'Etcher.Components.ProgressButton', require('./browser/components/progress-button/progress-button'),
'Etcher.Components.DriveSelector', require('./browser/components/drive-selector/drive-selector'),
// Pages // Pages
'Etcher.Pages.Finish', require('./browser/pages/finish/finish'),
'Etcher.Pages.Settings', require('./browser/pages/settings/settings'),
// OS // OS
'Etcher.OS.WindowProgress', require('./browser/os/notification/notification'),
'Etcher.OS.OpenExternal', require('./browser/os/window-progress/window-progress'),
'Etcher.OS.Dropzone', require('./browser/os/open-external/open-external'),
'Etcher.OS.Notification', require('./browser/os/dropzone/dropzone'),
// Utils // Utils
'Etcher.Utils.IfState', require('./browser/utils/if-state/if-state'),
'Etcher.Utils.Notifier', require('./browser/utils/notifier/notifier'),
'Etcher.Utils.Path' require('./browser/utils/path/path')
]); ]);
app.run(function(AnalyticsService) { app.run(function(AnalyticsService) {

View File

@ -22,15 +22,16 @@
const angular = require('angular'); const angular = require('angular');
require('angular-ui-bootstrap'); require('angular-ui-bootstrap');
require('../../../browser/modules/drive-scanner');
require('../../../browser/models/selection-state');
const DriveSelector = angular.module('Etcher.Components.DriveSelector', [ const MODULE_NAME = 'Etcher.Components.DriveSelector';
const DriveSelector = angular.module(MODULE_NAME, [
'ui.bootstrap', 'ui.bootstrap',
'Etcher.drive-scanner', require('../../../browser/modules/drive-scanner'),
'Etcher.Models.SelectionState' require('../../../browser/models/selection-state')
]); ]);
DriveSelector.controller('DriveSelectorController', require('./controllers/drive-selector')); DriveSelector.controller('DriveSelectorController', require('./controllers/drive-selector'));
DriveSelector.service('DriveSelectorStateService', require('./services/drive-selector-state')); DriveSelector.service('DriveSelectorStateService', require('./services/drive-selector-state'));
DriveSelector.service('DriveSelectorService', require('./services/drive-selector')); DriveSelector.service('DriveSelectorService', require('./services/drive-selector'));
module.exports = MODULE_NAME;

View File

@ -21,5 +21,7 @@
*/ */
const angular = require('angular'); const angular = require('angular');
const ProgressButton = angular.module('Etcher.Components.ProgressButton', []); const MODULE_NAME = 'Etcher.Components.ProgressButton';
const ProgressButton = angular.module(MODULE_NAME, []);
ProgressButton.directive('progressButton', require('./directives/progress-button')); ProgressButton.directive('progressButton', require('./directives/progress-button'));
module.exports = MODULE_NAME;

View File

@ -22,7 +22,8 @@
const _ = require('lodash'); const _ = require('lodash');
const angular = require('angular'); const angular = require('angular');
const SelectionStateModel = angular.module('Etcher.Models.SelectionState', []); const MODULE_NAME = 'Etcher.Models.SelectionState';
const SelectionStateModel = angular.module(MODULE_NAME, []);
SelectionStateModel.service('SelectionStateModel', function() { SelectionStateModel.service('SelectionStateModel', function() {
let self = this; let self = this;
@ -195,3 +196,5 @@ SelectionStateModel.service('SelectionStateModel', function() {
}; };
}); });
module.exports = MODULE_NAME;

View File

@ -22,7 +22,8 @@
const angular = require('angular'); const angular = require('angular');
require('ngstorage'); require('ngstorage');
const SettingsModel = angular.module('Etcher.Models.Settings', [ const MODULE_NAME = 'Etcher.Models.Settings';
const SettingsModel = angular.module(MODULE_NAME, [
'ngStorage' 'ngStorage'
]); ]);
@ -40,3 +41,5 @@ SettingsModel.service('SettingsModel', function($localStorage) {
}); });
}); });
module.exports = MODULE_NAME;

View File

@ -32,10 +32,10 @@ window.MIXPANEL_CUSTOM_LIB_URL = '../bower_components/mixpanel/mixpanel.js';
require('../../../bower_components/mixpanel/mixpanel-jslib-snippet.js'); require('../../../bower_components/mixpanel/mixpanel-jslib-snippet.js');
require('../../../bower_components/angular-mixpanel/src/angular-mixpanel'); require('../../../bower_components/angular-mixpanel/src/angular-mixpanel');
require('../models/settings'); const MODULE_NAME = 'Etcher.analytics';
const analytics = angular.module('Etcher.analytics', [ const analytics = angular.module(MODULE_NAME, [
'analytics.mixpanel', 'analytics.mixpanel',
'Etcher.Models.Settings' require('../models/settings')
]); ]);
analytics.config(function($mixpanelProvider) { analytics.config(function($mixpanelProvider) {
@ -155,3 +155,5 @@ analytics.service('AnalyticsService', function($log, $mixpanel, SettingsModel) {
}; };
}); });
module.exports = MODULE_NAME;

View File

@ -25,7 +25,8 @@ const _ = require('lodash');
const EventEmitter = require('events').EventEmitter; const EventEmitter = require('events').EventEmitter;
const drivelist = require('drivelist'); const drivelist = require('drivelist');
const driveScanner = angular.module('Etcher.drive-scanner', [ const MODULE_NAME = 'Etcher.drive-scanner';
const driveScanner = angular.module(MODULE_NAME, [
require('angular-q-promisify') require('angular-q-promisify')
]); ]);
@ -159,3 +160,5 @@ driveScanner.service('DriveScannerService', function($q, $interval, $timeout) {
}; };
}); });
module.exports = MODULE_NAME;

View File

@ -29,11 +29,10 @@ if (window.mocha) {
var writer = electron.remote.require('./src/writer'); var writer = electron.remote.require('./src/writer');
} }
require('../models/settings'); const MODULE_NAME = 'Etcher.image-writer';
require('../utils/notifier/notifier'); const imageWriter = angular.module(MODULE_NAME, [
const imageWriter = angular.module('Etcher.image-writer', [ require('../models/settings'),
'Etcher.Models.Settings', require('../utils/notifier/notifier')
'Etcher.Utils.Notifier'
]); ]);
imageWriter.service('ImageWriterService', function($q, $timeout, SettingsModel, NotifierService) { imageWriter.service('ImageWriterService', function($q, $timeout, SettingsModel, NotifierService) {
@ -170,3 +169,5 @@ imageWriter.service('ImageWriterService', function($q, $timeout, SettingsModel,
}; };
}); });
module.exports = MODULE_NAME;

View File

@ -21,5 +21,7 @@
*/ */
const angular = require('angular'); const angular = require('angular');
const OSDropzone = angular.module('Etcher.OS.Dropzone', []); const MODULE_NAME = 'Etcher.OS.Dropzone';
const OSDropzone = angular.module(MODULE_NAME, []);
OSDropzone.directive('osDropzone', require('./directives/dropzone')); OSDropzone.directive('osDropzone', require('./directives/dropzone'));
module.exports = MODULE_NAME;

View File

@ -24,5 +24,7 @@
*/ */
const angular = require('angular'); const angular = require('angular');
const OSNotification = angular.module('Etcher.OS.Notification', []); const MODULE_NAME = 'Etcher.OS.Notification';
const OSNotification = angular.module(MODULE_NAME, []);
OSNotification.service('OSNotificationService', require('./services/notification')); OSNotification.service('OSNotificationService', require('./services/notification'));
module.exports = MODULE_NAME;

View File

@ -21,5 +21,7 @@
*/ */
const angular = require('angular'); const angular = require('angular');
const OSOpenExternal = angular.module('Etcher.OS.OpenExternal', []); const MODULE_NAME = 'Etcher.OS.OpenExternal';
const OSOpenExternal = angular.module(MODULE_NAME, []);
OSOpenExternal.directive('osOpenExternal', require('./directives/open-external')); OSOpenExternal.directive('osOpenExternal', require('./directives/open-external'));
module.exports = MODULE_NAME;

View File

@ -25,5 +25,7 @@
*/ */
const angular = require('angular'); const angular = require('angular');
const OSWindowProgress = angular.module('Etcher.OS.WindowProgress', []); const MODULE_NAME = 'Etcher.OS.WindowProgress';
const OSWindowProgress = angular.module(MODULE_NAME, []);
OSWindowProgress.service('OSWindowProgressService', require('./services/window-progress')); OSWindowProgress.service('OSWindowProgressService', require('./services/window-progress'));
module.exports = MODULE_NAME;

View File

@ -28,17 +28,14 @@
const angular = require('angular'); const angular = require('angular');
require('angular-ui-router'); require('angular-ui-router');
require('../../modules/image-writer');
require('../../modules/analytics');
require('../../models/selection-state');
require('../../models/settings');
const FinishPage = angular.module('Etcher.Pages.Finish', [ const MODULE_NAME = 'Etcher.Pages.Finish';
const FinishPage = angular.module(MODULE_NAME, [
'ui.router', 'ui.router',
'Etcher.image-writer', require('../../modules/image-writer'),
'Etcher.analytics', require('../../modules/analytics'),
'Etcher.Models.SelectionState', require('../../models/selection-state'),
'Etcher.Models.Settings' require('../../models/settings')
]); ]);
FinishPage.controller('FinishController', require('./controllers/finish')); FinishPage.controller('FinishController', require('./controllers/finish'));
@ -51,3 +48,5 @@ FinishPage.config(function($stateProvider) {
templateUrl: './browser/pages/finish/templates/success.tpl.html' templateUrl: './browser/pages/finish/templates/success.tpl.html'
}); });
}); });
module.exports = MODULE_NAME;

View File

@ -22,11 +22,11 @@
const angular = require('angular'); const angular = require('angular');
require('angular-ui-router'); require('angular-ui-router');
require('../../models/settings');
const SettingsPage = angular.module('Etcher.Pages.Settings', [ const MODULE_NAME = 'Etcher.Pages.Settings';
const SettingsPage = angular.module(MODULE_NAME, [
'ui.router', 'ui.router',
'Etcher.Models.Settings' require('../../models/settings')
]); ]);
SettingsPage.controller('SettingsController', require('./controllers/settings')); SettingsPage.controller('SettingsController', require('./controllers/settings'));
@ -39,3 +39,5 @@ SettingsPage.config(function($stateProvider) {
templateUrl: './browser/pages/settings/templates/settings.tpl.html' templateUrl: './browser/pages/settings/templates/settings.tpl.html'
}); });
}); });
module.exports = MODULE_NAME;

View File

@ -27,9 +27,12 @@
const angular = require('angular'); const angular = require('angular');
require('angular-ui-router'); require('angular-ui-router');
const IfState = angular.module('Etcher.Utils.IfState', [ const MODULE_NAME = 'Etcher.Utils.IfState';
const IfState = angular.module(MODULE_NAME, [
'ui.router' 'ui.router'
]); ]);
IfState.directive('showIfState', require('./directives/show-if-state')); IfState.directive('showIfState', require('./directives/show-if-state'));
IfState.directive('hideIfState', require('./directives/hide-if-state')); IfState.directive('hideIfState', require('./directives/hide-if-state'));
module.exports = MODULE_NAME;

View File

@ -24,5 +24,7 @@
*/ */
const angular = require('angular'); const angular = require('angular');
const Notifier = angular.module('Etcher.Utils.Notifier', []); const MODULE_NAME = 'Etcher.Utils.Notifier';
const Notifier = angular.module(MODULE_NAME, []);
Notifier.service('NotifierService', require('./services/notifier')); Notifier.service('NotifierService', require('./services/notifier'));
module.exports = MODULE_NAME;

View File

@ -24,5 +24,7 @@
*/ */
const angular = require('angular'); const angular = require('angular');
const Path = angular.module('Etcher.Utils.Path', []); const MODULE_NAME = 'Etcher.Utils.Path';
const Path = angular.module(MODULE_NAME, []);
Path.filter('basename', require('./filters/basename')); Path.filter('basename', require('./filters/basename'));
module.exports = MODULE_NAME;

View File

@ -3,11 +3,12 @@
const m = require('mochainon'); const m = require('mochainon');
const angular = require('angular'); const angular = require('angular');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/components/drive-selector/drive-selector');
describe('Browser: DriveSelector', function() { describe('Browser: DriveSelector', function() {
beforeEach(angular.mock.module('Etcher.Components.DriveSelector')); beforeEach(angular.mock.module(
require('../../../lib/browser/components/drive-selector/drive-selector')
));
describe('DriveSelectorStateService', function() { describe('DriveSelectorStateService', function() {

View File

@ -3,11 +3,12 @@
const m = require('mochainon'); const m = require('mochainon');
const angular = require('angular'); const angular = require('angular');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/models/selection-state');
describe('Browser: SelectionState', function() { describe('Browser: SelectionState', function() {
beforeEach(angular.mock.module('Etcher.Models.SelectionState')); beforeEach(angular.mock.module(
require('../../../lib/browser/models/selection-state')
));
describe('SelectionStateModel', function() { describe('SelectionStateModel', function() {

View File

@ -4,11 +4,12 @@ const m = require('mochainon');
const angular = require('angular'); const angular = require('angular');
const drivelist = require('drivelist'); const drivelist = require('drivelist');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/modules/drive-scanner');
describe('Browser: DriveScanner', function() { describe('Browser: DriveScanner', function() {
beforeEach(angular.mock.module('Etcher.drive-scanner')); beforeEach(angular.mock.module(
require('../../../lib/browser/modules/drive-scanner')
));
describe('DriveScannerService', function() { describe('DriveScannerService', function() {

View File

@ -3,11 +3,12 @@
const m = require('mochainon'); const m = require('mochainon');
const angular = require('angular'); const angular = require('angular');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/modules/image-writer');
describe('Browser: ImageWriter', function() { describe('Browser: ImageWriter', function() {
beforeEach(angular.mock.module('Etcher.image-writer')); beforeEach(angular.mock.module(
require('../../../lib/browser/modules/image-writer')
));
describe('ImageWriterService', function() { describe('ImageWriterService', function() {

View File

@ -19,11 +19,12 @@
const m = require('mochainon'); const m = require('mochainon');
const angular = require('angular'); const angular = require('angular');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/os/dropzone/dropzone');
describe('Browser: OSDropzone', function() { describe('Browser: OSDropzone', function() {
beforeEach(angular.mock.module('Etcher.OS.Dropzone')); beforeEach(angular.mock.module(
require('../../../lib/browser/os/dropzone/dropzone')
));
describe('osDropzone', function() { describe('osDropzone', function() {

View File

@ -22,11 +22,12 @@ const angular = require('angular');
const electron = require('electron'); const electron = require('electron');
const shell = electron.remote.require('shell'); const shell = electron.remote.require('shell');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/os/open-external/open-external');
describe('Browser: OSOpenExternal', function() { describe('Browser: OSOpenExternal', function() {
beforeEach(angular.mock.module('Etcher.OS.OpenExternal')); beforeEach(angular.mock.module(
require('../../../lib/browser/os/open-external/open-external')
));
describe('osOpenExternal', function() { describe('osOpenExternal', function() {

View File

@ -19,11 +19,12 @@
const m = require('mochainon'); const m = require('mochainon');
const angular = require('angular'); const angular = require('angular');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/os/window-progress/window-progress');
describe('Browser: OSWindowProgress', function() { describe('Browser: OSWindowProgress', function() {
beforeEach(angular.mock.module('Etcher.OS.WindowProgress')); beforeEach(angular.mock.module(
require('../../../lib/browser/os/window-progress/window-progress')
));
describe('OSWindowProgressService', function() { describe('OSWindowProgressService', function() {

View File

@ -19,11 +19,12 @@
const m = require('mochainon'); const m = require('mochainon');
const angular = require('angular'); const angular = require('angular');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/utils/if-state/if-state');
describe('Browser: IfState', function() { describe('Browser: IfState', function() {
beforeEach(angular.mock.module('Etcher.Utils.IfState')); beforeEach(angular.mock.module(
require('../../../lib/browser/utils/if-state/if-state')
));
let $compile; let $compile;
let $rootScope; let $rootScope;

View File

@ -3,11 +3,12 @@
const m = require('mochainon'); const m = require('mochainon');
const angular = require('angular'); const angular = require('angular');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/utils/notifier/notifier');
describe('Browser: Notifier', function() { describe('Browser: Notifier', function() {
beforeEach(angular.mock.module('Etcher.Utils.Notifier')); beforeEach(angular.mock.module(
require('../../../lib/browser/utils/notifier/notifier')
));
describe('NotifierService', function() { describe('NotifierService', function() {

View File

@ -4,11 +4,12 @@ const m = require('mochainon');
const angular = require('angular'); const angular = require('angular');
const os = require('os'); const os = require('os');
require('angular-mocks'); require('angular-mocks');
require('../../../lib/browser/utils/path/path');
describe('Browser: Path', function() { describe('Browser: Path', function() {
beforeEach(angular.mock.module('Etcher.Utils.Path')); beforeEach(angular.mock.module(
require('../../../lib/browser/utils/path/path')
));
describe('BasenameFilter', function() { describe('BasenameFilter', function() {