mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-28 20:25:33 +08:00
[react-packager] Additional data to asset modules
This commit is contained in:
@@ -1,42 +1,52 @@
|
||||
'use strict';
|
||||
|
||||
jest.autoMockOff();
|
||||
var extractAssetResolution = require('../extractAssetResolution');
|
||||
var getAssetDataFromName = require('../getAssetDataFromName');
|
||||
|
||||
describe('extractAssetResolution', function() {
|
||||
describe('getAssetDataFromName', function() {
|
||||
it('should extract resolution simple case', function() {
|
||||
var data = extractAssetResolution('test@2x.png');
|
||||
var data = getAssetDataFromName('test@2x.png');
|
||||
expect(data).toEqual({
|
||||
assetName: 'test.png',
|
||||
resolution: 2,
|
||||
type: 'png',
|
||||
name: 'test',
|
||||
});
|
||||
});
|
||||
|
||||
it('should default resolution to 1', function() {
|
||||
var data = extractAssetResolution('test.png');
|
||||
var data = getAssetDataFromName('test.png');
|
||||
expect(data).toEqual({
|
||||
assetName: 'test.png',
|
||||
resolution: 1,
|
||||
type: 'png',
|
||||
name: 'test',
|
||||
});
|
||||
});
|
||||
|
||||
it('should support float', function() {
|
||||
var data = extractAssetResolution('test@1.1x.png');
|
||||
var data = getAssetDataFromName('test@1.1x.png');
|
||||
expect(data).toEqual({
|
||||
assetName: 'test.png',
|
||||
resolution: 1.1,
|
||||
type: 'png',
|
||||
name: 'test',
|
||||
});
|
||||
|
||||
data = extractAssetResolution('test@.1x.png');
|
||||
data = getAssetDataFromName('test@.1x.png');
|
||||
expect(data).toEqual({
|
||||
assetName: 'test.png',
|
||||
resolution: 0.1,
|
||||
type: 'png',
|
||||
name: 'test',
|
||||
});
|
||||
|
||||
data = extractAssetResolution('test@0.2x.png');
|
||||
data = getAssetDataFromName('test@0.2x.png');
|
||||
expect(data).toEqual({
|
||||
assetName: 'test.png',
|
||||
resolution: 0.2,
|
||||
type: 'png',
|
||||
name: 'test',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
var path = require('path');
|
||||
|
||||
function extractAssetResolution(filename) {
|
||||
function getAssetDataFromName(filename) {
|
||||
var ext = path.extname(filename);
|
||||
|
||||
var re = new RegExp('@([\\d\\.]+)x\\' + ext + '$');
|
||||
@@ -19,10 +19,13 @@ function extractAssetResolution(filename) {
|
||||
}
|
||||
}
|
||||
|
||||
var assetName = match ? filename.replace(re, ext) : filename;
|
||||
return {
|
||||
resolution: resolution,
|
||||
assetName: match ? filename.replace(re, ext) : filename,
|
||||
assetName: assetName,
|
||||
type: ext.slice(1),
|
||||
name: path.basename(assetName, ext)
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = extractAssetResolution;
|
||||
module.exports = getAssetDataFromName;
|
||||
Reference in New Issue
Block a user