Skip to content

Commit d5f1766

Browse files
committed
Pass the spritesheet object to 'onSaveSpritesheet' hook
Fix #62
1 parent 333f70f commit d5f1766

File tree

3 files changed

+8
-11
lines changed

3 files changed

+8
-11
lines changed

examples/skip-prefix.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ var opts = {
1616
stylesheetPath: './css',
1717
spritePath: './css/images/',
1818
hooks: {
19-
onSaveSpritesheet: function(opts, groups) {
19+
onSaveSpritesheet: function(opts, spritesheet) {
2020
// We assume that the groups is not an empty array
21-
var filenameChunks = groups.slice().push('png');
21+
var filenameChunks = spritesheet.groups.slice().push('png');
2222
return path.join(opts.spritePath, filenameChunks.join('.'));
2323
}
2424
}

src/index.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -356,11 +356,9 @@ export function runSpritesmith(opts, images) {
356356
*/
357357
export function saveSpritesheets(opts, images, spritesheets) {
358358
return Promise.each(spritesheets, (spritesheet) => {
359-
const { groups, extension } = spritesheet;
360-
361359
spritesheet.path = _.isFunction(opts.hooks.onSaveSpritesheet)
362-
? opts.hooks.onSaveSpritesheet(opts, groups, extension)
363-
: makeSpritesheetPath(opts, groups, extension);
360+
? opts.hooks.onSaveSpritesheet(opts, spritesheet)
361+
: makeSpritesheetPath(opts, spritesheet);
364362

365363
if (!spritesheet.path) {
366364
throw new Error('postcss-sprites: Spritesheet requires a relative path.');
@@ -580,11 +578,10 @@ export function maskGroup(toggle = false) {
580578
/**
581579
* Generate the filepath to the sprite.
582580
* @param {Object} opts
583-
* @param {Array} groups
584-
* @param {String} extension
581+
* @param {Object} spritesheet
585582
* @return {String}
586583
*/
587-
export function makeSpritesheetPath(opts, groups = [], extension) {
584+
export function makeSpritesheetPath(opts, { groups, extension }) {
588585
return path.join(opts.spritePath, ['sprite', ...groups, extension].join('.'));
589586
}
590587

test/02-utilities.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ test('should extract color from declaration value', (t) => {
9898
});
9999

100100
test('should generate spritesheet filename', (t) => {
101-
t.deepEqual(makeSpritesheetPath({ spritePath: './' }, [], 'png'), 'sprite.png');
102-
t.deepEqual(makeSpritesheetPath({ spritePath: './' }, ['@2x'], 'png'), '[email protected]');
101+
t.deepEqual(makeSpritesheetPath({ spritePath: './' }, { groups: [], extension: 'png' }), 'sprite.png');
102+
t.deepEqual(makeSpritesheetPath({ spritePath: './' }, { groups: ['@2x'], extension: 'png' }), '[email protected]');
103103
});
104104

105105
test('should detect comment tokens', (t) => {

0 commit comments

Comments
 (0)