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

Returns the project root based on the first package.json that is found

Static Private Methods
private static
closest(pathName): Promise

Returns a new project based on the first package.json that is found in pathName.

private static
closestSync(pathName, _ui): Project

Returns a new project based on the first package.json that is found in pathName.

private static

Returns a new project based on the first package.json that is found in pathName, or the nullProject.

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 Watcher.detectWatchman helper method finishes running, so that other areas of the system can be aware that watchman is being used.

Method Summary

Public Methods
public
config(env): Object

Loads the configuration for this project and its addons.

public
generateTestFile(moduleName, tests): String

Generate test file contents.

public

Returns whether or not this is an Ember CLI addon.

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.

Private Methods
private

Returns a list of addon paths where blueprints will be looked up.

private

Returns what commands are made available by addons by inspecting includedCommands for every addon.

private

Returns a list of paths (including addon paths) where blueprints will be looked up.

private

Returns the bower dependencies for this project.

private

Returns the path to the configuration.

private
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

Find an addon by its name

private
getAddonsConfig(env, appConfig): Object

Returns the addons configuration.

private
has(file): Boolean

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
name( ): String

Returns the name from package.json.

private

Re-initializes addons.

private

Reloads package.json

private
resolve(file): String

Resolves the absolute path to a file.

private

Resolves the absolute path to a file synchronously

private

Sets the name of the bower directory for this project

private

Sets the path to the node_modules 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:711

public static getProjectRoot( ): String

Returns the project root based on the first package.json that is found

Return:

String

The project root directory

Static Private Methods

lib/models/project.js:625

private static closest(pathName): Promise

Deprecated: This method is deprecated.

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

Return:

Promise

Promise which resolves to a {Project}

lib/models/project.js:651

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

Project instance

lib/models/project.js:687

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

Project instance

Public Constructors

lib/models/project.js:27

public Project(root, pkg, ui, cli)

Parameters:

Name Type Attribute Description
root String

Root directory for the project

pkg Object

Contents of package.json

ui UI
cli CLI

Public Properties

lib/models/project.js:240

public targets: Unknown

Returns the targets of this project, or the default targets if not present.

Private Properties

lib/models/project.js:58

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:199

public config(env): Object

Loads the configuration for this project and its addons.

Parameters:

Name Type Attribute Description
env String

Environment name

Return:

Object

Merged confiration object

lib/models/project.js:601

public generateTestFile(moduleName, tests): String

Generate test file contents.

This method is supposed to be overwritten by test framework addons like ember-cli-qunit and ember-cli-mocha.

Parameters:

Name Type Attribute Description
moduleName String

Name of the test module (e.g. JSHint)

tests Object[]

Array of tests with name, passed and errorMessage properties

Return:

String

The test file content

lib/models/project.js:172

public isEmberCLIAddon( ): Boolean

Returns whether or not this is an Ember CLI addon.

Return:

Boolean

Whether or not this is an Ember CLI Addon.

lib/models/project.js:330

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:

Object

Imported module

Private Methods

lib/models/project.js:540

private addonBlueprintLookupPaths( ): Array

Returns a list of addon paths where blueprints will be looked up.

Return:

Array

List of paths

lib/models/project.js:449

private addonCommands( ): Object

Returns what commands are made available by addons by inspecting includedCommands for every addon.

Return:

Object

Addon names and command maps as key-value pairs

lib/models/project.js:522

private blueprintLookupPaths( ): Array

Returns a list of paths (including addon paths) where blueprints will be looked up.

Return:

Array

List of paths

lib/models/project.js:370

private bowerDependencies(bower): Object

Returns the bower dependencies for this project.

Parameters:

Name Type Attribute Description
bower String

Path to bower.json

Return:

Object

Bower dependencies

lib/models/project.js:182

private configPath( ): String

Returns the path to the configuration.

Return:

String

Configuration path

lib/models/project.js:221

private configWithoutCache(env): Object

Parameters:

Name Type Attribute Description
env String

Environment name

Return:

Object

Merged confiration object

lib/models/project.js:350

private dependencies([pkg=this.pkg], [excludeDevDeps=false]): Object

Returns the dependencies from a package.json

Parameters:

Name Type Attribute Description
pkg Object
  • optional
  • default: this.pkg

Package object

excludeDevDeps Boolean
  • optional
  • default: false

Whether or not development dependencies should be excluded

Return:

Object

Dependencies

lib/models/project.js:413

private discoverAddons( )

Discovers all addons for this project and stores their names and package.json contents in this.addonPackages as key-value pairs

lib/models/project.js:488

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:587

private 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

Addon instance

lib/models/project.js:267

private getAddonsConfig(env, appConfig): Object

Returns the addons configuration.

Parameters:

Name Type Attribute Description
env String

Environment name

appConfig Object

Application configuration

Return:

Object

Merged configuration of all addons

lib/models/project.js:290

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:

Boolean

Whether or not the file is present

lib/models/project.js:426

private initializeAddons( )

Loads and initializes all addons for this project.

lib/models/project.js:160

private isEmberCLIProject( ): Boolean

Returns whether or not this is an Ember CLI project. This checks whether ember-cli is listed in devDependencies.

Return:

Boolean

Whether this is an Ember CLI project

lib/models/project.js:511

private localBlueprintLookupPath( ): String

Path to the blueprints for this project.

Return:

String

Path to blueprints

Returns the name from package.json.

Return:

String

Package name

lib/models/project.js:575

private reloadAddons( )

Re-initializes addons.

lib/models/project.js:559

private reloadPkg( ): Object

Reloads package.json

Return:

Object

Package content

lib/models/project.js:302

private resolve(file): String

Resolves the absolute path to a file.

Parameters:

Name Type Attribute Description
file String

File to resolve

Return:

String

Absolute path to file

lib/models/project.js:316

private resolveSync(file): String

Resolves the absolute path to a file synchronously

Parameters:

Name Type Attribute Description
file String

File to resolve

Return:

String

Absolute path to file

lib/models/project.js:84

private setupBowerDirectory( )

Sets the name of the bower directory for this project

lib/models/project.js:112

private setupNodeModulesPath( )

Sets the path to the node_modules directory for this project.

lib/models/project.js:386

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.