mod-build 3.6.19 → 3.6.21

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/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## 3.6.15 & 3.6.16 & 3.6.17 & 3.6.18
3
+ ## 3.6.21
4
4
 
5
5
  - `grab-shared-scripts` task code refactoring changes.
6
6
 
@@ -4,249 +4,223 @@ var replace = require('gulp-replace');
4
4
  var hash = require('gulp-hash');
5
5
  var tap = require('gulp-tap');
6
6
  var path = require('path');
7
-
8
7
  const fileNames = {
9
- modAlyticsFileName: '',
10
- modUtilsFileName: '',
11
- abandonmentJsFileName: '',
12
- footerComponentJsFileName: '',
13
- modFooterStylesFileName: '',
14
- qsFooterStylesFileName: '',
15
- modFormFileName: '',
16
- qsFormFileName: ''
8
+ modAlyticsFileName: '',
9
+ modUtilsFileName: '',
10
+ abandonmentJsFileName: '',
11
+ footerComponentJsFileName: '',
12
+ modFooterStylesFileName: '',
13
+ qsFooterStylesFileName: '',
14
+ modFormFileName: '',
15
+ qsFormFileName: ''
17
16
  };
18
-
19
17
  var isQuotePageOrUseRelativePath = false;
20
18
  var resourceURL = '';
21
-
22
19
  function replaceModalyticsSrc(gulp, gulpPlugins, siteSettings, siteData) {
23
- const resourcePath = isQuotePageOrUseRelativePath ? '{{#if this.src}}{{this.src}}{{/if}}resources/scripts/mod-alytics/' : '/resources/scripts/mod-alytics/';
24
-
25
- return gulp.src(siteSettings.srcFolder + '/shared-components/head/head.html')
26
- .pipe(replace(/".*(modalytics).*"/, resourcePath + fileNames.modAlyticsFileName))
27
- .pipe(gulp.dest(siteSettings.srcFolder + '/shared-components/head'));
20
+ const resourcePath = isQuotePageOrUseRelativePath ? '{{#if this.src}}{{this.src}}{{/if}}resources/scripts/mod-alytics/' : '/resources/scripts/mod-alytics/';
21
+ return gulp.src(siteSettings.srcFolder + '/shared-components/head/head.html')
22
+ .pipe(replace(/".*(modalytics).*"/, resourcePath + fileNames.modAlyticsFileName))
23
+ .pipe(gulp.dest(siteSettings.srcFolder + '/shared-components/head'));
28
24
  }
29
-
30
25
  function replaceFootAssetScripts(gulp, gulpPlugins, siteSettings, siteData) {
31
- const resourcePath = isQuotePageOrUseRelativePath ? '{{#if this.nodeModulesPath}}{{this.nodeModulesPath}}{{/if}}resources/scripts' : '/resources/scripts';
32
-
33
- return gulp.src(siteSettings.srcFolder + '/shared-components/foot-assets/foot-assets.html')
34
- .pipe(replace(/"(?:(?!"|js")[\s\S])+(modutils|mod-utils.*?)js"/, resourcePath + '/mod-utils/' + fileNames.modUtilsFileName))
35
- .pipe(replace(/"(?:(?!"|")[\s\S])+(footer\/footer-component.*?)js"/, resourcePath + '/footer/' + fileNames.footerComponentJsFileName))
36
- .pipe(replace(/"(?:(?!"|")[\s\S])+(mod-form\/mod-form.*?)js"/, resourcePath + '/mod-form/' + fileNames.modFormFileName))
37
- .pipe(replace(/"(?:(?!"|")[\s\S])+(qs-form.*?)js"/, resourcePath + '/mod-form/' + fileNames.qsFormFileName))
38
- .pipe(gulp.dest(siteSettings.srcFolder + '/shared-components/foot-assets'));
26
+ const resourcePath = isQuotePageOrUseRelativePath ? '{{#if this.nodeModulesPath}}{{this.nodeModulesPath}}{{/if}}resources/scripts' : '/resources/scripts';
27
+ return gulp.src(siteSettings.srcFolder + '/shared-components/foot-assets/foot-assets.html')
28
+ .pipe(replace(/"(?:(?!"|js")[\s\S])+(modutils|mod-utils.*?)js"/, resourcePath + '/mod-utils/' + fileNames.modUtilsFileName))
29
+ .pipe(replace(/"(?:(?!"|")[\s\S])+(footer\/footer-component.*?)js"/, resourcePath + '/footer/' + fileNames.footerComponentJsFileName))
30
+ .pipe(replace(/"(?:(?!"|")[\s\S])+(mod-form\/mod-form.*?)js"/, resourcePath + '/mod-form/' + fileNames.modFormFileName))
31
+ .pipe(replace(/"(?:(?!"|")[\s\S])+(qs-form.*?)js"/, resourcePath + '/mod-form/' + fileNames.qsFormFileName))
32
+ .pipe(gulp.dest(siteSettings.srcFolder + '/shared-components/foot-assets'));
39
33
  }
40
-
41
34
  function replaceAbandonmentJsSrc(gulp, gulpPlugins, siteSettings, siteData) {
42
- const resourcePath = isQuotePageOrUseRelativePath ? 'resources/scripts/abandonment/' : '/resources/scripts/abandonment/';
43
-
44
- return gulp.src(siteSettings.srcFolder + '/templates/abandonment/*.html')
45
- .pipe(replace(/"(?:(?!"|")[\s\S])+(abandonment\/abandonment.*?)js"/, resourcePath + fileNames.abandonmentJsFileName))
46
- .pipe(gulp.dest(siteSettings.srcFolder + '/templates/abandonment'));
35
+ const resourcePath = isQuotePageOrUseRelativePath ? 'resources/scripts/abandonment/' : '/resources/scripts/abandonment/';
36
+ return gulp.src(siteSettings.srcFolder + '/templates/abandonment/*.html')
37
+ .pipe(replace(/"(?:(?!"|")[\s\S])+(abandonment\/abandonment.*?)js"/, resourcePath + fileNames.abandonmentJsFileName))
38
+ .pipe(gulp.dest(siteSettings.srcFolder + '/templates/abandonment'));
47
39
  }
48
-
49
40
  function replaceFooterStylesReference(gulp, gulpPlugins, siteSettings, siteData) {
50
- if (siteData.siteData && siteData.siteData.useRelativePathForResources === true) {
51
- return gulp.src(siteSettings.srcFolder + '/resources/scripts/footer/' + fileNames.footerComponentJsFileName)
52
- .pipe(replace(/concat\((?:(?!concat\(|\))[\s\S])+(components\/footer\/mod.*?)\)/, 'concat("resources/styles/components/footer/' + fileNames.modFooterStylesFileName + '")'))
53
- .pipe(replace(/concat\((?:(?!concat\(|\))[\s\S])+(components\/footer\/qs.*?)\)/, 'concat("resources/styles/components/footer/' + fileNames.qsFooterStylesFileName + '")'))
54
- .pipe(gulp.dest(siteSettings.srcFolder + '/resources/scripts/footer'))
55
- } else if (!siteData.siteData || siteData.siteData && !siteData.siteData.isQuotePage) {
56
- return gulp.src(siteSettings.srcFolder + '/resources/scripts/footer/' + fileNames.footerComponentJsFileName)
57
- .pipe(replace(/concat\((?:(?!concat\(|\))[\s\S])+(components\/footer\/mod.*?)\)/, 'concat("/resources/styles/components/footer/' + fileNames.modFooterStylesFileName + '")'))
58
- .pipe(replace(/concat\((?:(?!concat\(|\))[\s\S])+(components\/footer\/qs.*?)\)/, 'concat("/resources/styles/components/footer/' + fileNames.qsFooterStylesFileName + '")'))
59
- .pipe(gulp.dest(siteSettings.srcFolder + '/resources/scripts/footer'))
60
- }
41
+ if (siteData.siteData && siteData.siteData.useRelativePathForResources === true) {
42
+ return gulp.src(siteSettings.srcFolder + '/resources/scripts/footer/' + fileNames.footerComponentJsFileName)
43
+ .pipe(replace(/concat\((?:(?!concat\(|\))[\s\S])+(components\/footer\/mod.*?)\)/, 'concat("resources/styles/components/footer/' + fileNames.modFooterStylesFileName + '")'))
44
+ .pipe(replace(/concat\((?:(?!concat\(|\))[\s\S])+(components\/footer\/qs.*?)\)/, 'concat("resources/styles/components/footer/' + fileNames.qsFooterStylesFileName + '")'))
45
+ .pipe(gulp.dest(siteSettings.srcFolder + '/resources/scripts/footer'))
46
+ } else if (!siteData.siteData || siteData.siteData && !siteData.siteData.isQuotePage) {
47
+ return gulp.src(siteSettings.srcFolder + '/resources/scripts/footer/' + fileNames.footerComponentJsFileName)
48
+ .pipe(replace(/concat\((?:(?!concat\(|\))[\s\S])+(components\/footer\/mod.*?)\)/, 'concat("/resources/styles/components/footer/' + fileNames.modFooterStylesFileName + '")'))
49
+ .pipe(replace(/concat\((?:(?!concat\(|\))[\s\S])+(components\/footer\/qs.*?)\)/, 'concat("/resources/styles/components/footer/' + fileNames.qsFooterStylesFileName + '")'))
50
+ .pipe(gulp.dest(siteSettings.srcFolder + '/resources/scripts/footer'))
51
+ }
61
52
  }
62
-
63
53
  function replaceFooterStylesReferenceInMap(gulp, gulpPlugins, siteSettings, siteData) {
64
- if (siteData.siteData && siteData.siteData.useRelativePathForResources === true) {
65
- return gulp.src(siteSettings.srcFolder + '/resources/scripts/footer/footer-component.min.js.map')
66
- .pipe(replace(/\`(?:(?!\`|\`)[\s\S])+(components\/footer\/mod.*?)\`/, '`resources/styles/components/footer/' + fileNames.modFooterStylesFileName + '`'))
67
- .pipe(replace(/\`(?:(?!\`|\`)[\s\S])+(components\/footer\/mod.*?)\`/, '`resources/styles/components/footer/' + fileNames.qsFooterStylesFileName + '`'))
68
- .pipe(gulp.dest(siteSettings.srcFolder + '/resources/scripts/footer'));
69
- } else if (!siteData.siteData || siteData.siteData && !siteData.siteData.isQuotePage) {
70
- return gulp.src(siteSettings.srcFolder + '/resources/scripts/footer/footer-component.min.js.map')
71
- .pipe(replace(/\`(?:(?!\`|\`)[\s\S])+(components\/footer\/mod.*?)\`/, '`/resources/styles/components/footer/' + fileNames.modFooterStylesFileName + '`'))
72
- .pipe(replace(/\`(?:(?!\`|\`)[\s\S])+(components\/footer\/mod.*?)\`/, '`/resources/styles/components/footer/' + fileNames.qsFooterStylesFileName + '`'))
73
- .pipe(gulp.dest(siteSettings.srcFolder + '/resources/scripts/footer'));
74
- }
54
+ if (siteData.siteData && siteData.siteData.useRelativePathForResources === true) {
55
+ return gulp.src(siteSettings.srcFolder + '/resources/scripts/footer/footer-component.min.js.map')
56
+ .pipe(replace(/\`(?:(?!\`|\`)[\s\S])+(components\/footer\/mod.*?)\`/, '`resources/styles/components/footer/' + fileNames.modFooterStylesFileName + '`'))
57
+ .pipe(replace(/\`(?:(?!\`|\`)[\s\S])+(components\/footer\/mod.*?)\`/, '`resources/styles/components/footer/' + fileNames.qsFooterStylesFileName + '`'))
58
+ .pipe(gulp.dest(siteSettings.srcFolder + '/resources/scripts/footer'));
59
+ } else if (!siteData.siteData || siteData.siteData && !siteData.siteData.isQuotePage) {
60
+ return gulp.src(siteSettings.srcFolder + '/resources/scripts/footer/footer-component.min.js.map')
61
+ .pipe(replace(/\`(?:(?!\`|\`)[\s\S])+(components\/footer\/mod.*?)\`/, '`/resources/styles/components/footer/' + fileNames.modFooterStylesFileName + '`'))
62
+ .pipe(replace(/\`(?:(?!\`|\`)[\s\S])+(components\/footer\/mod.*?)\`/, '`/resources/styles/components/footer/' + fileNames.qsFooterStylesFileName + '`'))
63
+ .pipe(gulp.dest(siteSettings.srcFolder + '/resources/scripts/footer'));
64
+ }
75
65
  }
76
-
77
66
  function getFileFromURL(url) {
78
- return url.split('/').pop();
67
+ return url.split('/').pop();
79
68
  }
80
-
81
- function getResource(url, config = {}) {
82
- if (Object.keys(config).length === 0) {
83
- return false;
84
- }
85
-
86
- const file = getFileFromURL(url);
87
-
88
- return new Promise(resolve => {
89
- request(`${resourceURL}/${url}`)
90
- .on('response', resp => {
91
- if (resp.statusCode !== 200) {
92
- throw new Error(`${resp.statusCode} Error while fetching ${file}`);
93
- }
94
- })
95
- .pipe(source(`${file}`))
96
- .pipe(hash({
97
- hashLength: 20,
98
- template: file.replace(/^([^.]*)\.(.*)$/, '$1-<%= hash %>.$2')
99
- }))
100
- .pipe(tap(function(file, t){
101
- fileNames[config.fileName] = path.basename(file.path);
102
- }))
103
- .pipe(config.gulp.dest(`${config.siteSettings.srcFolder}/resources/${config.dest}`))
104
- .on('finish', resolve);
105
- })
106
-
107
- }
108
-
109
- function getResourceMap(url, config = {}, fn) {
110
- if (Object.keys(config).length === 0) {
111
- return false;
112
- }
113
-
114
- const file = getFileFromURL(url);
115
-
116
- return new Promise(resolve => {
117
- request(`${resourceURL}/${url}`)
118
- .on('response', resp => {
119
- if (resp.statusCode !== 200) {
120
- throw new Error(`${resp.statusCode} Error while fetching ${file}`);
121
- } else {
122
- if (typeof fn === 'function') {
123
- fn.call(null, config.gulp, config.gulpSettings, config.siteSettings, config.siteData);
124
- }
125
- }
126
- })
127
- .pipe(source(`${file}`))
128
- .pipe(config.gulp.dest(`${config.siteSettings.srcFolder}/resources/${config.dest}`))
129
- .on('finish', resolve);
130
- });
131
-
69
+ function getResource(url, config = {}, fn, fnArray) {
70
+ if (Object.keys(config).length === 0) {
71
+ return false;
72
+ }
73
+
74
+ return new Promise(resolve => {
75
+ const file = getFileFromURL(url);
76
+ request(`${resourceURL}/${url}`)
77
+ .on('response', resp => {
78
+ if (resp.statusCode !== 200) {
79
+ throw new Error(`${resp.statusCode} Error while fetching ${file}`);
80
+ }
81
+ })
82
+ .pipe(source(`${file}`))
83
+ .pipe(hash({
84
+ hashLength: 20,
85
+ template: file.replace(/^([^.]*)\.(.*)$/, '$1-<%= hash %>.$2')
86
+ }))
87
+ .pipe(tap(function(file, t) {
88
+ fileNames[config.fileName] = path.basename(file.path);
89
+ }))
90
+ .pipe(config.gulp.dest(`${config.siteSettings.srcFolder}/resources/${config.dest}`))
91
+ .on('finish', resolve);
92
+ })
93
+ .then(() => {
94
+ if (!config.mapUrl) { return false };
95
+ const file = getFileFromURL(config.mapUrl);
96
+ return new Promise((resolve) => {
97
+ request(`${resourceURL}/${config.mapUrl}`)
98
+ .on('response', (resp) => {
99
+ if (resp.statusCode !== 200) {
100
+ throw new Error(`${resp.statusCode} Error while fetching ${file}`);
101
+ } else {
102
+ if (typeof fn === 'function') {
103
+ fn.call(null, config.gulp, config.gulpSettings, config.siteSettings, config.siteData);
104
+ }
105
+ }
106
+ })
107
+ .pipe(source(`${file}`))
108
+ .pipe(config.gulp.dest(`${config.siteSettings.srcFolder}/resources/${config.dest}`))
109
+ .on('finish', resolve);
110
+ });
111
+ })
112
+ .then(() => {
113
+ if (fnArray && fnArray.length) {
114
+ fnArray.map(function(fn) {
115
+ if (typeof fn === 'function') {
116
+ fn.call(null, config.gulp, config.gulpSettings, config.siteSettings, config.siteData)
117
+ }
118
+ });
119
+ }
120
+ });
132
121
  }
133
-
122
+ const TASKS = {
123
+ copyModalytics: {
124
+ url: `mod-alytics/modalytics.min.js`,
125
+ config: {
126
+ fileName: 'modAlyticsFileName',
127
+ dest: 'scripts/mod-alytics',
128
+ mapUrl: `mod-alytics/modalytics.min.js.map`,
129
+ },
130
+ srcReplaceFn: replaceModalyticsSrc,
131
+ additionalSrcReplaceFns: []
132
+ },
133
+ copyModutils: {
134
+ url: `mod-utils/modutils.min.js`,
135
+ config: {
136
+ fileName: 'modUtilsFileName',
137
+ dest: 'scripts/mod-utils',
138
+ mapUrl: `mod-utils/modutils.min.js.map`,
139
+ },
140
+ srcReplaceFn: null,
141
+ additionalSrcReplaceFns: []
142
+ },
143
+ copyAbandonmentJs: {
144
+ url: `shared-resources/scripts/abandonment/abandonment.min.js`,
145
+ config: {
146
+ fileName: 'abandonmentJsFileName',
147
+ dest: 'scripts/abandonment',
148
+ mapUrl: `shared-resources/scripts/abandonment/abandonment.min.js.map`,
149
+ },
150
+ srcReplaceFn: replaceAbandonmentJsSrc,
151
+ additionalSrcReplaceFns: []
152
+ },
153
+ copyFooterComponentJs: {
154
+ url: `shared-resources/scripts/footer/footer-component.min.js`,
155
+ config: {
156
+ fileName: 'footerComponentJsFileName',
157
+ dest: 'scripts/footer',
158
+ mapUrl: `shared-resources/scripts/footer/footer-component.min.js.map`,
159
+ },
160
+ srcReplaceFn: null,
161
+ additionalSrcReplaceFns: []
162
+ },
163
+ copyModForm: {
164
+ url: `mod-form/mod-form.min.js`,
165
+ config: {
166
+ fileName: 'modFormFileName',
167
+ dest: 'scripts/mod-form',
168
+ mapUrl: `mod-form/mod-form.min.js.map`,
169
+ },
170
+ srcReplaceFn: null,
171
+ additionalSrcReplaceFns: []
172
+ },
173
+ copyQsForm: {
174
+ url: `mod-form/qs-form.min.js`,
175
+ config: {
176
+ fileName: 'qsFormFileName',
177
+ dest: 'scripts/mod-form',
178
+ mapUrl: `mod-form/qs-form.min.js.map`,
179
+ },
180
+ srcReplaceFn: replaceFootAssetScripts,
181
+ additionalSrcReplaceFns: []
182
+ },
183
+ copyModFooterComponentStyles: {
184
+ url: `shared-resources/styles/components/footer/mod-footer.min.css`,
185
+ config: {
186
+ fileName: 'modFooterStylesFileName',
187
+ dest: 'styles/components/footer',
188
+ mapUrl: null,
189
+ },
190
+ srcReplaceFn: null,
191
+ additionalSrcReplaceFns: [replaceFooterStylesReference, replaceFooterStylesReferenceInMap]
192
+ },
193
+ copyQsFooterComponentStyles: {
194
+ url: `shared-resources/styles/components/footer/qs-footer.min.css`,
195
+ config: {
196
+ fileName: 'qsFooterStylesFileName',
197
+ dest: 'styles/components/footer',
198
+ mapUrl: null,
199
+ },
200
+ srcReplaceFn: null,
201
+ additionalSrcReplaceFns: [replaceFooterStylesReference, replaceFooterStylesReferenceInMap]
202
+ }
203
+ };
134
204
  module.exports = function(gulp, gulpPlugins, siteSettings, siteData) {
135
- const isQuotePage = siteData?.siteData?.isQuotePage || siteData?.isQuotePage;
136
- const useRelativePathForResources = siteData?.siteData?.useRelativePathForResources || siteData?.useRelativePathForResources;
137
- isQuotePageOrUseRelativePath = isQuotePage === true || useRelativePathForResources === true;
138
- resourceURL = `https://${siteSettings.nodeEnv}/quote/resources`;
139
-
140
- const TASKS = {
141
- copyModalytics: {
142
- url: `mod-alytics/modalytics.min.js`,
143
- mapUrl: `mod-alytics/modalytics.min.js.map`,
144
- config: {
145
- fileName: 'modAlyticsFileName',
146
- dest: 'scripts/mod-alytics'
147
- },
148
- srcReplaceFn: replaceModalyticsSrc,
149
- additionalSrcReplaceFns: []
150
- },
151
- copyModutils: {
152
- url: `mod-utils/modutils.min.js`,
153
- mapUrl: `mod-utils/modutils.min.js.map`,
154
- config: {
155
- fileName: 'modUtilsFileName',
156
- dest: 'scripts/mod-utils'
157
- },
158
- srcReplaceFn: null,
159
- additionalSrcReplaceFns: []
160
- },
161
- copyAbandonmentJs: {
162
- url: `shared-resources/scripts/abandonment/abandonment.min.js`,
163
- mapUrl: `shared-resources/scripts/abandonment/abandonment.min.js.map`,
164
- config: {
165
- fileName: 'abandonmentJsFileName',
166
- dest: 'scripts/abandonment'
167
- },
168
- srcReplaceFn: replaceAbandonmentJsSrc,
169
- additionalSrcReplaceFns: []
170
- },
171
- copyFooterComponentJs: {
172
- url: `shared-resources/scripts/footer/footer-component.min.js`,
173
- mapUrl: `shared-resources/scripts/footer/footer-component.min.js.map`,
174
- config: {
175
- fileName: 'footerComponentJsFileName',
176
- dest: 'scripts/footer'
177
- },
178
- srcReplaceFn: null,
179
- additionalSrcReplaceFns: []
180
- },
181
- copyModForm: {
182
- url: `mod-form/mod-form.min.js`,
183
- mapUrl: `mod-form/mod-form.min.js.map`,
184
- config: {
185
- fileName: 'modFormFileName',
186
- dest: 'scripts/mod-form'
187
- },
188
- srcReplaceFn: null,
189
- additionalSrcReplaceFns: []
190
- },
191
- copyQsForm: {
192
- url: `mod-form/qs-form.min.js`,
193
- mapUrl: `mod-form/qs-form.min.js.map`,
194
- config: {
195
- fileName: 'qsFormFileName',
196
- dest: 'scripts/mod-form'
197
- },
198
- srcReplaceFn: replaceFootAssetScripts,
199
- additionalSrcReplaceFns: []
200
- },
201
- copyModFooterComponentStyles: {
202
- url: `shared-resources/styles/components/footer/mod-footer.min.css`,
203
- mapUrl: null,
204
- config: {
205
- fileName: 'modFooterStylesFileName',
206
- dest: 'styles/components/footer'
207
- },
208
- srcReplaceFn: null,
209
- additionalSrcReplaceFns: [replaceFooterStylesReference, replaceFooterStylesReferenceInMap]
210
- },
211
- copyQsFooterComponentStyles: {
212
- url: `shared-resources/styles/components/footer/qs-footer.min.css`,
213
- mapUrl: null,
214
- config: {
215
- fileName: 'qsFooterStylesFileName',
216
- dest: 'styles/components/footer'
217
- },
218
- srcReplaceFn: null,
219
- additionalSrcReplaceFns: [replaceFooterStylesReference, replaceFooterStylesReferenceInMap]
220
- }
221
- };
222
-
223
- return function() {
224
- const { nodeEnv } = siteSettings;
225
- if (!nodeEnv) {
226
- throw new Error('Missing environment variables. Did you start with gulp instead of npm run...?');
227
- }
228
-
229
- return (function() {
230
- const tasks = Object.values(TASKS)
231
- if (tasks.length) {
232
- tasks.map(async function(task) {
233
- Object.assign(task.config, { gulp, gulpPlugins, siteSettings, siteData });
234
- return await getResource(task.url, task.config)
235
- .then(async () => {
236
- if (!task.mapUrl) { return false };
237
- return await getResourceMap(task.mapUrl, task.config, task.srcReplaceFn);
238
- })
239
- .then(() => {
240
- if ('additionalSrcReplaceFns' in task && task.additionalSrcReplaceFns.length) {
241
- task.additionalSrcReplaceFns.map(function(fn) {
242
- if (typeof fn === 'function') {
243
- fn.call(null, gulp, gulpPlugins, siteSettings, siteData)
244
- }
245
- });
246
- }
247
- });
248
- });
249
- }
250
- }());
251
- };
205
+ const isQuotePage = siteData.siteData && siteData.siteData.isQuotePage || siteData && siteData.isQuotePage;
206
+ const useRelativePathForResources = siteData.siteData && siteData.siteData.useRelativePathForResources || siteData && siteData.useRelativePathForResources;
207
+ isQuotePageOrUseRelativePath = isQuotePage === true || useRelativePathForResources === true;
208
+ resourceURL = `https://${siteSettings.nodeEnv}/quote/resources`;
209
+ return function() {
210
+ const { nodeEnv } = siteSettings;
211
+ if (!nodeEnv) {
212
+ throw new Error('Missing environment variables. Did you start with gulp instead of npm run...?');
213
+ }
214
+ return (function() {
215
+ const tasks = Object.values(TASKS)
216
+ if (tasks.length) {
217
+ var getAllResources = tasks.map(function(task) {
218
+ Object.assign(task.config, { gulp, gulpPlugins, siteSettings, siteData });
219
+ return getResource(task.url, task.config, task.srcReplaceFn, task.additionalSrcReplaceFns)
220
+ });
221
+ }
222
+
223
+ return Promise.all(getAllResources);
224
+ }());
225
+ };
252
226
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mod-build",
3
- "version": "3.6.19",
3
+ "version": "3.6.21",
4
4
  "description": "Share components for S3 sites.",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"