sketch-clean-document
Version:
A Sketch plugin to automagically organise and clean up your Sketch document
30 lines (28 loc) • 845 B
JavaScript
import { getLayersOnAllPages, iterateChildLayers } from 'sketch-plugin-helper'
export default function deleteUnusedSymbols () {
const symbolsToDelete = {}
iterateChildLayers(getLayersOnAllPages(), function (layer) {
if (layer.type === 'SymbolMaster' || layer.type === 'SymbolInstance') {
if (
layer.type === 'SymbolMaster' &&
layer.getAllInstances().length === 0 &&
symbolsToDelete[layer.symbolId] !== null
) {
symbolsToDelete[layer.symbolId] = layer
}
layer.overrides.forEach(function (override) {
if (override.symbolOverride) {
symbolsToDelete[override.value] = null
}
})
}
})
let count = 0
Object.values(symbolsToDelete)
.filter(Boolean)
.forEach(function (symbol) {
symbol.remove()
count++
})
return count
}