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 |
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 |
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 of the project. Clears and reloads the packageInfo and per-bundle addon cache, too. |
private |
resolveSync(file): String
Resolves the absolute path to a file synchronously |
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:694
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:619
private static closestSync(pathName, _ui): Project
Returns a new project based on the first package.json
that is found
in pathName
.
If the above package.json
specifies ember-addon.projectRoot
, we load
the project based on the relative path between this directory and the
specified projectRoot
.
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:670
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:244
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 "cheaply".
Contains enabled
and version
.
Public Methods
lib/models/project.js:206
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:581
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:595
public generateTestFile(moduleName, tests): String
Generate test file contents.
This method is supposed to be overwritten by test framework addons
like ember-qunit
.
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:179
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:320
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:517
private addonBlueprintLookupPaths( ): Array
Returns a list of addon paths where blueprints will be looked up.
Return:
List of paths
lib/models/project.js:424
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:499
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:189
private configPath( ): String
Returns the path to the configuration.
Return:
Configuration path
lib/models/project.js:225
private configWithoutCache(env): Object
Parameters:
Name | Type | Attribute | Description |
---|---|---|---|
env | String |
|
Environment name |
Return:
Merged configuration object
lib/models/project.js:335
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:381
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:465
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:271
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:294
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:403
private initializeAddons( )
Loads and initializes all addons for this project.
lib/models/project.js:167
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:488
private localBlueprintLookupPath( ): String
Path to the blueprints for this project.
Return:
Path to blueprints
lib/models/project.js:154
private name( ): String
Returns the name from package.json.
Return:
Package name
lib/models/project.js:568
private reloadAddons( )
Re-initializes addons.
lib/models/project.js:540
private reloadPkg( ): Object
Reloads package.json of the project. Clears and reloads the packageInfo and per-bundle addon cache, too.
Return:
Package content
lib/models/project.js:306
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:355
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.