Skip to content

Commit 9591dd9

Browse files
committed
Extract code into functions for clarity
1 parent aa3ea7b commit 9591dd9

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

src/rev-web-assets.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ const revWebAssets = {
100100
// assets manifest detail.
101101
const hashLen = 8;
102102
const brokenWindows = /$\r\n/gm;
103-
const contents = fs.readFileSync(detail.origin).toString().replace(brokenWindows, '\n');
103+
const normalize = (buffer: Buffer) => buffer.toString().replace(brokenWindows, '\n');
104+
const contents = normalize(fs.readFileSync(detail.origin));
104105
const hash = crypto.createHash('md5').update(contents).digest('hex');
105106
detail.bytes = contents.length;
106107
detail.hash = hash.substring(0, hashLen);
@@ -152,11 +153,12 @@ const revWebAssets = {
152153
const metaPattern = /(<meta\s.*content=['"]?)([^"'>\s]*)(['"]?[^<]*>)/ig
153154
const process = (detail: ManifestDetail) => {
154155
const content = fs.readFileSync(detail.origin, 'utf-8');
156+
const calcNext = () => revWebAssets.hashAssetPath(manifest, detail, settings);
155157
const hashedContent = content
156-
.replace(hrefPattern, revWebAssets.hashAssetPath(manifest, detail, settings))
157-
.replace(srcPattern, revWebAssets.hashAssetPath(manifest, detail, settings))
158-
.replace(metaPattern, revWebAssets.hashAssetPath(manifest, detail, settings));
159-
detail.destPath = detail.destFolder + '/' + detail.filename;
158+
.replace(hrefPattern, calcNext())
159+
.replace(srcPattern, calcNext())
160+
.replace(metaPattern, calcNext());
161+
detail.destPath = `${detail.destFolder}/${detail.filename}`;
160162
fs.mkdirSync(detail.destFolder, { recursive: true });
161163
fs.writeFileSync(detail.destPath, hashedContent);
162164
};
@@ -167,10 +169,10 @@ const revWebAssets = {
167169
// url(../background.jpg)
168170
const urlPattern = /(url\(["']?)([^)('"]*)(["']?\))/ig
169171
const process = (detail: ManifestDetail) => {
170-
const content = fs.readFileSync(detail.origin, 'utf-8');
171-
const hashedContent = content
172-
.replace(urlPattern, revWebAssets.hashAssetPath(manifest, detail, settings));
173-
detail.destPath = detail.destFolder + '/' + (detail.hashedFilename ?? detail.filename);
172+
const content = fs.readFileSync(detail.origin, 'utf-8');
173+
const calcNext = () => revWebAssets.hashAssetPath(manifest, detail, settings);
174+
const hashedContent = content.replace(urlPattern, calcNext());
175+
detail.destPath = `${detail.destFolder}/${detail.hashedFilename ?? detail.filename}`;
174176
fs.mkdirSync(detail.destFolder, { recursive: true });
175177
fs.writeFileSync(detail.destPath, hashedContent);
176178
};
@@ -179,7 +181,7 @@ const revWebAssets = {
179181

180182
copyAssets(manifest: ManifestDetail[]) {
181183
const process = (detail: ManifestDetail) => {
182-
detail.destPath = detail.destFolder + '/' + (detail.hashedFilename ?? detail.filename);
184+
detail.destPath = `${detail.destFolder}/${detail.hashedFilename ?? detail.filename}`;
183185
fs.mkdirSync(detail.destFolder, { recursive: true });
184186
fs.copyFileSync(detail.origin, detail.destPath);
185187
};

0 commit comments

Comments
 (0)