Skip to content
This repository has been archived by the owner on Aug 24, 2020. It is now read-only.

Commit

Permalink
Initial import
Browse files Browse the repository at this point in the history
  • Loading branch information
peterpeterparker committed Apr 21, 2017
0 parents commit a891392
Show file tree
Hide file tree
Showing 17 changed files with 750 additions and 0 deletions.
32 changes: 32 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Node
node_modules/*
npm-debug.log

# TypeScript
src/*.js
src/*.map
src/*.d.ts

# JetBrains
.idea
.project
.settings
.idea/*
*.iml

# VS Code
.vscode/*

# Windows
Thumbs.db
Desktop.ini

# Mac
.DS_Store
**/.DS_Store

# Ngc generated files
**/*.ngfactory.ts

# Build files
dist/*
34 changes: 34 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Node
node_modules/*
npm-debug.log

# DO NOT IGNORE TYPESCRIPT FILES FOR NPM
# TypeScript
# *.js
# *.map
# *.d.ts

# JetBrains
.idea
.project
.settings
.idea/*
*.iml

# VS Code
.vscode/*

# Windows
Thumbs.db
Desktop.ini

# Mac
.DS_Store
**/.DS_Store

# Ngc generated files
**/*.ngfactory.ts

# Library files
src/*
build/*
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
language: node_js
sudo: false
node_js:
- '4.2.1'
7 changes: 7 additions & 0 deletions .yo-rc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"generator-angular2-library": {
"promptValues": {
"gitRepositoryUrl": "https://github.com/peterpeterparker/ionic-swing.git"
}
}
}
72 changes: 72 additions & 0 deletions README.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# ionic-swing

## Installation

To install this library, run:

```bash
$ npm install ionic-swing --save
```

## Consuming your library

Once you have published your library to npm, you can import your library in any Angular application by running:

```bash
$ npm install ionic-swing
```

and then from your Angular `AppModule`:

```typescript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { SampleModule } from 'ionic-swing';

@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,

// Specify your library as an import
LibraryModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
```

Once your library is imported, you can use its components, directives and pipes in your Angular application:

```xml
<!-- You can now use your library component in app.component.html -->
<h1>
{{title}}
</h1>
<sampleComponent></sampleComponent>
```

## Development

To generate all `*.js`, `*.d.ts` and `*.metadata.json` files:

```bash
$ npm run build
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [David Dal Busco](mailto:david.dalbusco@outlook.com)
150 changes: 150 additions & 0 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
/* eslint-disable */
var gulp = require('gulp'),
path = require('path'),
ngc = require('@angular/compiler-cli/src/main').main,
rollup = require('gulp-rollup'),
del = require('del'),
runSequence = require('run-sequence'),
inlineResources = require('./tools/gulp/inline-resources');

const rootFolder = path.join(__dirname);
const srcFolder = path.join(rootFolder, 'src');
const tmpFolder = path.join(rootFolder, '.tmp');
const buildFolder = path.join(rootFolder, 'build');
const distFolder = path.join(rootFolder, 'dist');

/**
* 1. Delete /dist folder
*/
gulp.task('clean:dist', function () {
return deleteFolders([distFolder]);
});

/**
* 2. Clone the /src folder into /.tmp. If an npm link inside /src has been made,
* then it's likely that a node_modules folder exists. Ignore this folder
* when copying to /.tmp.
*/
gulp.task('copy:source', function () {
return gulp.src([`${srcFolder}/**/*`, `!${srcFolder}/node_modules`])
.pipe(gulp.dest(tmpFolder));
});

/**
* 3. Inline template (.html) and style (.css) files into the the component .ts files.
* We do this on the /.tmp folder to avoid editing the original /src files
*/
gulp.task('inline-resources', function () {
return Promise.resolve()
.then(() => inlineResources(tmpFolder));
});


/**
* 4. Run the Angular compiler, ngc, on the /.tmp folder. This will output all
* compiled modules to the /build folder.
*/
gulp.task('ngc', function () {
return ngc({
project: `${tmpFolder}/tsconfig.es5.json`
})
.then((exitCode) => {
if (exitCode === 1) {
// This error is caught in the 'compile' task by the runSequence method callback
// so that when ngc fails to compile, the whole compile process stops running
throw new Error('ngc compilation failed');
}
});
});

/**
* 5. Run rollup inside the /build folder to generate our Flat ES module and place the
* generated file into the /dist folder
*/
gulp.task('rollup', function () {
return gulp.src(`${buildFolder}/**/*.js`)
// transform the files here.
.pipe(rollup({
// any option supported by Rollup can be set here.
entry: `${buildFolder}/index.js`,
external: [
'@angular/core',
'@angular/common'
],
format: 'es'
}))
.pipe(gulp.dest(distFolder));
});

/**
* 6. Copy all the files from /build to /dist, except .js files. We ignore all .js from /build
* because with don't need individual modules anymore, just the Flat ES module generated
* on step 5.
*/
gulp.task('copy:build', function () {
return gulp.src([`${buildFolder}/**/*`, `!${buildFolder}/**/*.js`])
.pipe(gulp.dest(distFolder));
});

/**
* 7. Copy package.json from /src to /dist
*/
gulp.task('copy:manifest', function () {
return gulp.src([`${srcFolder}/package.json`])
.pipe(gulp.dest(distFolder));
});

/**
* 8. Delete /.tmp folder
*/
gulp.task('clean:tmp', function () {
return deleteFolders([tmpFolder]);
});

/**
* 9. Delete /build folder
*/
gulp.task('clean:build', function () {
return deleteFolders([buildFolder]);
});

gulp.task('compile', function () {
runSequence(
'clean:dist',
'copy:source',
'inline-resources',
'ngc',
'rollup',
'copy:build',
'copy:manifest',
'clean:build',
'clean:tmp',
function (err) {
if (err) {
console.log('ERROR:', err.message);
deleteFolders([distFolder, tmpFolder, buildFolder]);
} else {
console.log('Compilation finished succesfully');
}
});
});

/**
* Watch for any change in the /src folder and compile files
*/
gulp.task('watch', function () {
gulp.watch(`${srcFolder}/**/*`, ['compile']);
});

gulp.task('clean', ['clean:dist', 'clean:tmp', 'clean:build']);

gulp.task('build', ['clean', 'compile']);
gulp.task('build:watch', ['build', 'watch']);
gulp.task('default', ['build:watch']);

/**
* Deletes the specified folder
*/
function deleteFolders(folders) {
return del(folders);
}
60 changes: 60 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"name": "ionic-swing",
"version": "0.1.0",
"scripts": {
"build": "gulp build",
"build:watch": "gulp",
"lint": "tslint --type-check --project tsconfig.json src/**/*.ts",
"test": "tsc && karma start"
},
"repository": {
"type": "git",
"url": "https://github.com/peterpeterparker/ionic-swing.git"
},
"author": {
"name": "David Dal Busco",
"email": "david.dalbusco@outlook.com"
},
"keywords": [
"angular"
],
"license": "MIT",
"bugs": {
"url": "https://github.com/peterpeterparker/ionic-swing.git/issues"
},
"devDependencies": {
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/compiler-cli": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@types/jasmine": "2.5.38",
"@types/node": "~6.0.60",
"codelyzer": "~2.0.0",
"core-js": "^2.4.1",
"del": "^2.2.2",
"gulp": "^3.9.1",
"gulp-rollup": "^2.11.0",
"jasmine-core": "~2.5.2",
"jasmine-spec-reporter": "~3.2.0",
"karma": "~1.4.1",
"karma-chrome-launcher": "~2.0.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^0.2.0",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"node-watch": "^0.5.2",
"protractor": "~5.1.0",
"rollup": "^0.41.6",
"run-sequence": "^1.2.2",
"rxjs": "^5.1.0",
"ts-node": "~2.0.0",
"tslint": "~4.5.0",
"typescript": "~2.2.0",
"zone.js": "^0.8.4"
},
"engines": {
"node": ">=6.0.0"
}
}
Loading

0 comments on commit a891392

Please sign in to comment.