57 lines
7.3 KiB
JavaScript
57 lines
7.3 KiB
JavaScript
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports['default'] =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
childContext;var _hash = require('eslint-module-utils/hash');var optionsHash = '';var prevOptions = '';var settingsHash = '';var prevSettings = ''; // Replacer function helps us with serializing the parser nested within `languageOptions`.
|
|
function stringifyReplacerFn(_, value) {if (typeof value === 'function') {return String(value);}return value;} /**
|
|
* don't hold full context object in memory, just grab what we need.
|
|
* also calculate a cacheKey, where parts of the cacheKey hash are memoized
|
|
*/function childContext(path, context) {var settings = context.settings,parserOptions = context.parserOptions,parserPath = context.parserPath,languageOptions = context.languageOptions;if (JSON.stringify(settings) !== prevSettings) {settingsHash = (0, _hash.hashObject)({ settings: settings }).digest('hex');
|
|
prevSettings = JSON.stringify(settings);
|
|
}
|
|
|
|
// We'll use either a combination of `parserOptions` and `parserPath` or `languageOptions`
|
|
// to construct the cache key, depending on whether this is using a flat config or not.
|
|
var optionsToken = void 0;
|
|
if (!parserPath && languageOptions) {
|
|
if (JSON.stringify(languageOptions, stringifyReplacerFn) !== prevOptions) {
|
|
optionsHash = (0, _hash.hashObject)({ languageOptions: languageOptions }).digest('hex');
|
|
prevOptions = JSON.stringify(languageOptions, stringifyReplacerFn);
|
|
}
|
|
// For languageOptions, we're just using the hashed options as the options token
|
|
optionsToken = optionsHash;
|
|
} else {
|
|
if (JSON.stringify(parserOptions) !== prevOptions) {
|
|
optionsHash = (0, _hash.hashObject)({ parserOptions: parserOptions }).digest('hex');
|
|
prevOptions = JSON.stringify(parserOptions);
|
|
}
|
|
// When not using flat config, we use a combination of the hashed parserOptions
|
|
// and parserPath as the token
|
|
optionsToken = String(parserPath) + optionsHash;
|
|
}
|
|
|
|
return {
|
|
cacheKey: optionsToken + settingsHash + String(path),
|
|
settings: settings,
|
|
parserOptions: parserOptions,
|
|
parserPath: parserPath,
|
|
path: path,
|
|
languageOptions: languageOptions };
|
|
|
|
}
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRNYXAvY2hpbGRDb250ZXh0LmpzIl0sIm5hbWVzIjpbImNoaWxkQ29udGV4dCIsIm9wdGlvbnNIYXNoIiwicHJldk9wdGlvbnMiLCJzZXR0aW5nc0hhc2giLCJwcmV2U2V0dGluZ3MiLCJzdHJpbmdpZnlSZXBsYWNlckZuIiwiXyIsInZhbHVlIiwiU3RyaW5nIiwicGF0aCIsImNvbnRleHQiLCJzZXR0aW5ncyIsInBhcnNlck9wdGlvbnMiLCJwYXJzZXJQYXRoIiwibGFuZ3VhZ2VPcHRpb25zIiwiSlNPTiIsInN0cmluZ2lmeSIsImRpZ2VzdCIsIm9wdGlvbnNUb2tlbiIsImNhY2hlS2V5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJ3QkEsWSxDQW5CeEIsZ0RBRUEsSUFBSUMsY0FBYyxFQUFsQixDQUNBLElBQUlDLGNBQWMsRUFBbEIsQ0FDQSxJQUFJQyxlQUFlLEVBQW5CLENBQ0EsSUFBSUMsZUFBZSxFQUFuQixDLENBRUE7QUFDQSxTQUFTQyxtQkFBVCxDQUE2QkMsQ0FBN0IsRUFBZ0NDLEtBQWhDLEVBQXVDLENBQ3JDLElBQUksT0FBT0EsS0FBUCxLQUFpQixVQUFyQixFQUFpQyxDQUMvQixPQUFPQyxPQUFPRCxLQUFQLENBQVAsQ0FDRCxDQUNELE9BQU9BLEtBQVAsQ0FDRCxDLENBRUQ7OztrSEFJZSxTQUFTUCxZQUFULENBQXNCUyxJQUF0QixFQUE0QkMsT0FBNUIsRUFBcUMsS0FDMUNDLFFBRDBDLEdBQ2VELE9BRGYsQ0FDMUNDLFFBRDBDLENBQ2hDQyxhQURnQyxHQUNlRixPQURmLENBQ2hDRSxhQURnQyxDQUNqQkMsVUFEaUIsR0FDZUgsT0FEZixDQUNqQkcsVUFEaUIsQ0FDTEMsZUFESyxHQUNlSixPQURmLENBQ0xJLGVBREssQ0FHbEQsSUFBSUMsS0FBS0MsU0FBTCxDQUFlTCxRQUFmLE1BQTZCUCxZQUFqQyxFQUErQyxDQUM3Q0QsZUFBZSxzQkFBVyxFQUFFUSxrQkFBRixFQUFYLEVBQXlCTSxNQUF6QixDQUFnQyxLQUFoQyxDQUFmO0FBQ0FiLG1CQUFlVyxLQUFLQyxTQUFMLENBQWVMLFFBQWYsQ0FBZjtBQUNEOztBQUVEO0FBQ0E7QUFDQSxNQUFJTyxxQkFBSjtBQUNBLE1BQUksQ0FBQ0wsVUFBRCxJQUFlQyxlQUFuQixFQUFvQztBQUNsQyxRQUFJQyxLQUFLQyxTQUFMLENBQWVGLGVBQWYsRUFBZ0NULG1CQUFoQyxNQUF5REgsV0FBN0QsRUFBMEU7QUFDeEVELG9CQUFjLHNCQUFXLEVBQUVhLGdDQUFGLEVBQVgsRUFBZ0NHLE1BQWhDLENBQXVDLEtBQXZDLENBQWQ7QUFDQWYsb0JBQWNhLEtBQUtDLFNBQUwsQ0FBZUYsZUFBZixFQUFnQ1QsbUJBQWhDLENBQWQ7QUFDRDtBQUNEO0FBQ0FhLG1CQUFlakIsV0FBZjtBQUNELEdBUEQsTUFPTztBQUNMLFFBQUljLEtBQUtDLFNBQUwsQ0FBZUosYUFBZixNQUFrQ1YsV0FBdEMsRUFBbUQ7QUFDakRELG9CQUFjLHNCQUFXLEVBQUVXLDRCQUFGLEVBQVgsRUFBOEJLLE1BQTlCLENBQXFDLEtBQXJDLENBQWQ7QUFDQWYsb0JBQWNhLEtBQUtDLFNBQUwsQ0FBZUosYUFBZixDQUFkO0FBQ0Q7QUFDRDtBQUNBO0FBQ0FNLG1CQUFlVixPQUFPSyxVQUFQLElBQXFCWixXQUFwQztBQUNEOztBQUVELFNBQU87QUFDTGtCLGNBQVVELGVBQWVmLFlBQWYsR0FBOEJLLE9BQU9DLElBQVAsQ0FEbkM7QUFFTEUsc0JBRks7QUFHTEMsZ0NBSEs7QUFJTEMsMEJBSks7QUFLTEosY0FMSztBQU1MSyxvQ0FOSyxFQUFQOztBQVFEIiwiZmlsZSI6ImNoaWxkQ29udGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhc2hPYmplY3QgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL2hhc2gnO1xuXG5sZXQgb3B0aW9uc0hhc2ggPSAnJztcbmxldCBwcmV2T3B0aW9ucyA9ICcnO1xubGV0IHNldHRpbmdzSGFzaCA9ICcnO1xubGV0IHByZXZTZXR0aW5ncyA9ICcnO1xuXG4vLyBSZXBsYWNlciBmdW5jdGlvbiBoZWxwcyB1cyB3aXRoIHNlcmlhbGl6aW5nIHRoZSBwYXJzZXIgbmVzdGVkIHdpdGhpbiBgbGFuZ3VhZ2VPcHRpb25zYC5cbmZ1bmN0aW9uIHN0cmluZ2lmeVJlcGxhY2VyRm4oXywgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBkb24ndCBob2xkIGZ1bGwgY29udGV4dCBvYmplY3QgaW4gbWVtb3J5LCBqdXN0IGdyYWIgd2hhdCB3ZSBuZWVkLlxuICogYWxzbyBjYWxjdWxhdGUgYSBjYWNoZUtleSwgd2hlcmUgcGFydHMgb2YgdGhlIGNhY2hlS2V5IGhhc2ggYXJlIG1lbW9pemVkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNoaWxkQ29udGV4dChwYXRoLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgc2V0dGluZ3MsIHBhcnNlck9wdGlvbnMsIHBhcnNlclBhdGgsIGxhbmd1YWdlT3B0aW9ucyB9ID0gY29udGV4dDtcblxuICBpZiAoSlNPTi5zdHJpbmdpZnkoc2V0dGluZ3MpICE9PSBwcmV2U2V0dGluZ3MpIHtcbiAgICBzZXR0aW5nc0hhc2ggPSBoYXNoT2JqZWN0KHsgc2V0dGluZ3MgfSkuZGlnZXN0KCdoZXgnKTtcbiAgICBwcmV2U2V0dGluZ3MgPSBKU09OLnN0cmluZ2lmeShzZXR0aW5ncyk7XG4gIH1cblxuICAvLyBXZSdsbCB1c2UgZWl0aGVyIGEgY29tYmluYXRpb24gb2YgYHBhcnNlck9wdGlvbnNgIGFuZCBgcGFyc2VyUGF0aGAgb3IgYGxhbmd1YWdlT3B0aW9uc2BcbiAgLy8gdG8gY29uc3RydWN0IHRoZSBjYWNoZSBrZXksIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoaXMgaXMgdXNpbmcgYSBmbGF0IGNvbmZpZyBvciBub3QuXG4gIGxldCBvcHRpb25zVG9rZW47XG4gIGlmICghcGFyc2VyUGF0aCAmJiBsYW5ndWFnZU9wdGlvbnMpIHtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkobGFuZ3VhZ2VPcHRpb25zLCBzdHJpbmdpZnlSZXBsYWNlckZuKSAhPT0gcHJldk9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnNIYXNoID0gaGFzaE9iamVjdCh7IGxhbmd1YWdlT3B0aW9ucyB9KS5kaWdlc3QoJ2hleCcpO1xuICAgICAgcHJldk9wdGlvbnMgPSBKU09OLnN0cmluZ2lmeShsYW5ndWFnZU9wdGlvbnMsIHN0cmluZ2lmeVJlcGxhY2VyRm4pO1xuICAgIH1cbiAgICAvLyBGb3IgbGFuZ3VhZ2VPcHRpb25zLCB3ZSdyZSBqdXN0IHVzaW5nIHRoZSBoYXNoZWQgb3B0aW9ucyBhcyB0aGUgb3B0aW9ucyB0b2tlblxuICAgIG9wdGlvbnNUb2tlbiA9IG9wdGlvbnNIYXNoO1xuICB9IGVsc2Uge1xuICAgIGlmIChKU09OLnN0cmluZ2lmeShwYXJzZXJPcHRpb25zKSAhPT0gcHJldk9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnNIYXNoID0gaGFzaE9iamVjdCh7IHBhcnNlck9wdGlvbnMgfSkuZGlnZXN0KCdoZXgnKTtcbiAgICAgIHByZXZPcHRpb25zID0gSlNPTi5zdHJpbmdpZnkocGFyc2VyT3B0aW9ucyk7XG4gICAgfVxuICAgIC8vIFdoZW4gbm90IHVzaW5nIGZsYXQgY29uZmlnLCB3ZSB1c2UgYSBjb21iaW5hdGlvbiBvZiB0aGUgaGFzaGVkIHBhcnNlck9wdGlvbnNcbiAgICAvLyBhbmQgcGFyc2VyUGF0aCBhcyB0aGUgdG9rZW5cbiAgICBvcHRpb25zVG9rZW4gPSBTdHJpbmcocGFyc2VyUGF0aCkgKyBvcHRpb25zSGFzaDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY2FjaGVLZXk6IG9wdGlvbnNUb2tlbiArIHNldHRpbmdzSGFzaCArIFN0cmluZyhwYXRoKSxcbiAgICBzZXR0aW5ncyxcbiAgICBwYXJzZXJPcHRpb25zLFxuICAgIHBhcnNlclBhdGgsXG4gICAgcGF0aCxcbiAgICBsYW5ndWFnZU9wdGlvbnMsXG4gIH07XG59XG4iXX0=
|