Playground.

This is a sample code for you to play around and understand what the elements(colors, messages, highlighted lines) in this report do. Scroll and hover your mouse on the elements. Try to understand what they do, how they work, and what they mean.

Do not hesitate to ask about anything.
Ask to start with the tasks whenever you feel comfortable using the tool.

      
    const deleteDir = async (dirname, options = {}) => {
        return new Promise((resolve, reject) => {
            rimraf(dirname, { ...options, glob: false }, err => {
            if (err) {
                reject(err);
            } else {
                resolve();
            }
            });
        })
    };
    
    const deleteEmpty = (cwd, options, cb) => {
        if (typeof cwd !== 'string') {
           return Promise.reject(new TypeError('expected the first argument to be a string'));
        }
    
        if (typeof options === 'function') {
           cb = options;
           options = null;
        }
    
        if (typeof cb === 'function') {
           return deleteEmpty(cwd, options)
               .then(res => cb(null, res))
               .catch(cb);
        }
    
        const opts = options || {};
        const dir = path.resolve(cwd);
    
        if (isEmpty(dir, opts)) {
            let files = await readdir(dir);
            
            await deleteFiles(dir, opts);
        }
    
        return remove(dirname);
    };