[react-packager] Additional data to asset modules

This commit is contained in:
Amjad Masad
2015-04-22 11:04:24 -07:00
parent 0727cde42c
commit b4c82a4089
10 changed files with 227 additions and 95 deletions

View File

@@ -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',
});
});
});

View File

@@ -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;