ember-cli 4.0.0 → 4.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +4 -4
- package/CHANGELOG.md +17 -2
- package/blueprints/app/files/package.json +2 -2
- package/docs/build/data.json +3 -3
- package/lib/models/host-info-cache.js +3 -5
- package/lib/models/per-bundle-addon-cache/index.js +2 -3
- package/lib/utilities/get-lang-arg.js +45 -45
- package/package.json +25 -25
- package/.github/ISSUE_TEMPLATE.md +0 -12
- package/.github/dependabot.yml +0 -15
- package/.github/workflows/coverage.yml +0 -31
- package/docs/analytics.md +0 -44
- package/docs/architecture.md +0 -316
- package/docs/assets/architecture/Ember-CLI architecture.png +0 -0
- package/docs/assets/architecture/Ember-CLI architecture.xml +0 -1
- package/docs/assets/architecture/README.md +0 -5
- package/docs/brocfile-transition.md +0 -46
- package/docs/build/api.js +0 -44
- package/docs/build/assets/css/external-small.png +0 -0
- package/docs/build/assets/css/logo.png +0 -0
- package/docs/build/assets/css/main.css +0 -555
- package/docs/build/assets/favicon.ico +0 -0
- package/docs/build/assets/img/spinner.gif +0 -0
- package/docs/build/assets/index.html +0 -10
- package/docs/build/assets/js/api-filter.js +0 -56
- package/docs/build/assets/js/api-list.js +0 -255
- package/docs/build/assets/js/api-search.js +0 -98
- package/docs/build/assets/js/apidocs.js +0 -376
- package/docs/build/assets/js/yui-prettify.js +0 -17
- package/docs/build/assets/vendor/prettify/CHANGES.html +0 -130
- package/docs/build/assets/vendor/prettify/COPYING +0 -202
- package/docs/build/assets/vendor/prettify/README.html +0 -203
- package/docs/build/assets/vendor/prettify/prettify-min.css +0 -1
- package/docs/build/assets/vendor/prettify/prettify-min.js +0 -1
- package/docs/build/classes/Addon.html +0 -4318
- package/docs/build/classes/AmdTransformAddon.html +0 -202
- package/docs/build/classes/Blueprint.html +0 -4796
- package/docs/build/classes/Builder.html +0 -611
- package/docs/build/classes/CLI.html +0 -810
- package/docs/build/classes/Command.html +0 -1655
- package/docs/build/classes/DefaultPackager.html +0 -202
- package/docs/build/classes/EmberAddon.html +0 -2207
- package/docs/build/classes/EmberApp.html +0 -2225
- package/docs/build/classes/HardwareInfo.html +0 -620
- package/docs/build/classes/HistorySupportAddon.html +0 -203
- package/docs/build/classes/Instrumentation.html +0 -695
- package/docs/build/classes/NodeModulesList.html +0 -460
- package/docs/build/classes/NpmTask.html +0 -333
- package/docs/build/classes/PackageInfo.html +0 -1390
- package/docs/build/classes/PackageInfoCache.html +0 -963
- package/docs/build/classes/PerBundleAddonCache {.html +0 -1010
- package/docs/build/classes/Project.html +0 -2083
- package/docs/build/classes/ServeFilesAddon.html +0 -260
- package/docs/build/classes/TestsServerAddon.html +0 -203
- package/docs/build/classes/WatcherAddon.html +0 -204
- package/docs/build/classes/WindowsSymlinkChecker.html +0 -1505
- package/docs/build/files/lib_broccoli_default-packager.js.html +0 -1426
- package/docs/build/files/lib_broccoli_ember-addon.js.html +0 -159
- package/docs/build/files/lib_broccoli_ember-app.js.html +0 -1913
- package/docs/build/files/lib_cli_cli.js.html +0 -417
- package/docs/build/files/lib_models_addon-info.js.html +0 -112
- package/docs/build/files/lib_models_addon.js.html +0 -1866
- package/docs/build/files/lib_models_blueprint.js.html +0 -1678
- package/docs/build/files/lib_models_builder.js.html +0 -417
- package/docs/build/files/lib_models_command.js.html +0 -804
- package/docs/build/files/lib_models_hardware-info.js.html +0 -479
- package/docs/build/files/lib_models_host-info-cache.js.html +0 -428
- package/docs/build/files/lib_models_installation-checker.js.html +0 -181
- package/docs/build/files/lib_models_instantiate-addons.js.html +0 -191
- package/docs/build/files/lib_models_instrumentation.js.html +0 -433
- package/docs/build/files/lib_models_package-info-cache_index.js.html +0 -793
- package/docs/build/files/lib_models_package-info-cache_node-modules-list.js.html +0 -208
- package/docs/build/files/lib_models_package-info-cache_package-info.js.html +0 -661
- package/docs/build/files/lib_models_per-bundle-addon-cache_addon-proxy.js.html +0 -252
- package/docs/build/files/lib_models_per-bundle-addon-cache_index.js.html +0 -485
- package/docs/build/files/lib_models_per-bundle-addon-cache_target-instance.js.html +0 -108
- package/docs/build/files/lib_models_project.js.html +0 -913
- package/docs/build/files/lib_models_task.js.html +0 -117
- package/docs/build/files/lib_tasks_build-watch.js.html +0 -157
- package/docs/build/files/lib_tasks_npm-task.js.html +0 -463
- package/docs/build/files/lib_tasks_serve.js.html +0 -207
- package/docs/build/files/lib_tasks_server_middleware_broccoli-serve-files_index.js.html +0 -127
- package/docs/build/files/lib_tasks_server_middleware_broccoli-watcher_index.js.html +0 -158
- package/docs/build/files/lib_tasks_server_middleware_history-support_index.js.html +0 -181
- package/docs/build/files/lib_tasks_server_middleware_tests-server_index.js.html +0 -171
- package/docs/build/files/lib_tasks_test-server.js.html +0 -167
- package/docs/build/files/lib_tasks_transforms_amd_index.js.html +0 -143
- package/docs/build/files/lib_utilities_ember-app-utils.js.html +0 -292
- package/docs/build/files/lib_utilities_insert-into-file.js.html +0 -219
- package/docs/build/files/lib_utilities_is-lazy-engine.js.html +0 -125
- package/docs/build/files/lib_utilities_is-yarn-project.js.html +0 -120
- package/docs/build/files/lib_utilities_valid-project-name.js.html +0 -142
- package/docs/build/files/lib_utilities_will-interrupt-process.js.html +0 -290
- package/docs/build/files/lib_utilities_windows-admin.js.html +0 -230
- package/docs/build/index.html +0 -125
- package/docs/build/modules/ember-cli.html +0 -152
- package/docs/build/modules/is-lazy-engine.html +0 -106
- package/docs/build-concurrency.md +0 -15
- package/docs/build-pipeline-debugging.md +0 -33
- package/docs/code-coverage.md +0 -14
- package/docs/error-propagation.md +0 -136
- package/docs/experiments.md +0 -53
- package/docs/node-support.md +0 -43
- package/docs/perf-guide.md +0 -250
- package/docs/project_version_preprocessor.js +0 -8
- package/docs/sourcemaps.md +0 -60
- package/docs/yuidoc.json +0 -13
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title>lib/tasks/test-server.js - ember-cli</title>
|
|
6
|
-
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
|
|
7
|
-
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
|
|
8
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/yui/3.18.0/yui/yui-min.js"></script>
|
|
9
|
-
</head>
|
|
10
|
-
<body class="yui3-skin-sam">
|
|
11
|
-
|
|
12
|
-
<div id="doc">
|
|
13
|
-
<div class="yui3-g">
|
|
14
|
-
<div id="sidebar" class="yui3-u">
|
|
15
|
-
<div class="logo">
|
|
16
|
-
<a href="../index.html">
|
|
17
|
-
<img src="https://ember-cli.com/assets/images/ember-cli-logo-small-dark.png">
|
|
18
|
-
</a>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div id="modules" class="sidebox">
|
|
22
|
-
<div class="hd">
|
|
23
|
-
<h2 class="no-toc">Modules</h2>
|
|
24
|
-
</div>
|
|
25
|
-
<div class="bd">
|
|
26
|
-
<ul>
|
|
27
|
-
<li><a href="../modules/ember-cli.html">ember-cli</a>
|
|
28
|
-
</li>
|
|
29
|
-
<li><a href="../modules/is-lazy-engine.html">is-lazy-engine</a>
|
|
30
|
-
</li>
|
|
31
|
-
</ul>
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
<div id="classes" class="sidebox">
|
|
36
|
-
<div class="hd">
|
|
37
|
-
<h2 class="no-toc">Classes</h2>
|
|
38
|
-
</div>
|
|
39
|
-
<div class="bd">
|
|
40
|
-
<ul>
|
|
41
|
-
<li><a href="../classes/Addon.html">Addon</a></li>
|
|
42
|
-
<li><a href="../classes/AmdTransformAddon.html">AmdTransformAddon</a></li>
|
|
43
|
-
<li><a href="../classes/Blueprint.html">Blueprint</a></li>
|
|
44
|
-
<li><a href="../classes/Builder.html">Builder</a></li>
|
|
45
|
-
<li><a href="../classes/CLI.html">CLI</a></li>
|
|
46
|
-
<li><a href="../classes/Command.html">Command</a></li>
|
|
47
|
-
<li><a href="../classes/DefaultPackager.html">DefaultPackager</a></li>
|
|
48
|
-
<li><a href="../classes/EmberAddon.html">EmberAddon</a></li>
|
|
49
|
-
<li><a href="../classes/EmberApp.html">EmberApp</a></li>
|
|
50
|
-
<li><a href="../classes/HardwareInfo.html">HardwareInfo</a></li>
|
|
51
|
-
<li><a href="../classes/HistorySupportAddon.html">HistorySupportAddon</a></li>
|
|
52
|
-
<li><a href="../classes/Instrumentation.html">Instrumentation</a></li>
|
|
53
|
-
<li><a href="../classes/NodeModulesList.html">NodeModulesList</a></li>
|
|
54
|
-
<li><a href="../classes/NpmTask.html">NpmTask</a></li>
|
|
55
|
-
<li><a href="../classes/PackageInfo.html">PackageInfo</a></li>
|
|
56
|
-
<li><a href="../classes/PackageInfoCache.html">PackageInfoCache</a></li>
|
|
57
|
-
<li><a href="../classes/PerBundleAddonCache {.html">PerBundleAddonCache {</a></li>
|
|
58
|
-
<li><a href="../classes/Project.html">Project</a></li>
|
|
59
|
-
<li><a href="../classes/ServeFilesAddon.html">ServeFilesAddon</a></li>
|
|
60
|
-
<li><a href="../classes/TestsServerAddon.html">TestsServerAddon</a></li>
|
|
61
|
-
<li><a href="../classes/WatcherAddon.html">WatcherAddon</a></li>
|
|
62
|
-
<li><a href="../classes/WindowsSymlinkChecker.html">WindowsSymlinkChecker</a></li>
|
|
63
|
-
</ul>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<div class="version-info">
|
|
72
|
-
Version: 4.0.0-release-b4cbb1029f
|
|
73
|
-
</div>
|
|
74
|
-
|
|
75
|
-
</div>
|
|
76
|
-
|
|
77
|
-
<div id="main" class="yui3-u">
|
|
78
|
-
<div class="content"><div class="title">
|
|
79
|
-
<h1 class="file-name">lib/tasks/test-server.js</h1>
|
|
80
|
-
</div>
|
|
81
|
-
|
|
82
|
-
<pre class="code prettyprint linenums">
|
|
83
|
-
'use strict';
|
|
84
|
-
|
|
85
|
-
const TestTask = require('./test');
|
|
86
|
-
const chalk = require('chalk');
|
|
87
|
-
const SilentError = require('silent-error');
|
|
88
|
-
|
|
89
|
-
class TestServerTask extends TestTask {
|
|
90
|
-
invokeTestem(options) {
|
|
91
|
-
let task = this;
|
|
92
|
-
|
|
93
|
-
return new Promise((resolve, reject) => {
|
|
94
|
-
task.testem.setDefaultOptions(task.defaultOptions(options));
|
|
95
|
-
task.testem.startDev(task.transformOptions(options), (exitCode, error) => {
|
|
96
|
-
if (error) {
|
|
97
|
-
reject(error);
|
|
98
|
-
} else if (exitCode !== 0) {
|
|
99
|
-
reject(new SilentError('Testem finished with non-zero exit code. Tests failed.'));
|
|
100
|
-
} else {
|
|
101
|
-
resolve(exitCode);
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
run(options) {
|
|
108
|
-
let ui = this.ui;
|
|
109
|
-
let testem = this.testem;
|
|
110
|
-
let task = this;
|
|
111
|
-
|
|
112
|
-
// The building has actually started already, but we want some output while we wait for the server
|
|
113
|
-
|
|
114
|
-
return new Promise((resolve, reject) => {
|
|
115
|
-
if (options.path) {
|
|
116
|
-
resolve(task.invokeTestem(options));
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
ui.startProgress(chalk.green('Building'), chalk.green('.'));
|
|
121
|
-
|
|
122
|
-
let watcher = options.watcher;
|
|
123
|
-
let started = false;
|
|
124
|
-
|
|
125
|
-
// Wait for a build and then either start or restart testem
|
|
126
|
-
watcher.on('change', () => {
|
|
127
|
-
try {
|
|
128
|
-
if (started) {
|
|
129
|
-
testem.restart();
|
|
130
|
-
} else {
|
|
131
|
-
started = true;
|
|
132
|
-
|
|
133
|
-
ui.stopProgress();
|
|
134
|
-
resolve(task.invokeTestem(options));
|
|
135
|
-
}
|
|
136
|
-
} catch (e) {
|
|
137
|
-
reject(e);
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Exit silently
|
|
145
|
-
*
|
|
146
|
-
* @private
|
|
147
|
-
* @method onInterrupt
|
|
148
|
-
*/
|
|
149
|
-
onInterrupt() {
|
|
150
|
-
// We don't have any hanging promise to resolve here because the SIGINT is
|
|
151
|
-
// captured and handled by testem
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
module.exports = TestServerTask;
|
|
156
|
-
|
|
157
|
-
</pre>
|
|
158
|
-
|
|
159
|
-
</div>
|
|
160
|
-
</div>
|
|
161
|
-
</div>
|
|
162
|
-
</div>
|
|
163
|
-
<script src="../assets/vendor/prettify/prettify-min.js"></script>
|
|
164
|
-
<script>prettyPrint();</script>
|
|
165
|
-
<script src="../assets/js/yui-prettify.js"></script>
|
|
166
|
-
</body>
|
|
167
|
-
</html>
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title>lib/tasks/transforms/amd/index.js - ember-cli</title>
|
|
6
|
-
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
|
|
7
|
-
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
|
|
8
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/yui/3.18.0/yui/yui-min.js"></script>
|
|
9
|
-
</head>
|
|
10
|
-
<body class="yui3-skin-sam">
|
|
11
|
-
|
|
12
|
-
<div id="doc">
|
|
13
|
-
<div class="yui3-g">
|
|
14
|
-
<div id="sidebar" class="yui3-u">
|
|
15
|
-
<div class="logo">
|
|
16
|
-
<a href="../index.html">
|
|
17
|
-
<img src="https://ember-cli.com/assets/images/ember-cli-logo-small-dark.png">
|
|
18
|
-
</a>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div id="modules" class="sidebox">
|
|
22
|
-
<div class="hd">
|
|
23
|
-
<h2 class="no-toc">Modules</h2>
|
|
24
|
-
</div>
|
|
25
|
-
<div class="bd">
|
|
26
|
-
<ul>
|
|
27
|
-
<li><a href="../modules/ember-cli.html">ember-cli</a>
|
|
28
|
-
</li>
|
|
29
|
-
<li><a href="../modules/is-lazy-engine.html">is-lazy-engine</a>
|
|
30
|
-
</li>
|
|
31
|
-
</ul>
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
<div id="classes" class="sidebox">
|
|
36
|
-
<div class="hd">
|
|
37
|
-
<h2 class="no-toc">Classes</h2>
|
|
38
|
-
</div>
|
|
39
|
-
<div class="bd">
|
|
40
|
-
<ul>
|
|
41
|
-
<li><a href="../classes/Addon.html">Addon</a></li>
|
|
42
|
-
<li><a href="../classes/AmdTransformAddon.html">AmdTransformAddon</a></li>
|
|
43
|
-
<li><a href="../classes/Blueprint.html">Blueprint</a></li>
|
|
44
|
-
<li><a href="../classes/Builder.html">Builder</a></li>
|
|
45
|
-
<li><a href="../classes/CLI.html">CLI</a></li>
|
|
46
|
-
<li><a href="../classes/Command.html">Command</a></li>
|
|
47
|
-
<li><a href="../classes/DefaultPackager.html">DefaultPackager</a></li>
|
|
48
|
-
<li><a href="../classes/EmberAddon.html">EmberAddon</a></li>
|
|
49
|
-
<li><a href="../classes/EmberApp.html">EmberApp</a></li>
|
|
50
|
-
<li><a href="../classes/HardwareInfo.html">HardwareInfo</a></li>
|
|
51
|
-
<li><a href="../classes/HistorySupportAddon.html">HistorySupportAddon</a></li>
|
|
52
|
-
<li><a href="../classes/Instrumentation.html">Instrumentation</a></li>
|
|
53
|
-
<li><a href="../classes/NodeModulesList.html">NodeModulesList</a></li>
|
|
54
|
-
<li><a href="../classes/NpmTask.html">NpmTask</a></li>
|
|
55
|
-
<li><a href="../classes/PackageInfo.html">PackageInfo</a></li>
|
|
56
|
-
<li><a href="../classes/PackageInfoCache.html">PackageInfoCache</a></li>
|
|
57
|
-
<li><a href="../classes/PerBundleAddonCache {.html">PerBundleAddonCache {</a></li>
|
|
58
|
-
<li><a href="../classes/Project.html">Project</a></li>
|
|
59
|
-
<li><a href="../classes/ServeFilesAddon.html">ServeFilesAddon</a></li>
|
|
60
|
-
<li><a href="../classes/TestsServerAddon.html">TestsServerAddon</a></li>
|
|
61
|
-
<li><a href="../classes/WatcherAddon.html">WatcherAddon</a></li>
|
|
62
|
-
<li><a href="../classes/WindowsSymlinkChecker.html">WindowsSymlinkChecker</a></li>
|
|
63
|
-
</ul>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<div class="version-info">
|
|
72
|
-
Version: 4.0.0-release-b4cbb1029f
|
|
73
|
-
</div>
|
|
74
|
-
|
|
75
|
-
</div>
|
|
76
|
-
|
|
77
|
-
<div id="main" class="yui3-u">
|
|
78
|
-
<div class="content"><div class="title">
|
|
79
|
-
<h1 class="file-name">lib/tasks/transforms/amd/index.js</h1>
|
|
80
|
-
</div>
|
|
81
|
-
|
|
82
|
-
<pre class="code prettyprint linenums">
|
|
83
|
-
'use strict';
|
|
84
|
-
|
|
85
|
-
const shimAmd = require('./amd-shim');
|
|
86
|
-
|
|
87
|
-
class AmdTransformAddon {
|
|
88
|
-
/**
|
|
89
|
-
* This addon is used to register a custom AMD transform for app and addons to use.
|
|
90
|
-
*
|
|
91
|
-
* @class AmdTransformAddon
|
|
92
|
-
* @constructor
|
|
93
|
-
*/
|
|
94
|
-
constructor(project) {
|
|
95
|
-
this.project = project;
|
|
96
|
-
this.name = 'amd-transform';
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
importTransforms() {
|
|
100
|
-
return {
|
|
101
|
-
amd: {
|
|
102
|
-
transform: (tree, options) => {
|
|
103
|
-
let nameMapping = {};
|
|
104
|
-
for (let relativePath in options) {
|
|
105
|
-
nameMapping[relativePath] = options[relativePath].as;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
let amdTransform = shimAmd(tree, nameMapping);
|
|
109
|
-
|
|
110
|
-
return amdTransform;
|
|
111
|
-
},
|
|
112
|
-
processOptions: (assetPath, entry, options) => {
|
|
113
|
-
// If the import is specified to be a different name we must break because of the broccoli rewrite behavior.
|
|
114
|
-
if (Object.keys(options).indexOf(assetPath) !== -1 && options[assetPath].as !== entry.as) {
|
|
115
|
-
throw new Error(
|
|
116
|
-
`Highlander error while importing ${assetPath}. You may not import an AMD transformed asset at different module names.`
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
options[assetPath] = {
|
|
121
|
-
as: entry.as,
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
return options;
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
module.exports = AmdTransformAddon;
|
|
132
|
-
|
|
133
|
-
</pre>
|
|
134
|
-
|
|
135
|
-
</div>
|
|
136
|
-
</div>
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
<script src="../assets/vendor/prettify/prettify-min.js"></script>
|
|
140
|
-
<script>prettyPrint();</script>
|
|
141
|
-
<script src="../assets/js/yui-prettify.js"></script>
|
|
142
|
-
</body>
|
|
143
|
-
</html>
|
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title>lib/utilities/ember-app-utils.js - ember-cli</title>
|
|
6
|
-
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
|
|
7
|
-
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
|
|
8
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/yui/3.18.0/yui/yui-min.js"></script>
|
|
9
|
-
</head>
|
|
10
|
-
<body class="yui3-skin-sam">
|
|
11
|
-
|
|
12
|
-
<div id="doc">
|
|
13
|
-
<div class="yui3-g">
|
|
14
|
-
<div id="sidebar" class="yui3-u">
|
|
15
|
-
<div class="logo">
|
|
16
|
-
<a href="../index.html">
|
|
17
|
-
<img src="https://ember-cli.com/assets/images/ember-cli-logo-small-dark.png">
|
|
18
|
-
</a>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div id="modules" class="sidebox">
|
|
22
|
-
<div class="hd">
|
|
23
|
-
<h2 class="no-toc">Modules</h2>
|
|
24
|
-
</div>
|
|
25
|
-
<div class="bd">
|
|
26
|
-
<ul>
|
|
27
|
-
<li><a href="../modules/ember-cli.html">ember-cli</a>
|
|
28
|
-
</li>
|
|
29
|
-
<li><a href="../modules/is-lazy-engine.html">is-lazy-engine</a>
|
|
30
|
-
</li>
|
|
31
|
-
</ul>
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
<div id="classes" class="sidebox">
|
|
36
|
-
<div class="hd">
|
|
37
|
-
<h2 class="no-toc">Classes</h2>
|
|
38
|
-
</div>
|
|
39
|
-
<div class="bd">
|
|
40
|
-
<ul>
|
|
41
|
-
<li><a href="../classes/Addon.html">Addon</a></li>
|
|
42
|
-
<li><a href="../classes/AmdTransformAddon.html">AmdTransformAddon</a></li>
|
|
43
|
-
<li><a href="../classes/Blueprint.html">Blueprint</a></li>
|
|
44
|
-
<li><a href="../classes/Builder.html">Builder</a></li>
|
|
45
|
-
<li><a href="../classes/CLI.html">CLI</a></li>
|
|
46
|
-
<li><a href="../classes/Command.html">Command</a></li>
|
|
47
|
-
<li><a href="../classes/DefaultPackager.html">DefaultPackager</a></li>
|
|
48
|
-
<li><a href="../classes/EmberAddon.html">EmberAddon</a></li>
|
|
49
|
-
<li><a href="../classes/EmberApp.html">EmberApp</a></li>
|
|
50
|
-
<li><a href="../classes/HardwareInfo.html">HardwareInfo</a></li>
|
|
51
|
-
<li><a href="../classes/HistorySupportAddon.html">HistorySupportAddon</a></li>
|
|
52
|
-
<li><a href="../classes/Instrumentation.html">Instrumentation</a></li>
|
|
53
|
-
<li><a href="../classes/NodeModulesList.html">NodeModulesList</a></li>
|
|
54
|
-
<li><a href="../classes/NpmTask.html">NpmTask</a></li>
|
|
55
|
-
<li><a href="../classes/PackageInfo.html">PackageInfo</a></li>
|
|
56
|
-
<li><a href="../classes/PackageInfoCache.html">PackageInfoCache</a></li>
|
|
57
|
-
<li><a href="../classes/PerBundleAddonCache {.html">PerBundleAddonCache {</a></li>
|
|
58
|
-
<li><a href="../classes/Project.html">Project</a></li>
|
|
59
|
-
<li><a href="../classes/ServeFilesAddon.html">ServeFilesAddon</a></li>
|
|
60
|
-
<li><a href="../classes/TestsServerAddon.html">TestsServerAddon</a></li>
|
|
61
|
-
<li><a href="../classes/WatcherAddon.html">WatcherAddon</a></li>
|
|
62
|
-
<li><a href="../classes/WindowsSymlinkChecker.html">WindowsSymlinkChecker</a></li>
|
|
63
|
-
</ul>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<div class="version-info">
|
|
72
|
-
Version: 4.0.0-release-b4cbb1029f
|
|
73
|
-
</div>
|
|
74
|
-
|
|
75
|
-
</div>
|
|
76
|
-
|
|
77
|
-
<div id="main" class="yui3-u">
|
|
78
|
-
<div class="content"><div class="title">
|
|
79
|
-
<h1 class="file-name">lib/utilities/ember-app-utils.js</h1>
|
|
80
|
-
</div>
|
|
81
|
-
|
|
82
|
-
<pre class="code prettyprint linenums">
|
|
83
|
-
'use strict';
|
|
84
|
-
|
|
85
|
-
const fs = require('fs');
|
|
86
|
-
const path = require('path');
|
|
87
|
-
const cleanBaseURL = require('clean-base-url');
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Returns a normalized url given a string.
|
|
91
|
-
* Returns an empty string if `null`, `undefined` or an empty string are passed
|
|
92
|
-
* in.
|
|
93
|
-
*
|
|
94
|
-
* @method normalizeUrl
|
|
95
|
-
* @param {String} Raw url.
|
|
96
|
-
* @return {String} Normalized url.
|
|
97
|
-
*/
|
|
98
|
-
function normalizeUrl(rootURL) {
|
|
99
|
-
if (rootURL === undefined || rootURL === null || rootURL === '') {
|
|
100
|
-
return '';
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return cleanBaseURL(rootURL);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Converts Javascript Object to a string.
|
|
108
|
-
* Returns an empty object string representation if a "falsy" value is passed
|
|
109
|
-
* in.
|
|
110
|
-
*
|
|
111
|
-
* @method convertObjectToString
|
|
112
|
-
* @param {Object} Any Javascript Object.
|
|
113
|
-
* @return {String} A string representation of a Javascript Object.
|
|
114
|
-
*/
|
|
115
|
-
function convertObjectToString(env) {
|
|
116
|
-
return JSON.stringify(env || {});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Returns the <base> tag for index.html.
|
|
121
|
-
*
|
|
122
|
-
* @method calculateBaseTag
|
|
123
|
-
* @param {String} baseURL
|
|
124
|
-
* @param {String} locationType 'history', 'none' or 'hash'.
|
|
125
|
-
* @return {String} Base tag or an empty string
|
|
126
|
-
*/
|
|
127
|
-
function calculateBaseTag(baseURL, locationType) {
|
|
128
|
-
let normalizedBaseUrl = cleanBaseURL(baseURL);
|
|
129
|
-
|
|
130
|
-
if (locationType === 'hash') {
|
|
131
|
-
return '';
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
return normalizedBaseUrl ? `<base href="${normalizedBaseUrl}" />` : '';
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Returns the content for a specific type (section) for index.html.
|
|
139
|
-
*
|
|
140
|
-
* ```
|
|
141
|
-
* {{content-for "[type]"}}
|
|
142
|
-
* ```
|
|
143
|
-
*
|
|
144
|
-
* Supported types:
|
|
145
|
-
*
|
|
146
|
-
* - 'head'
|
|
147
|
-
* - 'config-module'
|
|
148
|
-
* - 'head-footer'
|
|
149
|
-
* - 'test-header-footer'
|
|
150
|
-
* - 'body-footer'
|
|
151
|
-
* - 'test-body-footer'
|
|
152
|
-
*
|
|
153
|
-
* @method contentFor
|
|
154
|
-
* @param {Object} config Ember.js application configuration
|
|
155
|
-
* @param {RegExp} match Regular expression to match against
|
|
156
|
-
* @param {String} type Type of content
|
|
157
|
-
* @param {Object} options Settings that control the default content
|
|
158
|
-
* @param {Boolean} options.autoRun Controls whether to bootstrap the
|
|
159
|
-
application or not
|
|
160
|
-
* @param {Boolean} options.storeConfigInMeta Controls whether to include the
|
|
161
|
-
contents of config
|
|
162
|
-
* @return {String} The content.
|
|
163
|
-
*/
|
|
164
|
-
function contentFor(config, match, type, options) {
|
|
165
|
-
let content = [];
|
|
166
|
-
|
|
167
|
-
// This normalizes `rootURL` to the value which we use everywhere inside of Ember CLI.
|
|
168
|
-
// This makes sure that the user doesn't have to account for it in application code.
|
|
169
|
-
if ('rootURL' in config) {
|
|
170
|
-
config.rootURL = normalizeUrl(config.rootURL);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
switch (type) {
|
|
174
|
-
case 'head':
|
|
175
|
-
content.push(calculateBaseTag(config.baseURL, config.locationType));
|
|
176
|
-
|
|
177
|
-
if (options.storeConfigInMeta) {
|
|
178
|
-
content.push(
|
|
179
|
-
`<meta name="${config.modulePrefix}/config/environment" content="${encodeURIComponent(
|
|
180
|
-
JSON.stringify(config)
|
|
181
|
-
)}" />`
|
|
182
|
-
);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
break;
|
|
186
|
-
case 'config-module':
|
|
187
|
-
if (options.storeConfigInMeta) {
|
|
188
|
-
content.push(`var prefix = '${config.modulePrefix}';`);
|
|
189
|
-
content.push(fs.readFileSync(path.join(__dirname, '../broccoli/app-config-from-meta.js')));
|
|
190
|
-
} else {
|
|
191
|
-
content.push(`
|
|
192
|
-
var exports = {
|
|
193
|
-
'default': ${JSON.stringify(config)}
|
|
194
|
-
};
|
|
195
|
-
Object.defineProperty(exports, '__esModule', {value: true});
|
|
196
|
-
return exports;
|
|
197
|
-
`);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
break;
|
|
201
|
-
case 'app-boot':
|
|
202
|
-
if (options.autoRun) {
|
|
203
|
-
let moduleToRequire = `${config.modulePrefix}/app`;
|
|
204
|
-
content.push(`
|
|
205
|
-
if (!runningTests) {
|
|
206
|
-
require("${moduleToRequire}")["default"].create(${convertObjectToString(config.APP)});
|
|
207
|
-
}
|
|
208
|
-
`);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
break;
|
|
212
|
-
case 'test-body-footer':
|
|
213
|
-
content.push(
|
|
214
|
-
`<script>
|
|
215
|
-
document.addEventListener('DOMContentLoaded', function() {
|
|
216
|
-
if (!EmberENV.TESTS_FILE_LOADED) {
|
|
217
|
-
throw new Error('The tests file was not loaded. Make sure your tests index.html includes "assets/tests.js".');
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
</script>`
|
|
221
|
-
);
|
|
222
|
-
|
|
223
|
-
break;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
content = options.addons.reduce((content, addon) => {
|
|
227
|
-
let addonContent = addon.contentFor ? addon.contentFor(type, config, content) : null;
|
|
228
|
-
if (addonContent) {
|
|
229
|
-
return content.concat(addonContent);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
return content;
|
|
233
|
-
}, content);
|
|
234
|
-
|
|
235
|
-
return content.join('\n');
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/*
|
|
239
|
-
* Return a list of pairs: a pattern to match to a replacement function.
|
|
240
|
-
*
|
|
241
|
-
* Used to replace various tags in `index.html` and `tests/index.html`.
|
|
242
|
-
*
|
|
243
|
-
* @param {Object} options
|
|
244
|
-
* @param {Array} options.addons A list of project's add-ons
|
|
245
|
-
* @param {Boolean} options.autoRun Controls whether to bootstrap the
|
|
246
|
-
application or not
|
|
247
|
-
* @param {Boolean} options.storeConfigInMeta Controls whether to include the
|
|
248
|
-
contents of config
|
|
249
|
-
@return {Array} An array of patterns to match against and replace
|
|
250
|
-
*/
|
|
251
|
-
function configReplacePatterns(options) {
|
|
252
|
-
return [
|
|
253
|
-
{
|
|
254
|
-
match: /{{\s?rootURL\s?}}/g,
|
|
255
|
-
replacement(config) {
|
|
256
|
-
return normalizeUrl(config.rootURL);
|
|
257
|
-
},
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
match: /{{\s?EMBER_ENV\s?}}/g,
|
|
261
|
-
replacement(config) {
|
|
262
|
-
return convertObjectToString(config.EmberENV);
|
|
263
|
-
},
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
match: /{{content-for ['"](.+?)["']}}/g,
|
|
267
|
-
replacement(config, match, type) {
|
|
268
|
-
return contentFor(config, match, type, options);
|
|
269
|
-
},
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
match: /{{\s?MODULE_PREFIX\s?}}/g,
|
|
273
|
-
replacement(config) {
|
|
274
|
-
return config.modulePrefix;
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
];
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
module.exports = { normalizeUrl, convertObjectToString, calculateBaseTag, contentFor, configReplacePatterns };
|
|
281
|
-
|
|
282
|
-
</pre>
|
|
283
|
-
|
|
284
|
-
</div>
|
|
285
|
-
</div>
|
|
286
|
-
</div>
|
|
287
|
-
</div>
|
|
288
|
-
<script src="../assets/vendor/prettify/prettify-min.js"></script>
|
|
289
|
-
<script>prettyPrint();</script>
|
|
290
|
-
<script src="../assets/js/yui-prettify.js"></script>
|
|
291
|
-
</body>
|
|
292
|
-
</html>
|