Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@arkadiuminc/ng-adal

Package Overview
Dependencies
Maintainers
6
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@arkadiuminc/ng-adal

ADAL wrapper for Angular Framework

  • 1.0.9
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8
increased by700%
Maintainers
6
Weekly downloads
 
Created
Source

adal-angular4


Angular 4 Adal wrapper package. Can be used to authenticate Angular 4 applications to Azure Active Directory.

This project is also designed to be a functional demomonstration of how to create, build, and publish NPM modules for Angular4.

Working example at https://github.com/benbaran/adal-angular4-example.


Change Log

1.1.4

  • Hash is now removed from url after login

1.0.1

  • Added HTTP Interceptor for Angular 4.3.0+
  • Updated all packages to newest versions

How to Create and Publish a NPM Package

Create a GitHub Account

https://github.com

Create a NPM Account

https://www.npmjs.com/

Install Node.js

https://nodejs.org

Install the Latest Version of NPM


npm install -g npm@latest

Install Needed Global Packages


npm install -g gulp
npm install -g tslint
npm install -g typescript
npm install -g tslint

Create package directory


mkdir adal-angular4

Intialize Git and NPM


cd adal-angular4
git init
npm init

Make the First Commit


git add -A
git commit -m 'Initial commit'

Install Angular 4 Prerequisites


npm install --save rxjs@latest
npm install --save zone.js@latest

Install Angular 4


npm install --save @angular/core@latest
npm install --save @angular/common@latest
npm install --save @angular/platform-browser@latest
npm install --save @angular/http@latest

Install ADAL


npm install --save adal-angular@latest

Install Development Tools


npm install --save-dev gulp
npm install --save-dev gulp-bump
npm install --save-dev del
npm install --save-dev merge2
npm install --save-dev typescript
npm install --save-dev gulp-typescript
npm install --save-dev @types/jasmine

Install and Intitalize ESLint


eslint --init

Initialize TSLint


tslint --init

Create a src Directory for TypeScript Files


mkdir src

Publish First Version to NPM


npm adduser
npm publish

Create Your Angular Items in the /src Folder


adal4-http.service.ts
adal4.user.ts
adal4.service.ts

Create an index.ts File to Export Your Items


export {Adal4User} from './adal4-user';
export {Adal4Service} from './adal4.service';
export {Adal4HTTPService} from './adal4-http.service';

Create a gulpfile.js File to Automate Build and Deployment

// Declare all dependencies for publish process
var bump = require('gulp-bump'),
    del = require('del'),
    exec = require('child_process').exec,
    gulp = require('gulp'),
    merge = require('merge2'),
    typescript = require('gulp-typescript'),
    fs = require('fs');

Create a Task to Delete All Files from the /dist Folder


gulp.task('clean', function () {
    del(['dist/*']);
});


Create a Task to Bump the Version in the package.json File


gulp.task('bump', ['clean'], function () {
    gulp.src('./package.json')
        .pipe(bump({
            type: 'patch'
        }))
        .pipe(gulp.dest('./'));
});

Create a Task to Compile and Bundle the Source Files in the /dist Folder


gulp.task('bundle', ['bump'], function () {
    var tsResult = gulp.src('src/*.ts')
        .pipe(typescript({
            module: "commonjs",
            target: "es5",
            noImplicitAny: true,
            experimentalDecorators: true,
            outDir: "dist/",
            rootDir: "src/",
            sourceMap: true,
            declaration: true,
            moduleResolution: "node",
            removeComments: false,
            lib: [
                "es2015",
                "dom"
            ],
            types: ["jasmine"]
        }));

    return merge([
        tsResult.dts.pipe(gulp.dest('dist/')),
        tsResult.js.pipe(gulp.dest('dist/'))
    ]);
});

Create a Task to Place a Minimized package.json in the /dist Folder

gulp.task('package', ['bundle'], () => {

    const pkgjson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));

    // remove the scripts section
    delete pkgjson.scripts;

    // remove the devDependencies section
    delete pkgjson.devDependencies;

    const filepath = './dist/package.json';

    fs.writeFileSync(filepath, JSON.stringify(pkgjson, null, 2), 'utf-8');

});

Create a Task to Add All New Files to the Git Repository


gulp.task('git-add', ['package'], function (cb) {
    exec('git add -A', function (err, stdout, stderr) {
        console.log(stdout);
        console.log(stderr);
        cb(err);
    });
});

Create a Task to Commit All Changes to the Git Repository


// Commit
gulp.task('git-commit', ['git-add'], function (cb) {

    var package = require('./package.json');

    exec('git commit -m "Version ' + package.version + ' release."', function (err, stdout, stderr) {
        console.log(stdout);
        console.log(stderr);
        cb(err);
    });
});

Create a Task to Push Changes to the Remote Git Repository (optional)


gulp.task('git-push', ['git-commit'], function (cb) {

    exec('git push', function (err, stdout, stderr) {
        console.log(stdout);
        console.log(stderr);
        cb(err);
    });
});

Create a Task to Publish the New Version to NPM


gulp.task('publish', ['git-push'], function (cb) {

    exec('npm publish ./dist', function (err, stdout, stderr) {
        console.log(stdout);
        console.log(stderr);
        cb(err);
    });
});

Run Gulp to Build and Publish the Module


gulp publish

Keywords

FAQs

Package last updated on 29 Dec 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc