<commit_before>'use strict'
const splitPath = require('./splitPath')
const decomposePath = require('./decomposePath')

// @TODO: Add precomputation in expandNodeDeps to calculate all the static nodes
// upon which the dynamic nodes depens
// @TODO: Change set cache to add dynamic nodes differently:
// e.g. if a dynamic node is /foo and the path /foo/bar is requested
// then the cache will be store:
// /foo: {
//    /foo/bar: 123
// }
//
// Implementation:
// if (cache[path]) {
//    return cache[path]
// } else if (cache[rootOfDynamicNode(path)]) {
//    return cache[rootOfDynamicNode(path)][path]
// } else {
//    -> compute value
// }
//
// Doing so when deleting a dynamic node no iteration on children node
// is needed. Just a clear delete on the node ref.
//
// To optimize this further create a single ref spaning from the static node that
// all the dynamic nodes are listening to and delete only that.
//
// Implementing the same for listeners!<commit_msg>Remove comment in invalidateCache about the current implementation.<commit_after>'use strict'
const splitPath = require('./splitPath')
const decomposePath = require('./decomposePath')
{'fraction_non_alphanumeric': 0.11937716262975778, 'fraction_numerical': 0.0025951557093425604, 'mean_word_length': 3.501945525291829, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5363961', 'n_tokens_mistral': 326, 'n_tokens_neox': 317, 'n_words': 135}