mirror of https://github.com/status-im/metro.git
Make the global cache logic aware of the assetDataPlugins transform option
Reviewed By: jeanlauliac Differential Revision: D6727589 fbshipit-source-id: d15fb501c7b1cd64c5fb494523a9154322a63dc6
This commit is contained in:
parent
dfcaa30f26
commit
3c3d95fb15
|
@ -24,6 +24,8 @@ const {
|
||||||
traverseDependencies,
|
traverseDependencies,
|
||||||
} = require('../traverseDependencies');
|
} = require('../traverseDependencies');
|
||||||
|
|
||||||
|
const getTransformOptions = require('../../__fixtures__/getTransformOptions');
|
||||||
|
|
||||||
describe('DeltaCalculator', () => {
|
describe('DeltaCalculator', () => {
|
||||||
const entryModule = createModule({path: '/bundle', name: 'bundle'});
|
const entryModule = createModule({path: '/bundle', name: 'bundle'});
|
||||||
const moduleFoo = createModule({path: '/foo', name: 'foo'});
|
const moduleFoo = createModule({path: '/foo', name: 'foo'});
|
||||||
|
@ -308,6 +310,14 @@ describe('DeltaCalculator', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return the same params as the standard options', async () => {
|
||||||
|
const options = await deltaCalculator.getTransformerOptions();
|
||||||
|
|
||||||
|
expect(Object.keys(options).sort()).toEqual(
|
||||||
|
Object.keys(await getTransformOptions()).sort(),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it('should handle inlineRequires=true correctly', async () => {
|
it('should handle inlineRequires=true correctly', async () => {
|
||||||
Bundler.prototype.getTransformOptionsForEntryFile.mockReturnValue(
|
Bundler.prototype.getTransformOptionsForEntryFile.mockReturnValue(
|
||||||
Promise.resolve({
|
Promise.resolve({
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2015-present, Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the BSD-style license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
*
|
||||||
|
* @emails oncall+javascript_foundation
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const DeltaCalculator = require('../DeltaBundler/DeltaCalculator');
|
||||||
|
|
||||||
|
import type {Options as JSTransformerOptions} from '../JSTransformer/worker';
|
||||||
|
|
||||||
|
async function getTransformOptions(): Promise<JSTransformerOptions> {
|
||||||
|
const bundler = {
|
||||||
|
getGlobalTransformOptions() {
|
||||||
|
return {
|
||||||
|
enableBabelRCLookup: true,
|
||||||
|
projectRoot: '/root',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
async getTransformOptionsForEntryFile() {
|
||||||
|
return {
|
||||||
|
inlineRequires: true,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const dependencyGraph = {
|
||||||
|
getWatcher() {
|
||||||
|
return {on() {}};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const options = {
|
||||||
|
assetPlugins: [],
|
||||||
|
dev: true,
|
||||||
|
hot: true,
|
||||||
|
minify: false,
|
||||||
|
platform: 'ios',
|
||||||
|
};
|
||||||
|
|
||||||
|
const deltaCalculator = new DeltaCalculator(
|
||||||
|
bundler,
|
||||||
|
dependencyGraph,
|
||||||
|
options,
|
||||||
|
);
|
||||||
|
|
||||||
|
return await deltaCalculator.getTransformerOptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = getTransformOptions;
|
|
@ -439,6 +439,7 @@ class OptionsHasher {
|
||||||
options: TransformOptionsStrict,
|
options: TransformOptionsStrict,
|
||||||
): crypto$Hash {
|
): crypto$Hash {
|
||||||
const {
|
const {
|
||||||
|
assetDataPlugins,
|
||||||
enableBabelRCLookup,
|
enableBabelRCLookup,
|
||||||
dev,
|
dev,
|
||||||
hot,
|
hot,
|
||||||
|
@ -466,8 +467,9 @@ class OptionsHasher {
|
||||||
(+minify << 5),
|
(+minify << 5),
|
||||||
]),
|
]),
|
||||||
);
|
);
|
||||||
/* eslint-enable no-bitwise */
|
|
||||||
|
|
||||||
|
/* eslint-enable no-bitwise */
|
||||||
|
hash.update(JSON.stringify(assetDataPlugins));
|
||||||
hash.update(JSON.stringify(platform));
|
hash.update(JSON.stringify(platform));
|
||||||
hash.update(JSON.stringify(this.toLocalPath(projectRoot)));
|
hash.update(JSON.stringify(this.toLocalPath(projectRoot)));
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,8 @@ jest.mock('node-fetch', () => mockFetch);
|
||||||
|
|
||||||
const {URIBasedGlobalTransformCache} = require('../GlobalTransformCache');
|
const {URIBasedGlobalTransformCache} = require('../GlobalTransformCache');
|
||||||
const FetchError = require('node-fetch/lib/fetch-error');
|
const FetchError = require('node-fetch/lib/fetch-error');
|
||||||
const path = require('path');
|
|
||||||
|
const getTransformOptions = require('../../__fixtures__/getTransformOptions');
|
||||||
|
|
||||||
async function fetchResultURIs(
|
async function fetchResultURIs(
|
||||||
keys: Array<string>,
|
keys: Array<string>,
|
||||||
|
@ -44,14 +45,8 @@ describe('GlobalTransformCache', () => {
|
||||||
rootPath: __dirname,
|
rootPath: __dirname,
|
||||||
storeResults: null,
|
storeResults: null,
|
||||||
});
|
});
|
||||||
const transformOptions = {
|
const transformOptions = await getTransformOptions();
|
||||||
dev: false,
|
|
||||||
hot: false,
|
|
||||||
inlineRequires: false,
|
|
||||||
minify: false,
|
|
||||||
platform: 'ios',
|
|
||||||
projectRoot: path.join(__dirname, 'root'),
|
|
||||||
};
|
|
||||||
const result = await Promise.all([
|
const result = await Promise.all([
|
||||||
cache.fetch({
|
cache.fetch({
|
||||||
localPath: 'some/where/foo.js',
|
localPath: 'some/where/foo.js',
|
||||||
|
|
|
@ -19,12 +19,12 @@ Object {
|
||||||
exports[`GlobalTransformCache fetches results 1`] = `
|
exports[`GlobalTransformCache fetches results 1`] = `
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
"code": "/* code from http://globalcache.com/c78d72e5b503433212dce49b558b0ee350b6d578-foo.js */",
|
"code": "/* code from http://globalcache.com/e4d11b53d671aa56b44f2fdda2cd77b31f3a5cad-foo.js */",
|
||||||
"dependencies": Array [],
|
"dependencies": Array [],
|
||||||
"dependencyOffsets": Array [],
|
"dependencyOffsets": Array [],
|
||||||
},
|
},
|
||||||
Object {
|
Object {
|
||||||
"code": "/* code from http://globalcache.com/47637fbb61b7dfeda3a0d0a36241510b4669e4da-bar.js */",
|
"code": "/* code from http://globalcache.com/bf01163f2c3c2575e7da85343e20e9ff0013bbe8-bar.js */",
|
||||||
"dependencies": Array [],
|
"dependencies": Array [],
|
||||||
"dependencyOffsets": Array [],
|
"dependencyOffsets": Array [],
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue