UNPKG

sketch-clean-document

Version:

A Sketch plugin to automagically organise and clean up your Sketch document

54 lines (51 loc) 1.55 kB
import { getLayersOnAllPages, getSelectedLayersOrLayersOnCurrentPage, getSettings, iterateChildLayers, showSuccessMessage } from 'sketch-plugin-helper' import checkSettings from '../settings/check-settings' import deleteHiddenLayer from './delete-hidden-layer' import unnestNestedGroup from './unnest-nested-group' import roundToNearestPixel from './round-to-nearest-pixel' import smartRenameLayer from './smart-rename-layer' import smartSortLayer from './smart-sort-layer' export default function cleanLayers ({ isCleanDocument }) { const settings = getSettings().cleanLayers if (!checkSettings(settings)) { return } const layers = isCleanDocument ? getLayersOnAllPages() : getSelectedLayersOrLayersOnCurrentPage() const regularExpression = settings.whitelistRegularExpression const whitelistRegularExpression = regularExpression === '' ? null : new RegExp(regularExpression) iterateChildLayers(layers, function (layer) { if ( whitelistRegularExpression && whitelistRegularExpression.test(layer.name) ) { return } if (settings.deleteHiddenLayers && deleteHiddenLayer(layer)) { return } if (settings.roundToNearestPixel) { roundToNearestPixel(layer) } if (settings.smartRenameLayers) { smartRenameLayer(layer) } if (settings.smartSortLayers) { smartSortLayer(layer) } if (settings.unnestNestedGroups) { unnestNestedGroup(layer) } }) if (!isCleanDocument) { showSuccessMessage('Layers cleaned') } }