mod-build 3.6.7 → 3.6.8--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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.6.8
4
+
5
+ - Adding a new `useRelativePathForResources` parameter for special use-cases that need to use a relative path for shared scripts (ie. the improvementcenter pages)
6
+
3
7
  ## 3.6.7
4
8
 
5
9
  - Adding a new `grab-shared-scripts` gulp task grab the most recent version from `mod-analytics`. It will copy this version into the site's `resources/scripts/mod-alytics` folder & then update the src in the `head` shared component. Also updated `cache-bust` to ignore this file on build.
@@ -6,9 +6,11 @@ var tap = require('gulp-tap');
6
6
  var path = require('path');
7
7
 
8
8
  var modAlyticsFileName = '';
9
+ var abandonmentJsFileName = '';
10
+ var footerComponentJsFileName = '';
9
11
 
10
- function replaceModalyticsSrcInHead(gulp, gulpPlugins, siteSettings, siteData) {
11
- if (siteData.siteData && siteData.siteData.isQuotePage === true) {
12
+ function replaceModalyticsSrc(gulp, gulpPlugins, siteSettings, siteData) {
13
+ if (siteData.siteData && siteData.siteData.isQuotePage === true || siteData.siteData && siteData.siteData.useRelativePathForResources === true) {
12
14
  return gulp.src(siteSettings.srcFolder + '/shared-components/head/head.html')
13
15
  .pipe(replace(/".*(modalytics).*"/, '"resources/scripts/mod-alytics/' + modAlyticsFileName + '"'))
14
16
  .pipe(gulp.dest(siteSettings.srcFolder + '/shared-components/head'));
@@ -19,7 +21,31 @@ function replaceModalyticsSrcInHead(gulp, gulpPlugins, siteSettings, siteData) {
19
21
  }
20
22
  }
21
23
 
22
- function copyCurrentModalytics(gulp, gulpPlugins, siteSettings, siteData) {
24
+ function replaceAbandonmentJsSrc(gulp, gulpPlugins, siteSettings, siteData) {
25
+ if (siteData.siteData && siteData.siteData.isQuotePage === true || siteData.siteData && siteData.siteData.useRelativePathForResources === true) {
26
+ return gulp.src(siteSettings.srcFolder + '/templates/abandonment/index.html')
27
+ .pipe(replace(/"(?:(?!"|")[\s\S])+(abandonment\/abandonment.*?)js"/, '"resources/scripts/abandonment/' + abandonmentJsFileName + '"'))
28
+ .pipe(gulp.dest(siteSettings.srcFolder + '/templates/abandonment'));
29
+ } else {
30
+ return gulp.src(siteSettings.srcFolder + '/templates/abandonment/index.html')
31
+ .pipe(replace(/"(?:(?!"|")[\s\S])+(abandonment\/abandonment.*?)js"/, '"/resources/scripts/abandonment/' + abandonmentJsFileName + '"'))
32
+ .pipe(gulp.dest(siteSettings.srcFolder + '/templates/abandonment'));
33
+ }
34
+ }
35
+
36
+ function replaceFooterComponentJsSrc(gulp, gulpPlugins, siteSettings, siteData) {
37
+ if (siteData.siteData && siteData.siteData.isQuotePage === true || siteData.siteData && siteData.siteData.useRelativePathForResources === true) {
38
+ return gulp.src(siteSettings.srcFolder + '/shared-components/foot-assets/foot-assets.html')
39
+ .pipe(replace(/"(?:(?!"|")[\s\S])+(abandonment\/abandonment.*?)js"/, '"resources/scripts/footer/' + footerComponentJsFileName + '"'))
40
+ .pipe(gulp.dest(siteSettings.srcFolder + '/shared-components/foot-assets'));
41
+ } else {
42
+ return gulp.src(siteSettings.srcFolder + '/shared-components/foot-assets/foot-assets.html')
43
+ .pipe(replace(/"(?:(?!"|")[\s\S])+(abandonment\/abandonment.*?)js"/, '"/resources/scripts/footer/' + footerComponentJsFileName + '"'))
44
+ .pipe(gulp.dest(siteSettings.srcFolder + '/shared-components/foot-assets'));
45
+ }
46
+ }
47
+
48
+ function copyModalytics(gulp, gulpPlugins, siteSettings, siteData) {
23
49
  return new Promise(resolve => {
24
50
  request(`https://${siteSettings.nodeEnv}/quote/resources/mod-alytics/modalytics.min.js`)
25
51
  .on('response', resp => {
@@ -45,7 +71,7 @@ function copyCurrentModalytics(gulp, gulpPlugins, siteSettings, siteData) {
45
71
  if (resp.statusCode !== 200) {
46
72
  throw new Error(`${resp.statusCode} Error while fetching modalytics.min.js.map`);
47
73
  } else {
48
- replaceModalyticsSrcInHead(gulp, gulpPlugins, siteSettings, siteData);
74
+ replaceModalyticsSrc(gulp, gulpPlugins, siteSettings, siteData);
49
75
  }
50
76
  })
51
77
  .pipe(source('modalytics.min.js.map'))
@@ -54,6 +80,79 @@ function copyCurrentModalytics(gulp, gulpPlugins, siteSettings, siteData) {
54
80
  });
55
81
  });
56
82
  }
83
+
84
+ function copyAbandonmentJs(gulp, gulpPlugins, siteSettings, siteData) {
85
+ return new Promise(resolve => {
86
+ request(`https://${siteSettings.nodeEnv}/quote/resources/shared-resources/scripts/abandonment/abandonment.min.js`)
87
+ .on('response', resp => {
88
+ if (resp.statusCode !== 200) {
89
+ throw new Error(`${resp.statusCode} Error while fetching abandonment.min.js`);
90
+ }
91
+ })
92
+ .pipe(source('abandonment.min.js'))
93
+ .pipe(hash({
94
+ hashLength: 20,
95
+ template: 'abandonment-<%= hash %>.min.js'
96
+ }))
97
+ .pipe(tap(function(file, t){
98
+ abandonmentJsFileName = path.basename(file.path);
99
+ }))
100
+ .pipe(gulp.dest(`${siteSettings.srcFolder}/resources/scripts/abandonment`))
101
+ .on('finish', resolve);
102
+ })
103
+ .then(() => {
104
+ return new Promise(resolve => {
105
+ request(`https://${siteSettings.nodeEnv}/quote/resources/shared-resources/scripts/abandonment/abandonment.min.js.map`)
106
+ .on('response', resp => {
107
+ if (resp.statusCode !== 200) {
108
+ throw new Error(`${resp.statusCode} Error while fetching abandonment.min.js.map`);
109
+ } else {
110
+ replaceAbandonmentJsSrc(gulp, gulpPlugins, siteSettings, siteData);
111
+ }
112
+ })
113
+ .pipe(source('abandonment.min.js.map'))
114
+ .pipe(gulp.dest(`${siteSettings.srcFolder}/resources/scripts/abandonment`))
115
+ .on('finish', resolve);
116
+ });
117
+ });
118
+ }
119
+
120
+ function copyFooterComponentJs(gulp, gulpPlugins, siteSettings, siteData) {
121
+ return new Promise(resolve => {
122
+ request(`https://${siteSettings.nodeEnv}/quote/resources/shared-resources/scripts/footer/footer-component.min.js`)
123
+ .on('response', resp => {
124
+ if (resp.statusCode !== 200) {
125
+ throw new Error(`${resp.statusCode} Error while fetching footer-component.min.js`);
126
+ }
127
+ })
128
+ .pipe(source('footer-component.min.js'))
129
+ .pipe(hash({
130
+ hashLength: 20,
131
+ template: 'footer-component-<%= hash %>.min.js'
132
+ }))
133
+ .pipe(tap(function(file, t){
134
+ footerComponentJsFileName = path.basename(file.path);
135
+ }))
136
+ .pipe(gulp.dest(`${siteSettings.srcFolder}/resources/scripts/footer`))
137
+ .on('finish', resolve);
138
+ })
139
+ .then(() => {
140
+ return new Promise(resolve => {
141
+ request(`https://${siteSettings.nodeEnv}/quote/resources/shared-resources/scripts/footer/footer-component.min.js.map`)
142
+ .on('response', resp => {
143
+ if (resp.statusCode !== 200) {
144
+ throw new Error(`${resp.statusCode} Error while fetching footer-component.min.js.map`);
145
+ } else {
146
+ replaceFooterComponentJsSrc(gulp, gulpPlugins, siteSettings, siteData);
147
+ }
148
+ })
149
+ .pipe(source('footer-component.min.js.map'))
150
+ .pipe(gulp.dest(`${siteSettings.srcFolder}/resources/scripts/footer`))
151
+ .on('finish', resolve);
152
+ });
153
+ });
154
+ }
155
+
57
156
  module.exports = function(gulp, gulpPlugins, siteSettings, siteData) {
58
157
  return function() {
59
158
  const { nodeEnv } = siteSettings;
@@ -61,6 +160,6 @@ module.exports = function(gulp, gulpPlugins, siteSettings, siteData) {
61
160
  throw new Error('Missing environment variables. Did you start with gulp instead of npm run...?');
62
161
  }
63
162
 
64
- return copyCurrentModalytics(gulp, gulpPlugins, siteSettings, siteData);
163
+ return copyModalytics(gulp, gulpPlugins, siteSettings, siteData) && copyAbandonmentJs(gulp, gulpPlugins, siteSettings, siteData) && copyFooterComponentJs(gulp, gulpPlugins, siteSettings, siteData);
65
164
  };
66
165
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mod-build",
3
- "version": "3.6.7",
3
+ "version": "3.6.8--beta.1",
4
4
  "description": "Share components for S3 sites.",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"