node package manager

angular-point-tools

angular-point-tools

Build tools shared by angular-point projects.

Adding to Your Project

    //Sit back and grab a drink, this is going to download all NPM 
    //dependencies so we don't need to each project.
    npm install angular-point-tools --save

Build Project

    gulp build

Start Server and Watch For Changes

    gulp serve

Minimum Config

Setting up your gulpfile.js

    var gulp = require('gulp');
    var projectDir = __dirname + '/';
    var config = require('./gulp.config')(projectDir);
    require('angular-point-tools')(projectDir, config);

Setting up Aggregate Typings File

    /// <reference path="tsd.d.ts" />
    /// <reference path="../node_modules/angular-point-tools/interfaces/angular-point.d.ts" />
    /// <reference path="../node_modules/angular-point-tools/ts/Model.ts" />
    /// <reference path="../node_modules/angular-point-tools/ts/ListItem.ts" />

Referencing Project Types From the Application

From a given TS file add reference

    /// <reference path="../../../typings/app.d.ts" />

Add an Injection Point in your index.html

    <!-- inject-ts:js -->
    //Stuff gets injected here...
    <!-- endinject -->

Configure Tools

All configuration can be done in "./gulp.config.js". If going with the standard template, the only thing you'll probably want to have in something like below:

    module.exports = function (projectDir) {
        var app = projectDir + 'app/';
        var bowerDir = projectDir + 'bower_components/';
        var test = projectDir + 'test/';
        var tmp = projectDir + '.tmp/';
    
        var config = {
            /** Optionally Override */
            //app: app,
            //test: test,
            //tmp:tmp,
            modules: [
                bowerDir + "angular-point/dist/angular-point.js",
                bowerDir + "angular-point-attachments/dist/apAttachments.js",
                bowerDir + "angular-point-discussion-thread/dist/apDiscussionThread.js",
                bowerDir + "angular-point-modal/dist/apModalService.js",
                bowerDir + "angular-point-group-manager/dist/apGroupManager.js",
                bowerDir + "angular-point-lookup-cache/dist/index.js",
                bowerDir + "angular-point-form-control/dist/apInputControl.js",
                bowerDir + "angular-point-offline-generator/dist/ap-offline-generator.js",
                bowerDir + "angular-point-sync/dist/index.js"
            ],
            vendorjs: [
                bowerDir + "moment/moment.js",
                bowerDir + "lodash/lodash.js",
                bowerDir + "lodash-deep/lodash-deep.js",
                bowerDir + "firebase/firebase.js",
                bowerDir + "angular-ui-router/release/angular-ui-router.js",
                bowerDir + "angular-bootstrap/ui-bootstrap.js",
                bowerDir + "angular-bootstrap/ui-bootstrap-tpls.js",
                bowerDir + "angular-ui-utils/ui-utils.js",
                bowerDir + "angular-ui-select/dist/select.js",
                bowerDir + "angular-ui-date/src/date.js",
                bowerDir + "angular-ui-sortable/sortable.js",
                bowerDir + "angular-ui-calendar/src/calendar.js",
                bowerDir + "angular-ui-grid/ui-grid.js",
                bowerDir + "ng-table/ng-table.js",
                bowerDir + "angularfire/dist/angularfire.js",
                bowerDir + "angular-toastr/dist/angular-toastr.js",
                bowerDir + "angular-toastr/dist/angular-toastr.tpls.min.js",
                bowerDir + "angular-loading-bar/build/loading-bar.js",
                bowerDir + "angular-filter/dist/angular-filter.js",
                bowerDir + "highcharts-release/highcharts.js",
                bowerDir + "highcharts-ng/dist/highcharts-ng.js",
                bowerDir + "angular-google-chart/ng-google-chart.js",
                bowerDir + "fullcalendar/fullcalendar.js",
                bowerDir + "angular-elastic/elastic.js"
            ],
            vendorcss: [
                bowerDir + "fullcalendar/fullcalendar.css",
                bowerDir + "angular-ui-select/dist/select.css",
                bowerDir + "angular-ui-grid/ui-grid.css",
                bowerDir + "angular-toastr/dist/angular-toastr.css",
                bowerDir + "angular-loading-bar/build/loading-bar.css",
                bowerDir + "ng-table/ng-table.css",
                bowerDir + "font-awesome/css/font-awesome.min.css",
                app + "styles/**/*bootstrap.css",
                app + "styles/**/*bower.css"
            ]
        };
    
        return config;
    };

Example app.module.ts

    module app {
        'use strict';
    
        var modules = [    'ngSanitize', 'ngAnimate', 'googlechart', 'ui.router', 'ui.bootstrap',
            'ui.date', 'ui.utils', 'ui.select', 'ui.sortable', 'ui.highlight', 'ui.grid', 'ui.grid.edit',
            'ui.grid.cellNav', 'ui.grid.pinning', 'ui.grid.resizeColumns', 'ui.grid.moveColumns',
            'ui.grid.rowEdit', 'ui.grid.selection', 'ui.grid.autoResize', 'ui.grid.expandable', 'ngTable',
            'firebase', 'toastr', 'angular-loading-bar', 'angular.filter', 'monospaced.elastic', 'angularPoint'
        ];
    
        var offline = false;
    
        if(window.location.href.indexOf('localhost') > -1 ||
            window.location.href.indexOf('http://0.') > -1 ||
            window.location.href.indexOf('http://10.') > -1 ||
            window.location.href.indexOf('http://127.') > -1 ||
            window.location.href.indexOf('http://192.') > -1) {
    
            offline = true;
            /** Add in mock library if working offline to prevent us from making outside requests */
            modules.push('ngMockE2E');
        } else {
             /** Reference the module used by template cache */
             modules.push('templateCache');
         }
    
        angular.module('my-app-module', modules);
    
        if(offline) {
            angular.module('my-app-module')
            /** Set a default user in offline */
                .constant('mockUser', {
                    lookupId: 441,
                    lookupValue: "Hatcher CIV Scott B"
                })
            /** Allow requests for specific file types to be allowed through */
                .run(function ($httpBackend) {
    
                    // Don't mock the html views
                    $httpBackend.whenGET(/\.html$/).passThrough();
    
                    $httpBackend.whenGET(/\.xml$/).passThrough();
    
                });
    
        }
    }

Pulling Down TypeScript Definitions

    //Installs TS definitions for packages in bower.json
    gulp tsd