lib/models/project.js:27
Project
The Project model is tied to your package.json. It is instantiated by giving closestSync the path to your project.
Static Method Summary
Static Public Methods | |
---|---|
public static |
getProjectRoot( ): String
Returns the project root based on the first package.json that is found |
Static Private Methods | |
---|---|
private static |
closestSync(pathName, _ui): Project
Returns a new project based on the first package.json that is found in |
private static |
projectOrnullProject(_ui): Project
Returns a new project based on the first package.json that is found in |
Constructor Summary
Public Constructors | |
---|---|
public |
Project(root, pkg, ui, cli)
The Project model is tied to your package.json. It is instantiated by giving closestSync the path to your project. |
Property Summary
Public Properties | |
---|---|
public |
targets: Unknown
Returns the targets of this project, or the default targets if not present. |
Private Properties | |
---|---|
private |
_watchmanInfo: Unknown
Set when the |
Method Summary
Public Methods | |
---|---|
public |
Loads the configuration for this project and its addons. |
public |
findAddonByName(name): Addon
Find an addon by its name |
public |
generateTestFile(moduleName, tests): String
Generate test file contents. |
public |
Returns whether or not this is an Ember CLI addon. |
public |
Calls |
Private Methods | |
---|---|
private |
Returns a list of addon paths where blueprints will be looked up. |
private |
addonCommands( ): Object
Returns what commands are made available by addons by inspecting |
private |
Returns a list of paths (including addon paths) where blueprints will be looked up. |
private |
bowerDependencies(bower): Object
Returns the bower dependencies for this project. |
private |
configPath( ): String
Returns the path to the configuration. |
private |
configWithoutCache(env): Object
|
private |
dependencies([pkg=this.pkg], [excludeDevDeps=false]): Object
Returns the dependencies from a package.json |
private |
Discovers all addons for this project and stores their names and package.json contents in this.addonPackages as key-value pairs. |
private |
eachAddonCommand(callback)
Execute a given callback for every addon command. Example: |
private |
getAddonsConfig(env, appConfig): Object
Returns the addons configuration. |
private |
Returns whether or not the given file name is present in this project. |
private |
Loads and initializes all addons for this project. |
private |
Returns whether or not this is an Ember CLI project. This checks whether ember-cli is listed in devDependencies. |
private |
Path to the blueprints for this project. |
private |
Returns the name from package.json. |
private |
reloadAddons( )
Re-initializes addons. |
private |
Reloads package.json |
private |
resolveSync(file): String
Resolves the absolute path to a file synchronously |
private |
Sets the name of the bower directory for this project |
private |
Provides the list of paths to consult for addons that may be provided internally to this project. Used for middleware addons with built-in support. |
Static Public Methods
lib/models/project.js:705
public static getProjectRoot( ): String
Returns the project root based on the first package.json that is found
Return:
The project root directory
Static Private Methods
lib/models/project.js:645
private static closestSync(pathName, _ui): Project
Returns a new project based on the first package.json that is found
in pathName
.
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
pathName | String |
|
Path to your project |
_ui | UI |
|
The UI instance to provide to the created Project. |
Return:
Project instance
lib/models/project.js:681
private static projectOrnullProject(_ui): Project
Returns a new project based on the first package.json that is found
in pathName
, or the nullProject.
The nullProject signifies no-project, but abides by the null object pattern
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
_ui | UI |
|
The UI instance to provide to the created Project. |
Return:
Project instance
Public Constructors
lib/models/project.js:27
public Project(root, pkg, ui, cli)
Public Properties
lib/models/project.js:264
public targets: Unknown
Returns the targets of this project, or the default targets if not present.
Private Properties
lib/models/project.js:52
private _watchmanInfo: Unknown
Set when the Watcher.detectWatchman
helper method finishes running,
so that other areas of the system can be aware that watchman is being used.
For example, this information is used in the broccoli build pipeline to know if we can watch additional directories (like bower_components) "cheaply".
Contains enabled
and version
.
Public Methods
lib/models/project.js:226
public config(env): Object
Loads the configuration for this project and its addons.
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
env | String |
|
Environment name |
Return:
Merged configuration object
lib/models/project.js:607
public findAddonByName(name): Addon
Find an addon by its name
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
name | String |
|
Addon name as specified in package.json |
Return:
Addon instance
lib/models/project.js:621
public generateTestFile(moduleName, tests): String
Generate test file contents.
This method is supposed to be overwritten by test framework addons
like ember-qunit
and ember-mocha
.
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
moduleName | String |
|
Name of the test module (e.g. |
tests | Object[] |
|
Array of tests with |
Return:
The test file content
lib/models/project.js:199
public isEmberCLIAddon( ): Boolean
Returns whether or not this is an Ember CLI addon.
Return:
Whether or not this is an Ember CLI Addon.
lib/models/project.js:340
public require(file): Object
Calls require
on a given module from the context of the project. For
instance, an addon may want to require a class from the root project's
version of ember-cli.
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
file | String |
|
File path or module name |
Return:
Imported module
Private Methods
lib/models/project.js:554
private addonBlueprintLookupPaths( ): Array
Returns a list of addon paths where blueprints will be looked up.
Return:
List of paths
lib/models/project.js:461
private addonCommands( ): Object
Returns what commands are made available by addons by inspecting
includedCommands
for every addon.
Return:
Addon names and command maps as key-value pairs
lib/models/project.js:536
private blueprintLookupPaths( ): Array
Returns a list of paths (including addon paths) where blueprints will be looked up.
Return:
List of paths
lib/models/project.js:375
private bowerDependencies(bower): Object
Returns the bower dependencies for this project.
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
bower | String |
|
Path to bower.json |
Return:
Bower dependencies
lib/models/project.js:209
private configPath( ): String
Returns the path to the configuration.
Return:
Configuration path
lib/models/project.js:245
private configWithoutCache(env): Object
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
env | String |
|
Environment name |
Return:
Merged configuration object
lib/models/project.js:355
private dependencies([pkg=this.pkg], [excludeDevDeps=false]): Object
Returns the dependencies from a package.json
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
pkg | Object |
|
Package object |
excludeDevDeps | Boolean |
|
Whether or not development dependencies should be excluded |
Return:
Dependencies
lib/models/project.js:417
private discoverAddons( )
Discovers all addons for this project and stores their names and package.json contents in this.addonPackages as key-value pairs.
Any packageInfos that we find that are marked as not valid are excluded.
lib/models/project.js:502
private eachAddonCommand(callback)
Execute a given callback for every addon command. Example:
project.eachAddonCommand(function(addonName, commands) {
console.log('Addon ' + addonName + ' exported the following commands:' + commands.keys().join(', '));
});
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
callback | Function |
|
[description] |
lib/models/project.js:291
private getAddonsConfig(env, appConfig): Object
Returns the addons configuration.
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
env | String |
|
Environment name |
appConfig | Object |
|
Application configuration |
Return:
Merged configuration of all addons
lib/models/project.js:314
private has(file): Boolean
Returns whether or not the given file name is present in this project.
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
file | String |
|
File name |
Return:
Whether or not the file is present
lib/models/project.js:441
private initializeAddons( )
Loads and initializes all addons for this project.
lib/models/project.js:187
private isEmberCLIProject( ): Boolean
Returns whether or not this is an Ember CLI project. This checks whether ember-cli is listed in devDependencies.
Return:
Whether this is an Ember CLI project
lib/models/project.js:525
private localBlueprintLookupPath( ): String
Path to the blueprints for this project.
Return:
Path to blueprints
lib/models/project.js:174
private name( ): String
Returns the name from package.json.
Return:
Package name
lib/models/project.js:595
private reloadAddons( )
Re-initializes addons.
lib/models/project.js:577
private reloadPkg( ): Object
Reloads package.json
Return:
Package content
lib/models/project.js:326
private resolveSync(file): String
Resolves the absolute path to a file synchronously
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
file | String |
|
File to resolve |
Return:
Absolute path to file
lib/models/project.js:101
private setupBowerDirectory( )
Sets the name of the bower directory for this project
lib/models/project.js:391
private supportedInternalAddonPaths( )
Provides the list of paths to consult for addons that may be provided internally to this project. Used for middleware addons with built-in support.