Skip to content
This repository was archived by the owner on Jun 24, 2024. It is now read-only.

Commit a8452b0

Browse files
author
Walker
committed
Update to include css content in id hash
1 parent fdb7539 commit a8452b0

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

lib/util.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ const path = require('path');
44
const { promisify } = require('util');
55
const fs = require('fs');
66
const readFile = promisify(fs.readFile);
7-
const { hasher } = require('asset-pipe-common');
87
const readPkgUp = require('read-pkg-up');
98
const postcss = require('postcss');
109
const atImport = require('postcss-import');
@@ -16,8 +15,7 @@ module.exports.identifyCssModule = async function identifyCssModule (filePath) {
1615
});
1716
const file = filePath.replace(path.dirname(packagePath), name);
1817

19-
const id = hasher(`${name}|${version}|${file}`);
20-
return { id, name, version, file };
18+
return { name, version, file };
2119
};
2220

2321
module.exports.bundleCssModule = async function bundleCssModule (filePath) {

lib/writer.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const { identifyCssModule, bundleCssModule } = require('./util');
55
const { existsSync } = require('fs');
66
const { isAbsolute } = require('path');
77
const assert = require('assert');
8+
const { hasher } = require('asset-pipe-common');
89

910
module.exports = class Writer extends Readable {
1011
constructor (files = []) {
@@ -31,6 +32,7 @@ module.exports = class Writer extends Readable {
3132

3233
try {
3334
const [css, meta] = await Promise.all([bundleCssModule(file), identifyCssModule(file)]);
35+
meta.id = hasher(`${meta.name}|${meta.version}|${meta.file}|${css}`);
3436
meta.content = css;
3537
this.push(meta);
3638
} catch (err) {

test/writer.test.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ test('identifyCssModule(filePath)', async () => {
2020
const result = await identifyCssModule(filePath);
2121

2222
const identifier = {
23-
id: hasher(`my-module-1|1.0.1|${fileRef}`),
2423
name: 'my-module-1',
2524
version: '1.0.1',
2625
file: fileRef,
@@ -36,7 +35,6 @@ test('identifyCssModule(filePath) css in nested directory', async () => {
3635
const result = await identifyCssModule(filePath);
3736

3837
const identifier = {
39-
id: hasher(`my-module-2|1.0.1|${fileRef}`),
4038
name: 'my-module-2',
4139
version: '1.0.1',
4240
file: fileRef,
@@ -70,7 +68,7 @@ test('new Writer(filePath)', done => {
7068
writer.on('end', () => {
7169
const result1 = items[0];
7270
const result2 = items[1];
73-
expect(result1.id).toBe(hasher(`my-module-1|1.0.1|${fileRef}`));
71+
expect(result1.id).toBe(hasher(`my-module-1|1.0.1|${fileRef}|${result1.content}`));
7472
expect(result2).toBeFalsy();
7573
done();
7674
});
@@ -100,7 +98,7 @@ test('new Writer([filePath])', done => {
10098
writer.on('end', () => {
10199
const result1 = items[0];
102100
const result2 = items[1];
103-
expect(result1.id).toBe(hasher(`my-module-1|1.0.1|${fileRef}`));
101+
expect(result1.id).toBe(hasher(`my-module-1|1.0.1|${fileRef}|${result1.content}`));
104102
expect(result2).toBeFalsy();
105103
done();
106104
});
@@ -122,7 +120,7 @@ test('Writer processes @import statements', done => {
122120
const result1 = items[0];
123121
const result2 = items[1];
124122

125-
expect(result1.id).toBe(hasher(`my-module-3|1.0.1|${fileRef}`));
123+
expect(result1.id).toBe(hasher(`my-module-3|1.0.1|${fileRef}|${result1.content}`));
126124
expect(result1.content).toMatch('my-module-3/main.css');
127125
expect(result1.content).toMatch('my-module-3/dep.css');
128126
expect(result1.content).toMatch('dep/main.css');
@@ -150,8 +148,8 @@ test('new Writer([filePath1, filePath2]) ensures correct order', done => {
150148
const result2 = items[1];
151149
const result3 = items[2];
152150

153-
expect(result1.id).toBe(hasher(`my-module-1|1.0.1|${fileRef1}`));
154-
expect(result2.id).toBe(hasher(`my-module-2|1.0.1|${fileRef2}`));
151+
expect(result1.id).toBe(hasher(`my-module-1|1.0.1|${fileRef1}|${result1.content}`));
152+
expect(result2.id).toBe(hasher(`my-module-2|1.0.1|${fileRef2}|${result2.content}`));
155153
expect(result3).toBeFalsy();
156154
done();
157155
});

0 commit comments

Comments
 (0)