12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /**
- * @fileoverview Utility functions for propWrapperFunctions setting
- */
- 'use strict';
- const filter = require('es-iterator-helpers/Iterator.prototype.filter');
- const some = require('es-iterator-helpers/Iterator.prototype.some');
- function searchPropWrapperFunctions(name, propWrapperFunctions) {
- const splitName = name.split('.');
- return some(propWrapperFunctions.values(), (func) => {
- if (splitName.length === 2 && func.object === splitName[0] && func.property === splitName[1]) {
- return true;
- }
- return name === func || func.property === name;
- });
- }
- function getPropWrapperFunctions(context) {
- return new Set(context.settings.propWrapperFunctions || []);
- }
- function isPropWrapperFunction(context, name) {
- if (typeof name !== 'string') {
- return false;
- }
- const propWrapperFunctions = getPropWrapperFunctions(context);
- return searchPropWrapperFunctions(name, propWrapperFunctions);
- }
- function getExactPropWrapperFunctions(context) {
- const propWrapperFunctions = getPropWrapperFunctions(context);
- const exactPropWrappers = filter(propWrapperFunctions.values(), (func) => func.exact === true);
- return new Set(exactPropWrappers);
- }
- function isExactPropWrapperFunction(context, name) {
- const exactPropWrappers = getExactPropWrapperFunctions(context);
- return searchPropWrapperFunctions(name, exactPropWrappers);
- }
- function formatPropWrapperFunctions(propWrapperFunctions) {
- return Array.from(propWrapperFunctions, (func) => {
- if (func.object && func.property) {
- return `'${func.object}.${func.property}'`;
- }
- if (func.property) {
- return `'${func.property}'`;
- }
- return `'${func}'`;
- }).join(', ');
- }
- module.exports = {
- formatPropWrapperFunctions,
- getExactPropWrapperFunctions,
- getPropWrapperFunctions,
- isExactPropWrapperFunction,
- isPropWrapperFunction,
- };
|