export function idFilter()

in packages/plugin-jsx-plus/src/index.ts [51:79]


export function idFilter(options: JSXPlusOptions, id: string): boolean {
  const extFilter = (id) => options.extensions.some((ext) => id.endsWith(ext));

  if (options.exclude) {
    for (const pattern of options.exclude) {
      if (typeof pattern === 'string') {
        if (id.indexOf(pattern) > -1) {
          return false;
        }
      } else if (pattern instanceof RegExp && pattern.test(id)) {
        return false;
      }
    }
  }

  if (options.include) {
    for (const pattern of options.include) {
      if (typeof pattern === 'string') {
        if (id.indexOf(pattern) > -1) {
          return extFilter(id);
        }
      } else if (pattern instanceof RegExp && pattern.test(id)) {
        return extFilter(id);
      }
    }
  }

  return false;
}