@roots/bud-compiler 5.0.0-next.11 → 5.0.0-next.15

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/README.md CHANGED
@@ -67,8 +67,4 @@ Help support our open-source development efforts by [becoming a patron](https://
67
67
  <a href="https://carrot.com/"><img src="https://cdn.roots.io/app/uploads/carrot.svg" alt="Carrot" width="200" height="150"/></a>
68
68
  <a href="https://www.c21redwood.com/"><img src="https://cdn.roots.io/app/uploads/c21redwood.svg" alt="C21 Redwood Realty" width="200" height="150"/></a>
69
69
  <a href="https://wordpress.com/"><img src="https://cdn.roots.io/app/uploads/wordpress.svg" alt="WordPress.com" width="200" height="150"/></a>
70
- <a href="https://icons8.com/"><img src="https://cdn.roots.io/app/uploads/icons8.svg" alt="Icons8" width="200" height="150"/></a>
71
- <a href="https://www.harnessup.com/"><img src="https://cdn.roots.io/app/uploads/harness-software.svg" alt="Harness Software" width="200" height="150"/></a>
72
- <a href="https://www.codersclan.com/"><img src="https://cdn.roots.io/app/uploads/coders-clan.svg" alt="Coders Clan" width="200" height="150"/></a>
73
- <a href="https://generodigital.com/"><img src="https://cdn.roots.io/app/uploads/genero.svg" alt="Genero" width="200" height="150"/></a>
74
- <a href="https://motto.ca/roots"><img src="https://cdn.roots.io/app/uploads/motto.svg" alt="Motto" width="200" height="150"/></a>
70
+ <a href="https://pantheon.io/"><img src="https://cdn.roots.io/app/uploads/pantheon.svg" alt="Pantheon" width="200" height="150"/></a>
@@ -6,7 +6,6 @@ const bud_framework_1 = require("@roots/bud-framework");
6
6
  const bud_support_1 = require("@roots/bud-support");
7
7
  const webpack_1 = require("webpack");
8
8
  const { isFunction } = bud_support_1.lodash;
9
- const helpful_decorators_1 = require("helpful-decorators");
10
9
  /**
11
10
  * Initial state
12
11
  *
@@ -43,13 +42,16 @@ class Compiler extends bud_framework_1.Service {
43
42
  this.config = [];
44
43
  }
45
44
  /**
46
- * {@inheritDoc @roots/bud-framework#Service.register}
45
+ * Service register event
47
46
  *
48
47
  * @public
49
48
  * @decorator `@bind`
50
49
  */
51
50
  register() {
52
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () { });
51
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
52
+ this.app.hooks.filter('event.compiler.register.before', this.app);
53
+ this.app.hooks.filter('event.compiler.register.after', this.app);
54
+ });
53
55
  }
54
56
  /**
55
57
  * Initiates compilation
@@ -62,7 +64,7 @@ class Compiler extends bud_framework_1.Service {
62
64
  compile() {
63
65
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
64
66
  const config = yield this.before();
65
- const compiler = yield this.invokeCompiler(config);
67
+ const compiler = yield this.invoke(config);
66
68
  this.app.timeEnd('bud');
67
69
  return compiler;
68
70
  });
@@ -71,34 +73,40 @@ class Compiler extends bud_framework_1.Service {
71
73
  * @public
72
74
  * @decorator `@bind`
73
75
  */
74
- invokeCompiler(config) {
76
+ invoke(config) {
75
77
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
76
- this.app.hooks.filter('before.compiler');
78
+ config = yield this.app.hooks.promised('event.compiler.before', config);
79
+ config = this.app.hooks.filter('config.override', config);
77
80
  this.instance = (0, webpack_1.webpack)(config);
78
81
  this.instance.hooks.done.tap(config[0].name, (stats) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
79
- var _a, _b;
82
+ yield this.app.hooks.filter('event.compiler.done', stats);
80
83
  stats && Object.assign(this.stats, stats.toJson());
84
+ if (this.app.store.is('features.dashboard', false)) {
85
+ this.log('log', stats.toString({
86
+ colors: true,
87
+ modules: false,
88
+ children: false,
89
+ chunks: false,
90
+ chunkModules: false,
91
+ entrypoints: false,
92
+ performance: false,
93
+ }));
94
+ }
81
95
  if (this.app.isProduction) {
82
96
  this.instance.close(err => {
83
97
  if (err) {
98
+ err = this.app.hooks.filter('compiler.error', err);
84
99
  this.stats.errors.push(err);
85
100
  this.log('error', err);
86
101
  }
87
- this.app.close(() => { });
102
+ !this.app.dashboard.instance && this.app.close();
88
103
  });
89
104
  }
90
- else {
91
- ((_b = (_a = this.app.server.middlewareStack) === null || _a === void 0 ? void 0 : _a.hot) === null || _b === void 0 ? void 0 : _b.publish) &&
92
- this.app.server.middlewareStack.hot.publish({
93
- action: 'webpack_stats',
94
- data: { stats: this.stats },
95
- });
96
- }
97
105
  }));
98
106
  new webpack_1.ProgressPlugin((...args) => {
99
107
  this.progress = args;
100
108
  }).apply(this.instance);
101
- this.app.hooks.filter('after.compiler');
109
+ this.app.hooks.filter('event.compiler.after');
102
110
  return this.instance;
103
111
  });
104
112
  }
@@ -157,13 +165,13 @@ class Compiler extends bud_framework_1.Service {
157
165
  * here we parse the callback args so that we dont have to
158
166
  * duplicate the callback.
159
167
  */
160
- const [err, stats] = args.length > 1 ? args : [null, args.pop()];
168
+ let [err, stats] = args.length > 1 ? args : [null, args.pop()];
161
169
  if ((stats === null || stats === void 0 ? void 0 : stats.toJson) && isFunction(stats.toJson)) {
162
170
  this.stats = stats.toJson((_a = this.app.build.config.stats) !== null && _a !== void 0 ? _a : { preset: 'normal' });
163
- this.app.store.is('features.dashboard', false) &&
164
- this.app.log(stats.toString());
171
+ this.stats = this.app.hooks.filter('compiler.stats', this.stats);
165
172
  }
166
173
  if (err) {
174
+ err = this.app.hooks.filter('compiler.error', err);
167
175
  this.stats.errors.push(err);
168
176
  this.app.store.is('features.dashboard', false) &&
169
177
  this.log('error', err);
@@ -174,14 +182,15 @@ class Compiler extends bud_framework_1.Service {
174
182
  bud_support_1.bind
175
183
  ], Compiler.prototype, "register", null);
176
184
  (0, tslib_1.__decorate)([
177
- bud_support_1.bind
185
+ bud_support_1.bind,
186
+ bud_support_1.once
178
187
  ], Compiler.prototype, "compile", null);
179
188
  (0, tslib_1.__decorate)([
180
189
  bud_support_1.bind
181
- ], Compiler.prototype, "invokeCompiler", null);
190
+ ], Compiler.prototype, "invoke", null);
182
191
  (0, tslib_1.__decorate)([
183
192
  bud_support_1.bind,
184
- helpful_decorators_1.once
193
+ bud_support_1.once
185
194
  ], Compiler.prototype, "before", null);
186
195
  (0, tslib_1.__decorate)([
187
196
  bud_support_1.bind
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { __awaiter, __decorate } from "tslib";
2
2
  import { Service, } from '@roots/bud-framework';
3
- import { bind, lodash } from '@roots/bud-support';
3
+ import { bind, lodash, once } from '@roots/bud-support';
4
4
  import { ProgressPlugin, webpack } from 'webpack';
5
5
  const { isFunction } = lodash;
6
- import { once } from 'helpful-decorators';
7
6
  /**
8
7
  * Initial state
9
8
  *
@@ -40,13 +39,16 @@ export class Compiler extends Service {
40
39
  this.config = [];
41
40
  }
42
41
  /**
43
- * {@inheritDoc @roots/bud-framework#Service.register}
42
+ * Service register event
44
43
  *
45
44
  * @public
46
45
  * @decorator `@bind`
47
46
  */
48
47
  register() {
49
- return __awaiter(this, void 0, void 0, function* () { });
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ this.app.hooks.filter('event.compiler.register.before', this.app);
50
+ this.app.hooks.filter('event.compiler.register.after', this.app);
51
+ });
50
52
  }
51
53
  /**
52
54
  * Initiates compilation
@@ -59,7 +61,7 @@ export class Compiler extends Service {
59
61
  compile() {
60
62
  return __awaiter(this, void 0, void 0, function* () {
61
63
  const config = yield this.before();
62
- const compiler = yield this.invokeCompiler(config);
64
+ const compiler = yield this.invoke(config);
63
65
  this.app.timeEnd('bud');
64
66
  return compiler;
65
67
  });
@@ -68,34 +70,40 @@ export class Compiler extends Service {
68
70
  * @public
69
71
  * @decorator `@bind`
70
72
  */
71
- invokeCompiler(config) {
73
+ invoke(config) {
72
74
  return __awaiter(this, void 0, void 0, function* () {
73
- this.app.hooks.filter('before.compiler');
75
+ config = yield this.app.hooks.promised('event.compiler.before', config);
76
+ config = this.app.hooks.filter('config.override', config);
74
77
  this.instance = webpack(config);
75
78
  this.instance.hooks.done.tap(config[0].name, (stats) => __awaiter(this, void 0, void 0, function* () {
76
- var _a, _b;
79
+ yield this.app.hooks.filter('event.compiler.done', stats);
77
80
  stats && Object.assign(this.stats, stats.toJson());
81
+ if (this.app.store.is('features.dashboard', false)) {
82
+ this.log('log', stats.toString({
83
+ colors: true,
84
+ modules: false,
85
+ children: false,
86
+ chunks: false,
87
+ chunkModules: false,
88
+ entrypoints: false,
89
+ performance: false,
90
+ }));
91
+ }
78
92
  if (this.app.isProduction) {
79
93
  this.instance.close(err => {
80
94
  if (err) {
95
+ err = this.app.hooks.filter('compiler.error', err);
81
96
  this.stats.errors.push(err);
82
97
  this.log('error', err);
83
98
  }
84
- this.app.close(() => { });
99
+ !this.app.dashboard.instance && this.app.close();
85
100
  });
86
101
  }
87
- else {
88
- ((_b = (_a = this.app.server.middlewareStack) === null || _a === void 0 ? void 0 : _a.hot) === null || _b === void 0 ? void 0 : _b.publish) &&
89
- this.app.server.middlewareStack.hot.publish({
90
- action: 'webpack_stats',
91
- data: { stats: this.stats },
92
- });
93
- }
94
102
  }));
95
103
  new ProgressPlugin((...args) => {
96
104
  this.progress = args;
97
105
  }).apply(this.instance);
98
- this.app.hooks.filter('after.compiler');
106
+ this.app.hooks.filter('event.compiler.after');
99
107
  return this.instance;
100
108
  });
101
109
  }
@@ -154,13 +162,13 @@ export class Compiler extends Service {
154
162
  * here we parse the callback args so that we dont have to
155
163
  * duplicate the callback.
156
164
  */
157
- const [err, stats] = args.length > 1 ? args : [null, args.pop()];
165
+ let [err, stats] = args.length > 1 ? args : [null, args.pop()];
158
166
  if ((stats === null || stats === void 0 ? void 0 : stats.toJson) && isFunction(stats.toJson)) {
159
167
  this.stats = stats.toJson((_a = this.app.build.config.stats) !== null && _a !== void 0 ? _a : { preset: 'normal' });
160
- this.app.store.is('features.dashboard', false) &&
161
- this.app.log(stats.toString());
168
+ this.stats = this.app.hooks.filter('compiler.stats', this.stats);
162
169
  }
163
170
  if (err) {
171
+ err = this.app.hooks.filter('compiler.error', err);
164
172
  this.stats.errors.push(err);
165
173
  this.app.store.is('features.dashboard', false) &&
166
174
  this.log('error', err);
@@ -171,11 +179,12 @@ __decorate([
171
179
  bind
172
180
  ], Compiler.prototype, "register", null);
173
181
  __decorate([
174
- bind
182
+ bind,
183
+ once
175
184
  ], Compiler.prototype, "compile", null);
176
185
  __decorate([
177
186
  bind
178
- ], Compiler.prototype, "invokeCompiler", null);
187
+ ], Compiler.prototype, "invoke", null);
179
188
  __decorate([
180
189
  bind,
181
190
  once
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":"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"}