Skip to content

Commit

Permalink
refactor: code
Browse files Browse the repository at this point in the history
  • Loading branch information
cap-Bernardito committed Mar 19, 2021
1 parent 6537f57 commit 6c7506e
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 32 deletions.
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -755,7 +755,7 @@ module.exports = {
const result = assets.reduce((accumulator, asset) => {
// The asset content can be obtained from `asset.source` using `source` method.
// The asset content is a [`Buffer`](https://nodejs.org/api/buffer.html) object, it could be converted to a `String` to be processed using `content.toString()`
const content = asset.source.source();
const content = asset.data;

accumulator = `${accumulator}${content}\n`;
return accumulator;
Expand Down
55 changes: 29 additions & 26 deletions src/index.js
Expand Up @@ -407,6 +407,7 @@ class CopyPlugin {
logger.debug(`snapshot for '${absoluteFilename}' is valid`);

result.source = cacheEntry.source;
result.data = cacheEntry.data;
} else {
logger.debug(`snapshot for '${absoluteFilename}' is invalid`);
}
Expand All @@ -419,10 +420,8 @@ class CopyPlugin {

logger.debug(`reading '${absoluteFilename}'...`);

let data;

try {
data = await readFile(inputFileSystem, absoluteFilename);
result.data = await readFile(inputFileSystem, absoluteFilename);
} catch (error) {
compilation.errors.push(error);

Expand All @@ -431,7 +430,7 @@ class CopyPlugin {

logger.debug(`read '${absoluteFilename}'`);

result.source = new RawSource(data);
result.source = new RawSource(result.data);

let snapshot;

Expand All @@ -456,6 +455,7 @@ class CopyPlugin {
try {
await cache.storePromise(`${sourceFilename}|${index}`, null, {
source: result.source,
data: result.data,
snapshot,
});
} catch (error) {
Expand All @@ -477,16 +477,14 @@ class CopyPlugin {
if (transform.transformer) {
logger.log(`transforming content for '${absoluteFilename}'...`);

const buffer = result.source.source();

if (transform.cache) {
const defaultCacheKeys = {
version,
sourceFilename,
transform: transform.transformer,
contentHash: crypto
.createHash("md4")
.update(buffer)
.update(result.data)
.digest("hex"),
index,
};
Expand Down Expand Up @@ -518,7 +516,7 @@ class CopyPlugin {

if (!result.source) {
const transformed = await transform.transformer(
buffer,
result.data,
absoluteFilename
);

Expand All @@ -536,7 +534,7 @@ class CopyPlugin {
}
} else {
result.source = new RawSource(
await transform.transformer(buffer, absoluteFilename)
await transform.transformer(result.data, absoluteFilename)
);
}
}
Expand All @@ -550,7 +548,7 @@ class CopyPlugin {
const contentHash = CopyPlugin.getContentHash(
compiler,
compilation,
result.source.source()
result.data
);
const ext = path.extname(result.sourceFilename);
const base = path.basename(result.sourceFilename);
Expand Down Expand Up @@ -664,16 +662,14 @@ class CopyPlugin {

const mergedEtag =
assets.length === 1
? cache.getLazyHashedEtag(assets[0].source.source())
: assets.reduce((accumulator, asset, ind) => {
? cache.getLazyHashedEtag(assets[0].data)
: assets.reduce((accumulator, asset, i) => {
// eslint-disable-next-line no-param-reassign
accumulator = cache.mergeEtags(
ind === 1
? cache.getLazyHashedEtag(
accumulator.source.source()
)
i === 1
? cache.getLazyHashedEtag(accumulator.data)
: accumulator,
cache.getLazyHashedEtag(asset.source.source())
cache.getLazyHashedEtag(asset.data)
);

return accumulator;
Expand All @@ -683,22 +679,24 @@ class CopyPlugin {
version,
from: item.from,
to: item.to,
transform: item.transformAll,
transformAll: item.transformAll,
})}`;
const eTag = cache.getLazyHashedEtag(mergedEtag);
const cacheItem = cache.getItemCache(cacheKeys, eTag);
let transformedAsset = await cacheItem.getPromise();

if (!transformedAsset) {
const { RawSource } = compiler.webpack.sources;

transformedAsset = {
filename: item.to,
};
transformedAsset = { filename: item.to };

try {
transformedAsset.source = new RawSource(
await item.transformAll(assets)
transformedAsset.data = await item.transformAll(
assets.map((asset) => {
return {
data: asset.data,
sourceFilename: asset.sourceFilename,
absoluteFilename: asset.absoluteFilename,
};
})
);
} catch (error) {
compilation.errors.push(error);
Expand All @@ -710,7 +708,7 @@ class CopyPlugin {
const contentHash = CopyPlugin.getContentHash(
compiler,
compilation,
transformedAsset.source.source()
transformedAsset.data
);

const data = {
Expand All @@ -733,6 +731,11 @@ class CopyPlugin {
transformedAsset.info = assetInfo;
}

const { RawSource } = compiler.webpack.sources;

transformedAsset.source = new RawSource(
transformedAsset.data
);
transformedAsset.force = item.force;

await cacheItem.storePromise(transformedAsset);
Expand Down
8 changes: 3 additions & 5 deletions test/transformAll-option.test.js
Expand Up @@ -36,8 +36,7 @@ describe("transformAll option", () => {
to: "file.txt",
transformAll(assets) {
const result = assets.reduce((accumulator, asset) => {
const content =
asset.source.source().toString() || asset.sourceFilename;
const content = asset.data.toString() || asset.sourceFilename;
// eslint-disable-next-line no-param-reassign
accumulator = `${accumulator}${content}::`;
return accumulator;
Expand Down Expand Up @@ -164,7 +163,7 @@ describe("transformAll option", () => {
transformAll(assets) {
const result = assets.reduce((accumulator, asset) => {
// eslint-disable-next-line no-param-reassign
accumulator = `${accumulator}${asset.source.source()}::`;
accumulator = `${accumulator}${asset.data}::`;
return accumulator;
}, "");

Expand All @@ -189,8 +188,7 @@ describe("cache", () => {
to: "file.txt",
transformAll(assets) {
const result = assets.reduce((accumulator, asset) => {
const content =
asset.source.source().toString() || asset.sourceFilename;
const content = asset.data.toString() || asset.sourceFilename;
// eslint-disable-next-line no-param-reassign
accumulator = `${accumulator}${content}::`;
return accumulator;
Expand Down

0 comments on commit 6c7506e

Please sign in to comment.