sketch-constructor
Version:
Read/write/manipulate Sketch files in Node without Sketch plugins!
32 lines (28 loc) • 1.17 kB
JavaScript
/*
* Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
const Rect = require('../models/Rect');
/**
* stackLayers
* Positions an array of layers so they flow vertically like they would on the web.
* @param {Layer[]} layers - An array of Layers
* @param {int} gutter - Optional gutter between layers
* @returns {Layer[]} - An array of Layers
*/
function stackLayers(layers, gutter = 0) {
return layers.reduce((prev, curr) => {
const y = prev.reduce((ret, item) => ret + item.frame.height + gutter, 0);
curr.frame = new Rect({ ...curr.frame, y });
return prev.concat(curr);
}, []);
}
module.exports = stackLayers;