@roots/bud-build 5.0.0-next.6 → 5.0.0

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.
Files changed (64) hide show
  1. package/README.md +8 -28
  2. package/lib/cjs/Build/config.js +260 -163
  3. package/lib/cjs/Build/config.js.map +1 -1
  4. package/lib/cjs/Build/index.js +113 -47
  5. package/lib/cjs/Build/index.js.map +1 -1
  6. package/lib/cjs/Build/items.js +113 -97
  7. package/lib/cjs/Build/items.js.map +1 -1
  8. package/lib/cjs/Build/loaders.js +53 -52
  9. package/lib/cjs/Build/loaders.js.map +1 -1
  10. package/lib/cjs/Build/rules.js +46 -21
  11. package/lib/cjs/Build/rules.js.map +1 -1
  12. package/lib/cjs/Item/index.js +10 -17
  13. package/lib/cjs/Item/index.js.map +1 -1
  14. package/lib/cjs/Item/item.interface.js +2 -2
  15. package/lib/cjs/Item/item.interface.js.map +1 -1
  16. package/lib/cjs/Loader/index.js +8 -7
  17. package/lib/cjs/Loader/index.js.map +1 -1
  18. package/lib/cjs/Rule/index.js +2 -1
  19. package/lib/cjs/Rule/index.js.map +1 -1
  20. package/lib/cjs/index.js +9 -9
  21. package/lib/cjs/index.js.map +1 -1
  22. package/lib/esm/Build/config.js +260 -163
  23. package/lib/esm/Build/config.js.map +1 -1
  24. package/lib/esm/Build/index.js +114 -47
  25. package/lib/esm/Build/index.js.map +1 -1
  26. package/lib/esm/Build/items.js +113 -84
  27. package/lib/esm/Build/items.js.map +1 -1
  28. package/lib/esm/Build/loaders.js +53 -41
  29. package/lib/esm/Build/loaders.js.map +1 -1
  30. package/lib/esm/Build/rules.js +35 -9
  31. package/lib/esm/Build/rules.js.map +1 -1
  32. package/lib/esm/Item/index.js +9 -17
  33. package/lib/esm/Item/index.js.map +1 -1
  34. package/lib/esm/Item/item.interface.js +1 -1
  35. package/lib/esm/Item/item.interface.js.map +1 -1
  36. package/lib/esm/Loader/index.js +6 -6
  37. package/lib/esm/Loader/index.js.map +1 -1
  38. package/lib/esm/Rule/index.js +1 -1
  39. package/lib/esm/Rule/index.js.map +1 -1
  40. package/lib/esm/index.js +5 -6
  41. package/lib/esm/index.js.map +1 -1
  42. package/lib/tsconfig-esm.tsbuildinfo +1 -1
  43. package/lib/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +18 -14
  45. package/types/Build/config.d.ts +8 -1
  46. package/types/Build/config.d.ts.map +1 -1
  47. package/types/Build/index.d.ts +36 -13
  48. package/types/Build/index.d.ts.map +1 -1
  49. package/types/Build/items.d.ts +73 -43
  50. package/types/Build/items.d.ts.map +1 -1
  51. package/types/Build/loaders.d.ts +54 -41
  52. package/types/Build/loaders.d.ts.map +1 -1
  53. package/types/Build/rules.d.ts +23 -1
  54. package/types/Build/rules.d.ts.map +1 -1
  55. package/types/Item/index.d.ts +9 -17
  56. package/types/Item/index.d.ts.map +1 -1
  57. package/types/Item/item.interface.d.ts +1 -1
  58. package/types/Item/item.interface.d.ts.map +1 -1
  59. package/types/Loader/index.d.ts +13 -10
  60. package/types/Loader/index.d.ts.map +1 -1
  61. package/types/Rule/index.d.ts +1 -1
  62. package/types/Rule/index.d.ts.map +1 -1
  63. package/types/index.d.ts +5 -6
  64. package/types/index.d.ts.map +1 -1
@@ -1,66 +1,133 @@
1
+ import { __awaiter, __decorate } from "tslib";
1
2
  import { Service } from '@roots/bud-framework';
3
+ import { bind, chalk, fs, lodash, prettyFormat, } from '@roots/bud-support';
2
4
  import { config } from './config';
3
- import * as items from './items';
4
- import * as loaders from './loaders';
5
+ import items from './items';
6
+ import loaders from './loaders';
5
7
  import * as rules from './rules';
8
+ const { isNull, isUndefined } = lodash;
9
+ const { ensureFile, writeFile } = fs;
6
10
  /**
7
- * Framework configuration builder class
11
+ * Webpack configuration builder class
8
12
  *
9
13
  * @public
10
14
  */
11
15
  export class Build extends Service {
12
- constructor() {
13
- super(...arguments);
14
- /**
15
- * {@inheritDoc @roots/bud-framework#Build.Interface.name}
16
- *
17
- * @public
18
- */
19
- this.name = 'build';
16
+ /**
17
+ * Service booted event
18
+ *
19
+ * @public
20
+ * @decorator `@bind`
21
+ */
22
+ registered() {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ this.app.hooks.on('event.build.make.after', this.writeFinalConfig);
25
+ });
20
26
  }
27
+ /**
28
+ * Make webpack configuration
29
+ *
30
+ * @public
31
+ * @decorator `@bind`
32
+ */
21
33
  make() {
22
- this.app.log('build.config called');
23
- const config = this.app.hooks.filter('build');
24
- this.config = Object.entries(config).reduce((a, [k, v]) => {
25
- if (v === undefined) {
26
- return a;
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ yield this.app.hooks.filterAsync('event.build.make.before', this.app);
36
+ const build = yield this.app.hooks.filterAsync('build');
37
+ if (!build) {
38
+ throw new Error('Configuration could not be processed');
39
+ }
40
+ this.config =
41
+ yield this.app.hooks.filterAsync('event.build.override', Object.entries(build).reduce((all, [key, value]) => {
42
+ if (isUndefined(value) || isNull(value)) {
43
+ this.log(`warn`, {
44
+ message: `build.make: excluding ${key}`,
45
+ suffix: `value is undefined`,
46
+ });
47
+ return all;
48
+ }
49
+ this.app.dump(value, {
50
+ prefix: `${chalk.bgBlue(this.app.name)} config.${key}`,
51
+ maxDepth: 2,
52
+ });
53
+ return Object.assign(Object.assign({}, all), { [key]: value });
54
+ }, {}));
55
+ yield this.app.hooks.filterAsync('event.build.make.after', () => __awaiter(this, void 0, void 0, function* () { return null; }));
56
+ return this.config;
57
+ });
58
+ }
59
+ /**
60
+ * Service register event
61
+ *
62
+ * @public
63
+ * @decorator `@bind`
64
+ */
65
+ register() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ const reducer = (a, [k, v]) => (Object.assign(Object.assign({}, a), { [k]: v() }));
68
+ Object.assign(this, {
69
+ loaders: this.app
70
+ .container(loaders)
71
+ .getEntries()
72
+ .reduce(reducer, this.loaders),
73
+ rules: this.app
74
+ .container(rules)
75
+ .getEntries()
76
+ .reduce(reducer, this.rules),
77
+ items: this.app
78
+ .container(items)
79
+ .getEntries()
80
+ .reduce(reducer, this.items),
81
+ });
82
+ yield config(this.app);
83
+ });
84
+ }
85
+ /**
86
+ * Write final configuration to storage directory
87
+ *
88
+ * @public
89
+ * @decorator `@bind`
90
+ */
91
+ writeFinalConfig() {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ try {
94
+ const filePath = this.app.path('storage', this.config.name, 'webpack.config.js');
95
+ this.log('log', {
96
+ message: `writing webpack dump to disk`,
97
+ suffix: filePath,
98
+ });
99
+ yield ensureFile(filePath);
100
+ yield writeFile(filePath, `module.exports = (${prettyFormat(this.config)})`);
101
+ }
102
+ catch (error) {
103
+ this.log('error', `failed to write webpack.config.json`);
104
+ this.log(`error`, error);
27
105
  }
28
- return Object.assign(Object.assign({}, a), { [k]: v });
29
- }, {});
30
- return this.config;
106
+ });
31
107
  }
32
108
  /**
33
- * {@inheritDoc @roots/bud-framework#Build.Interface.bootstrap}
109
+ * Initialize the build rules, loaders, items
34
110
  *
35
111
  * @public
112
+ * @decorator `@bind`
36
113
  */
37
- bootstrap() {
38
- /**
39
- * Reduces components to their normalized form
40
- *
41
- * @returns normalized loaders
42
- *
43
- * @internal
44
- */
45
- function componentReducer(a, [k, v]) {
46
- return Object.assign(Object.assign({}, a), { [k]: v() });
47
- }
48
- // Reduce loaders
49
- this.loaders = this.app
50
- .container(loaders)
51
- .getEntries()
52
- .reduce(componentReducer, {});
53
- // Reduce rules
54
- this.rules = this.app
55
- .container(rules)
56
- .getEntries()
57
- .reduce(componentReducer, {});
58
- // Reduce items
59
- this.items = this.app
60
- .container(items)
61
- .getEntries()
62
- .reduce(componentReducer, {});
63
- config(this.app);
114
+ init() {
115
+ return __awaiter(this, void 0, void 0, function* () { });
64
116
  }
65
117
  }
118
+ __decorate([
119
+ bind
120
+ ], Build.prototype, "registered", null);
121
+ __decorate([
122
+ bind
123
+ ], Build.prototype, "make", null);
124
+ __decorate([
125
+ bind
126
+ ], Build.prototype, "register", null);
127
+ __decorate([
128
+ bind
129
+ ], Build.prototype, "writeFinalConfig", null);
130
+ __decorate([
131
+ bind
132
+ ], Build.prototype, "init", null);
66
133
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Build/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAA;AAG5C,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC;;;;GAIG;AACH,MAAM,OAAO,KACX,SAAQ,OAAO;IADjB;;QASE;;;;WAIG;QACI,SAAI,GAAG,OAAO,CAAA;IA+EvB,CAAC;IAxDQ,IAAI;QACT,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAEnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACxD,IAAI,CAAC,KAAK,SAAS,EAAE;gBACnB,OAAO,CAAC,CAAA;aACT;YAED,uCAAW,CAAC,KAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAC;QACvB,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED;;;;OAIG;IACI,SAAS;QACd;;;;;;WAMG;QACH,SAAS,gBAAgB,CACvB,CAAC,EACD,CAAC,CAAC,EAAE,CAAC,CAAoB;YAEzB,uCAAW,CAAC,KAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAC;QACzB,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG;aACpB,SAAS,CAAC,OAAO,CAAC;aAClB,UAAU,EAAE;aACZ,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAY,CAAA;QAE1C,eAAe;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG;aAClB,SAAS,CAAC,KAAK,CAAC;aAChB,UAAU,EAAE;aACZ,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAU,CAAA;QAExC,eAAe;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG;aAClB,SAAS,CAAC,KAAK,CAAC;aAChB,UAAU,EAAE;aACZ,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAU,CAAA;QAExC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Build/index.ts"],"names":[],"mappings":"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"}
@@ -1,90 +1,119 @@
1
- import Item from '../Item';
1
+ import { Item } from '../Item';
2
2
  /**
3
- * .asset handler factory
3
+ * Items
4
+ *
5
+ * @public
4
6
  */
5
- export const asset = () => new Item({
6
- loader: ({ build }) => build.loaders.file,
7
- options: ({ store }) => ({
8
- name: `assets/${store.isTrue('hash')
9
- ? store.get('hashFormat')
10
- : store.get('fileFormat')}.[ext]`,
7
+ export default {
8
+ /**
9
+ * asset handler factory
10
+ *
11
+ * @public
12
+ */
13
+ asset: () => new Item({
14
+ loader: ({ build }) => build.loaders.file,
15
+ options: app => ({
16
+ name: `assets/${app.store.is('features.hash', true) && app.isProduction
17
+ ? app.store.get('hashFormat')
18
+ : app.store.get('fileFormat')}.[ext]`,
19
+ }),
11
20
  }),
12
- });
13
- /**
14
- * .css handler factory
15
- */
16
- export const css = () => new Item({
17
- loader: ({ build }) => build.loaders.css,
18
- options: ({ hooks }) => ({
19
- sourceMap: hooks.filter('build/devtool') ? true : false,
20
- importLoaders: 1,
21
+ /**
22
+ * .css handler factory
23
+ *
24
+ * @public
25
+ */
26
+ css: () => new Item({
27
+ loader: ({ build }) => build.loaders.css,
28
+ options: ({ hooks }) => ({
29
+ sourceMap: hooks.filter('build.devtool') ? true : false,
30
+ importLoaders: 1,
31
+ }),
21
32
  }),
22
- });
23
- /**
24
- * .csv handler factory
25
- */
26
- export const csv = () => new Item({
27
- loader: ({ build }) => build.loaders.csv,
28
- });
29
- /**
30
- * .html handler factory
31
- */
32
- export const html = () => new Item({
33
- loader: ({ build }) => build.loaders.html,
34
- });
35
- /**
36
- * Factory {@link Item} for style
37
- */
38
- export const style = () => new Item({
39
- loader: ({ build }) => build.loaders.style,
40
- });
41
- /**
42
- * Factory {@link Item} for markdown
43
- */
44
- export const md = () => new Item({
45
- loader: ({ build }) => build.loaders.md,
46
- });
47
- /**
48
- * Factory {@link Item} for minicss-extract-plugin
49
- */
50
- export const minicss = () => new Item({
51
- loader: ({ build }) => build.loaders.minicss,
52
- options: ({ path }) => ({}),
53
- });
54
- /**
55
- * Factory {@link Item} for raw
56
- */
57
- export const raw = () => new Item({
58
- loader: ({ build }) => build.loaders.raw,
59
- });
60
- /**
61
- * Factory {@link Item} for file
62
- */
63
- export const file = () => new Item({
64
- loader: ({ build }) => build.loaders.file,
65
- options: ({ store }) => ({
66
- name: `${store.isTrue('hash')
67
- ? store.get('hashFormat')
68
- : store.get('fileFormat')}.[ext]`,
33
+ /**
34
+ * .csv handler factory
35
+ *
36
+ * @public
37
+ */
38
+ csv: () => new Item({
39
+ loader: ({ build }) => build.loaders.csv,
69
40
  }),
70
- });
71
- /**
72
- * Factory {@link Item} resolve-url
73
- */
74
- export const resolveUrl = () => new Item({
75
- loader: ({ build }) => build.loaders['resolveUrl'],
76
- options: ({ path, hooks }) => {
77
- var _a;
78
- return ({
79
- root: path('src'),
80
- sourceMap: (_a = hooks.filter('build/devtool')) !== null && _a !== void 0 ? _a : false,
81
- });
82
- },
83
- });
84
- /**
85
- * Factory {@link Item} for xml
86
- */
87
- export const xml = () => new Item({
88
- loader: ({ build }) => build.loaders.xml,
89
- });
41
+ /**
42
+ * .html handler factory
43
+ *
44
+ * @public
45
+ */
46
+ html: () => new Item({
47
+ loader: ({ build }) => build.loaders.html,
48
+ }),
49
+ /**
50
+ * Factory {@link Item} for style
51
+ *
52
+ * @public
53
+ */
54
+ style: () => new Item({
55
+ loader: ({ build }) => build.loaders.style,
56
+ }),
57
+ /**
58
+ * Factory {@link Item} for markdown
59
+ *
60
+ * @public
61
+ */
62
+ md: () => new Item({
63
+ loader: ({ build }) => build.loaders.md,
64
+ }),
65
+ /**
66
+ * Factory {@link Item} for minicss-extract-plugin
67
+ *
68
+ * @public
69
+ */
70
+ minicss: () => new Item({
71
+ loader: ({ build }) => build.loaders.minicss,
72
+ options: ({ store }) => ({}),
73
+ }),
74
+ /**
75
+ * Factory {@link Item} for raw
76
+ *
77
+ * @public
78
+ */
79
+ raw: () => new Item({
80
+ loader: ({ build }) => build.loaders.raw,
81
+ }),
82
+ /**
83
+ * Factory {@link Item} for file
84
+ *
85
+ * @public
86
+ */
87
+ file: () => new Item({
88
+ loader: ({ build }) => build.loaders.file,
89
+ options: app => ({
90
+ name: `${app.store.is('features.hash', true) && app.isProduction
91
+ ? app.store.get('hashFormat')
92
+ : app.store.get('fileFormat')}.[ext]`,
93
+ }),
94
+ }),
95
+ /**
96
+ * Factory {@link Item} resolve-url
97
+ *
98
+ * @public
99
+ */
100
+ [`resolve-url`]: () => new Item({
101
+ loader: ({ build }) => build.loaders['resolve-url'],
102
+ options: ({ path, hooks }) => {
103
+ var _a;
104
+ return ({
105
+ root: path('src'),
106
+ sourceMap: (_a = hooks.filter('build.devtool')) !== null && _a !== void 0 ? _a : false,
107
+ });
108
+ },
109
+ }),
110
+ /**
111
+ * Factory {@link Item} for xml
112
+ *
113
+ * @public
114
+ */
115
+ xml: () => new Item({
116
+ loader: ({ build }) => build.loaders.xml,
117
+ }),
118
+ };
90
119
  //# sourceMappingURL=items.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"items.js","sourceRoot":"","sources":["../../../src/Build/items.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"items.js","sourceRoot":"","sources":["../../../src/Build/items.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,55 @@
1
1
  import MiniCssExtractPlugin from 'mini-css-extract-plugin';
2
- import Loader from '../Loader';
3
- /**
4
- * Returns {@link Loader} for `css-loader`
5
- */
6
- export const css = () => new Loader(require.resolve('css-loader'));
7
- /**
8
- * Returns {@link Loader} for `csv-loader`
9
- */
10
- export const csv = () => new Loader(require.resolve('csv-loader'));
11
- /**
12
- * Returns {@link Loader} for `file-loader`
13
- */
14
- export const file = () => new Loader(require.resolve('file-loader'));
15
- /**
16
- * Returns {@link Loader} for `html-loader`
17
- */
18
- export const html = () => new Loader(require.resolve('html-loader'));
19
- /**
20
- * Returns {@link Loader} for `remark-loader`
21
- */
22
- export const md = () => new Loader(require.resolve('remark-loader'));
23
- /**
24
- * Returns {@link Loader} for `mini-css-extract-plugin.loader`
25
- */
26
- export const minicss = () => new Loader(MiniCssExtractPlugin.loader);
27
- /**
28
- * Returns {@link Loader} for `resolve-url-loader`
29
- */
30
- export const resolveUrl = () => new Loader(require.resolve('resolve-url-loader'));
31
- /**
32
- * Returns {@link Loader} for `style-loader`
33
- */
34
- export const style = () => new Loader(require.resolve('style-loader'));
35
- /**
36
- * Returns {@link Loader} for `url-loader`
37
- */
38
- export const url = () => new Loader(require.resolve('url-loader'));
39
- /**
40
- * Returns {@link Loader} for `xml-loader`
41
- */
42
- export const xml = () => new Loader(require.resolve('xml-loader'));
2
+ import { Loader } from '../Loader';
3
+ export default {
4
+ /**
5
+ * Returns {@link Loader} from `css-loader`
6
+ * @public
7
+ */
8
+ css: () => new Loader(require.resolve('css-loader')),
9
+ /**
10
+ * Returns {@link Loader} for `csv-loader`
11
+ * @public
12
+ */
13
+ csv: () => new Loader(require.resolve('csv-loader')),
14
+ /**
15
+ * Returns {@link Loader} for `file-loader`
16
+ * @public
17
+ */
18
+ file: () => new Loader(require.resolve('file-loader')),
19
+ /**
20
+ * Returns {@link Loader} for `html-loader`
21
+ * @public
22
+ */
23
+ html: () => new Loader(require.resolve('html-loader')),
24
+ /**
25
+ * Returns {@link Loader} for `remark-loader`
26
+ * @public
27
+ */
28
+ md: () => new Loader(require.resolve('remark-loader')),
29
+ /**
30
+ * Returns {@link Loader} for `mini-css-extract-plugin.loader`
31
+ * @public
32
+ */
33
+ minicss: () => new Loader(MiniCssExtractPlugin.loader),
34
+ /**
35
+ * Returns {@link Loader} for `resolve-url-loader`
36
+ * @public
37
+ */
38
+ [`resolve-url`]: () => new Loader(require.resolve('resolve-url-loader')),
39
+ /**
40
+ * Returns {@link Loader} for `style-loader`
41
+ * @public
42
+ */
43
+ style: () => new Loader(require.resolve('style-loader')),
44
+ /**
45
+ * Returns {@link Loader} for `url-loader`
46
+ * @public
47
+ */
48
+ url: () => new Loader(require.resolve('url-loader')),
49
+ /**
50
+ * Returns {@link Loader} for `xml-loader`
51
+ * @public
52
+ */
53
+ xml: () => new Loader(require.resolve('xml-loader')),
54
+ };
43
55
  //# sourceMappingURL=loaders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../../src/Build/loaders.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,yBAAyB,CAAA;AAE1D,OAAO,MAAM,MAAM,WAAW,CAAA;AAE9B;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAiB,GAAG,EAAE,CACpC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAiB,GAAG,EAAE,CACpC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAiB,GAAG,EAAE,CACrC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAiB,GAAG,EAAE,CACrC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAiB,GAAG,EAAE,CACnC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAiB,GAAG,EAAE,CACxC,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAiB,GAAG,EAAE,CAC3C,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAA;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAiB,GAAG,EAAE,CACtC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAiB,GAAG,EAAE,CACpC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAiB,GAAG,EAAE,CACpC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../../src/Build/loaders.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAA;AAEhC,eAAe;IACb;;;OAGG;IACH,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD;;;OAGG;IACH,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEpD;;;OAGG;IACH,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEtD;;;OAGG;IACH,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEtD;;;OAGG;IACH,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAEtD;;;OAGG;IACH,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC;IAEtD;;;OAGG;IACH,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CACpB,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnD;;;OAGG;IACH,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAExD;;;OAGG;IACH,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEpD;;;OAGG;IACH,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;CACrD,CAAA"}
@@ -1,37 +1,49 @@
1
1
  import { json5 as json5Parser, toml as tomlParser, yaml as yamlParser, } from '@roots/bud-support';
2
- import Rule from '../Rule';
2
+ import { Rule } from '../Rule';
3
3
  /**
4
4
  * Returns {@link Rule} for `asset/resource`
5
+ *
6
+ * @public
5
7
  */
6
8
  export const image = () => new Rule({
7
9
  test: ({ store }) => store.get('patterns.image'),
8
10
  exclude: ({ store }) => store.get('patterns.modules'),
9
11
  type: 'asset/resource',
10
- generator: {
11
- filename: 'assets/[hash][ext][query]',
12
- },
12
+ generator: app => ({
13
+ filename: `assets/${app.store.is('features.hash', true) && app.isProduction
14
+ ? app.store.get('hashFormat')
15
+ : app.store.get('fileFormat')}[ext]`,
16
+ }),
13
17
  });
14
18
  /**
15
19
  * Returns {@link Rule} for `.woff`/`.otf` handling
20
+ *
21
+ * @public
16
22
  */
17
23
  export const font = () => new Rule({
18
24
  test: ({ store }) => store.get('patterns.font'),
19
25
  exclude: ({ store }) => store.get('patterns.modules'),
20
- use: ({ build }) => [build.items['resolveUrl']],
26
+ use: ({ build }) => [build.items['resolve-url']],
21
27
  });
22
28
  /**
23
29
  * Returns {@link Rule} for `.svg` handling
30
+ *
31
+ * @public
24
32
  */
25
33
  export const svg = () => new Rule({
26
34
  test: ({ store }) => store.get('patterns.svg'),
27
35
  exclude: ({ store }) => store.get('patterns.modules'),
28
36
  type: 'asset/resource',
29
- generator: {
30
- filename: 'assets/[hash][ext][query]',
31
- },
37
+ generator: app => ({
38
+ filename: `assets/${app.store.is('features.hash', true) && app.isProduction
39
+ ? app.store.get('hashFormat')
40
+ : app.store.get('fileFormat')}[ext]`,
41
+ }),
32
42
  });
33
43
  /**
34
44
  * Returns {@link Rule} for `.html` handling
45
+ *
46
+ * @public
35
47
  */
36
48
  export const html = () => new Rule({
37
49
  test: ({ store }) => store.get('patterns.html'),
@@ -39,6 +51,8 @@ export const html = () => new Rule({
39
51
  });
40
52
  /**
41
53
  * Returns {@link Rule} for `.csv` handling
54
+ *
55
+ * @public
42
56
  */
43
57
  export const csv = () => new Rule({
44
58
  test: ({ store }) => store.get('patterns.csv'),
@@ -46,6 +60,8 @@ export const csv = () => new Rule({
46
60
  });
47
61
  /**
48
62
  * Returns {@link Rule} for `.xml` handling
63
+ *
64
+ * @public
49
65
  */
50
66
  export const xml = () => new Rule({
51
67
  test: ({ store }) => store.get('patterns.xml'),
@@ -53,6 +69,8 @@ export const xml = () => new Rule({
53
69
  });
54
70
  /**
55
71
  * Returns {@link Rule} for `.toml` handling
72
+ *
73
+ * @public
56
74
  */
57
75
  export const toml = () => new Rule({
58
76
  test: ({ store }) => store.get('patterns.toml'),
@@ -63,6 +81,8 @@ export const toml = () => new Rule({
63
81
  });
64
82
  /**
65
83
  * Returns {@link Rule} for `.yml` / `.yaml` handling
84
+ *
85
+ * @public
66
86
  */
67
87
  export const yml = () => new Rule({
68
88
  test: ({ store }) => store.get('patterns.yml'),
@@ -73,6 +93,8 @@ export const yml = () => new Rule({
73
93
  });
74
94
  /**
75
95
  * Returns {@link Rule} for `.jsonc` handling
96
+ *
97
+ * @public
76
98
  */
77
99
  export const json5 = () => new Rule({
78
100
  test: ({ store }) => store.get('patterns.json5'),
@@ -83,6 +105,8 @@ export const json5 = () => new Rule({
83
105
  });
84
106
  /**
85
107
  * Returns {@link Rule} for `.css` handling
108
+ *
109
+ * @public
86
110
  */
87
111
  export const css = () => new Rule({
88
112
  test: ({ store }) => store.get('patterns.css'),
@@ -94,10 +118,12 @@ export const css = () => new Rule({
94
118
  });
95
119
  /**
96
120
  * Returns {@link Rule} for `.js` handling
121
+ *
122
+ * @public
97
123
  */
98
124
  export const js = () => new Rule({
99
125
  test: ({ store }) => store.get('patterns.js'),
100
126
  exclude: ({ store }) => store.get('patterns.modules'),
101
- use: [],
127
+ use: () => [],
102
128
  });
103
129
  //# sourceMappingURL=rules.js.map