ember-welcome-page
Advanced tools
Comparing version 1.0.3 to 2.0.0
104
index.js
/* jshint node: true */ | ||
'use strict'; | ||
var existsSync = require('exists-sync'); | ||
var fs = require('fs'); | ||
var path = require('path'); | ||
var VersionChecker = require('ember-cli-version-checker'); | ||
var walkSync = require('walk-sync'); | ||
var EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); | ||
var Funnel = require('broccoli-funnel'); | ||
function getWelcomePageHTML(baseURL, version) { | ||
var lodash = require('lodash'); | ||
var fileName = path.join(__dirname, 'vendor', 'welcome.html'); | ||
var contents = fs.readFileSync(fileName, { encoding: 'utf8' }); | ||
var compiled = lodash.template(contents); | ||
return compiled({ baseURL: baseURL, version: version }); | ||
} | ||
module.exports = { | ||
@@ -25,89 +13,19 @@ name: 'ember-welcome-page', | ||
this.app = app; | ||
if (this._isProduction()) { return; } | ||
var checker = new VersionChecker(this); | ||
this.guidesVersion = this.massageVersionNumber(checker.for('ember', 'bower').version || checker.for('ember-core', 'npm').version); | ||
this.jsExt = this.app.registry.extensionsForType('js'); | ||
this.templateExt = this.app.registry.extensionsForType('template'); | ||
app.import('vendor/construction.png'); | ||
app.import('vendor/welcome-page.css'); | ||
}, | ||
serverMiddleware: function(config) { | ||
var app = config.app; | ||
var options = config.options; | ||
treeForAddon: function() { | ||
if (this._isProduction()) { return false; } | ||
this.ui.writeInfoLine("\nJust getting started with Ember? Please visit http://localhost:" + options.port + "/ember-getting-started to get going\n"); | ||
var _this = this; | ||
var tree = this._super.treeForAddon.apply(this, arguments); | ||
var welcomePageHTML = getWelcomePageHTML(options.baseURL, this.guidesVersion); | ||
app.get('/ember-getting-started-image.png', function (req, res, next) { | ||
res.sendFile(__dirname + '/vendor/construction.png', options, function (err) { | ||
if (err) { | ||
res.status(err.status).end(); | ||
} | ||
}); | ||
}); | ||
app.get('/ember-getting-started', function (req, res, next) { | ||
res.send(welcomePageHTML); | ||
}); | ||
// we'll assume we're running '/' but then bail if we aren't supposed to be overriding | ||
app.get(options.baseURL, function(req, res, next) { | ||
if (_this.shouldOverride(_this.jsExt, _this.templateExt, _this.app.project.root)) { | ||
res.send(welcomePageHTML); | ||
} else { | ||
next(); | ||
} | ||
}); | ||
return tree; | ||
}, | ||
/* requested tests (need to be watching in real-time preferably ...) | ||
- Has an application.hbs been created? | ||
- Has an index.hbs been created? | ||
- Have any routes been created? | ||
*/ | ||
shouldOverride: function(jsExtensions, templateExtensions, folderPath) { | ||
var appFiles = walkSync(path.join(folderPath, 'app')); | ||
var jsFiles = appFiles | ||
.filter(function(fileName) { | ||
var extension = path.extname(fileName).slice(1); // remove leading `.` | ||
return jsExtensions.indexOf(extension) > -1; | ||
}); | ||
var templateFiles = appFiles | ||
.filter(function(fileName) { | ||
var extension = path.extname(fileName).slice(1); // remove leading `.` | ||
return templateExtensions.indexOf(extension) > -1; | ||
}); | ||
var routeFiles = jsFiles | ||
.filter(function(fileName) { | ||
var baseName = path.basename(fileName); | ||
return baseName === 'route' || fileName.match(/^routes/); | ||
}); | ||
var routerPath = path.join(folderPath, 'app', 'router.js'); | ||
var hasRouterMapContents = false; | ||
if (existsSync(routerPath)) { | ||
var router = fs.readFileSync(routerPath, { encoding: 'utf8' }); | ||
hasRouterMapContents = router.match(/this\.route|this\.resource/); | ||
} | ||
var hasTemplates = templateFiles.length > 0; | ||
var hasRoutes = routeFiles.length > 0; | ||
return !hasTemplates && !hasRoutes && !hasRouterMapContents; | ||
}, | ||
massageVersionNumber: function(version) { | ||
return version.replace(/(\d).(\d).\d/, '$1.$2.0'); | ||
_isProduction: function() { | ||
return EmberAddon.env() === 'production'; | ||
} | ||
}; |
{ | ||
"name": "ember-welcome-page", | ||
"version": "1.0.3", | ||
"version": "2.0.0", | ||
"description": "Welcome page for Ember-CLI", | ||
@@ -12,4 +12,3 @@ "directories": { | ||
"start": "ember server", | ||
"test": "ember try:testall", | ||
"test-node": "node node-tests/nodetest-runner.js" | ||
"test": "ember try:each" | ||
}, | ||
@@ -23,24 +22,21 @@ "repository": "https://github.com/ember-cli/ember-welcome-page", | ||
"devDependencies": { | ||
"broccoli-asset-rev": "^2.2.0", | ||
"ember-ajax": "0.7.1", | ||
"ember-cli": "2.3.0", | ||
"broccoli-asset-rev": "^2.4.2", | ||
"ember-ajax": "^2.0.1", | ||
"ember-cli": "2.8.0", | ||
"ember-cli-app-version": "^1.0.0", | ||
"ember-cli-dependency-checker": "^1.2.0", | ||
"ember-cli-htmlbars-inline-precompile": "^0.3.1", | ||
"ember-cli-inject-live-reload": "^1.3.1", | ||
"ember-cli-qunit": "^1.2.1", | ||
"ember-cli-release": "^1.0.0-beta.1", | ||
"ember-cli-sri": "^2.0.0", | ||
"ember-cli-inject-live-reload": "^1.4.0", | ||
"ember-cli-jshint": "^1.0.0", | ||
"ember-cli-qunit": "^2.1.0", | ||
"ember-cli-release": "^0.2.9", | ||
"ember-cli-sri": "^2.1.0", | ||
"ember-cli-test-loader": "^1.1.0", | ||
"ember-cli-uglify": "^1.2.0", | ||
"ember-data": "^2.3.0", | ||
"ember-data": "^2.8.0", | ||
"ember-disable-prototype-extensions": "^1.1.0", | ||
"ember-disable-proxy-controllers": "^1.0.1", | ||
"ember-export-application-global": "^1.0.4", | ||
"ember-load-initializers": "^0.5.0", | ||
"ember-export-application-global": "^1.0.5", | ||
"ember-load-initializers": "^0.5.1", | ||
"ember-resolver": "^2.0.3", | ||
"ember-try": "^0.1.2", | ||
"glob": "^7.0.3", | ||
"loader.js": "^4.0.0", | ||
"mocha": "^2.4.5", | ||
"mocha-only-detector": "^0.1.0" | ||
"loader.js": "^4.0.1" | ||
}, | ||
@@ -52,14 +48,8 @@ "keywords": [ | ||
"broccoli-funnel": "^1.0.1", | ||
"broccoli-merge-trees": "^1.1.1", | ||
"ember-cli-babel": "^5.1.5", | ||
"ember-cli-htmlbars": "^1.0.1", | ||
"ember-cli-version-checker": "1.1.6", | ||
"exists-sync": "0.0.3", | ||
"lodash": "^4.7.0", | ||
"walk-sync": "^0.2.6" | ||
"ember-cli-babel": "^5.1.6", | ||
"ember-cli-htmlbars": "^1.0.3" | ||
}, | ||
"ember-addon": { | ||
"before": "serve-files-middleware", | ||
"configPath": "tests/dummy/config" | ||
} | ||
} |
@@ -1,9 +0,10 @@ | ||
# Ember-welcome-page | ||
# Ember Welcome Page | ||
[![Build Status](https://travis-ci.org/ember-cli/ember-welcome-page.svg?branch=master)](https://travis-ci.org/ember-cli/ember-welcome-page) | ||
Handles displaying a nice welcome page for Ember-CLI instead of the plain | ||
one that came standard | ||
Displays a nice welcome page for newly generated applications with links to resources. | ||
## Installation | ||
* `git clone` this repository | ||
* `git clone <repository-url>` this repository | ||
* `cd ember-welcome-page` | ||
* `npm install` | ||
@@ -14,11 +15,15 @@ * `bower install` | ||
* Test by copying the contents of the `app` folder from `node-tests/fixtures/<test>` into `app` | ||
* `ember server` | ||
* Visit your app at http://localhost:4200. | ||
* `ember serve` | ||
* Visit your app at [http://localhost:4200](http://localhost:4200). | ||
Note that changes to files in `app` aren't noticed, as we aren't watching | ||
file system changes with this add-on. | ||
## Running Tests | ||
* `npm run node-test` (Runs `ember try:testall` to test your addon against multiple Ember versions) | ||
* `npm test` (Runs `ember try:each` to test your addon against multiple Ember versions) | ||
* `ember test` | ||
* `ember test --server` | ||
## Building | ||
* `ember build` | ||
For more information on using ember-cli, visit [http://ember-cli.com/](http://ember-cli.com/). |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
194253
3
19
22
278
29
3
2
+ Addedember-cli-version-checker@1.3.1(transitive)
+ Addedsemver@5.7.2(transitive)
- Removedbroccoli-merge-trees@^1.1.1
- Removedember-cli-version-checker@1.1.6
- Removedexists-sync@0.0.3
- Removedlodash@^4.7.0
- Removedwalk-sync@^0.2.6
- Removedember-cli-version-checker@1.1.6(transitive)
- Removedexists-sync@0.0.3(transitive)
- Removedsemver@4.3.6(transitive)
- Removedwalk-sync@0.2.7(transitive)
Updatedember-cli-babel@^5.1.6
Updatedember-cli-htmlbars@^1.0.3