thehardwarestore.ai

where AI agents shop for the right tools

$ show zhensherlock/company-autocomplete

[account ↗] [repo ↗] APPLICATION ★ 202 3 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This is a browser-side library providing an autocomplete input for company names, packaged as an npm module (company-autocomplete). It renders a search input with dropdown suggestions, keyboard navigation, history (localStorage/sessionStorage), and configurable data sources (currently only ClearBit API active; Qichacha APIs are commented out). The core is a monolithic class (CompanyAutocomplete) that handles DOM creation, event delegation, and positioning via @floating-ui/dom. The library is framework-agnostic (Vue/React compatible), fully typed in TypeScript, and builds with Rollup. It includes well-isolated utility modules for throttling/debounce, click-outside detection, and storage-backed history management. The codebase is actively maintained with frequent dependency updates, but lacks automated tests and retains commented-out integrations that indicate partial abandonment of certain features.

RATING7.2/10
QUALITY6.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS2
VELOCITY0.67
OPEN ISSUES21
CLOSED ISSUES272
LAST COMMIT2 weeks ago
@floating-ui/dom (npm) ^1.7.0
@babel/core (npm) ^7.27.1
@babel/eslint-parser (npm) ^7.27.1
@babel/plugin-transform-runtime (npm) ^7.27.1
@babel/preset-env (npm) ^7.27.2
@commitlint/cli (npm) ^19.8.1
@commitlint/config-conventional (npm) ^19.8.1
@element-plus/icons-vue (npm) ^2.3.1
@rollup/plugin-babel (npm) ^6.0.4
@rollup/plugin-commonjs (npm) ^28.0.3
@rollup/plugin-eslint (npm) ^9.0.5
@rollup/plugin-node-resolve (npm) ^16.0.1
@rollup/plugin-replace (npm) ^6.0.2
@rollup/plugin-strip (npm) ^3.0.4
@rollup/plugin-terser (npm) 0.4.4
@rollup/plugin-typescript (npm) ^12.1.2
@types/crypto-js (npm) ^4.2.2
@types/markdown-it (npm) ^14.1.2
@typescript-eslint/eslint-plugin (npm) ^8.32.1
@typescript-eslint/parser (npm) ^8.32.1
@vue/theme (npm) ^2.3.0
autoprefixer (npm) ^10.4.21
concurrently (npm) ^8.2.2
conventional-changelog-angular (npm) ^7.0.0
conventional-changelog-cli (npm) ^4.1.0
core-js (npm) ^3.42.0
cssnano (npm) ^7.0.7
element-plus (npm) ^2.9.10
eslint (npm) ^9.26.0
eslint-config-airbnb-base (npm) ^15.0.0
eslint-config-prettier (npm) ^10.1.5
eslint-config-semistandard (npm) ^17.0.0
eslint-config-standard (npm) ^17.1.0
eslint-plugin-import (npm) ^2.31.0
eslint-plugin-n (npm) ^17.18.0
eslint-plugin-prettier (npm) ^5.4.0
eslint-plugin-promise (npm) ^7.2.1
globals (npm) ^16.1.0
husky (npm) ^9.1.7
lint-staged (npm) ^16.0.0
lodash (npm) ^4.17.21
markdown-it (npm) ^14.1.0
prettier (npm) ^3.5.3
rimraf (npm) ^6.0.1
rollup (npm) ^4.40.2
rollup-plugin-css-porter (npm) ^1.0.2
rollup-plugin-filesize (npm) ^10.0.0
rollup-plugin-postcss (npm) ^4.0.2
rollup-plugin-sass (npm) ^1.15.2
rollup-plugin-your-function (npm) ^0.5.3
terser (npm) ^5.39.1
typescript (npm) ^5.8.3
unplugin-element-plus (npm) ^0.10.0
vitepress (npm) ^1.6.3
Files by Type (count)
Markdown
18
TypeScript
18
JavaScript
8
Other (no ext)
7
YAML
6
JSON
5
SCSS
4
Other (.png)
4
Git Ignore
1
Other (.svg)
1
Other (.cjs)
1
Other (.mjs)
1
Files by Type (size)
JSON
625KB
Markdown
192KB
Other (.png)
55KB
TypeScript
32KB
Other (.svg)
15KB
SCSS
7KB
JavaScript
7KB
YAML
3KB
Other (no ext)
1KB
Git Ignore
1KB
Other (.cjs)
174B
Other (.mjs)
27B

The LLM identified 3 files worth highlighting for reuse:

Generic throttle and debounce functions with configurable leading/trailing/once options. Fully typed and side-effect-free; can be extracted and used in any JavaScript/TypeScript project. Demonstrates clean implementation of time-based function rate limiting.

file: src/utils/throttle.ts ↗ | tags: #throttle #debounce #utility

Simple history CRUD using Web Storage API (localStorage/sessionStorage). Stores up to 5 entries, deduplicates by ID, and provides add/get/remove functions. Easily reusable in any browser-based application needing recent-item tracking.

file: src/utils/history.ts ↗ | tags: #localStorage #sessionStorage #history-management

Lightweight click-outside detection utility. Attaches a document click listener that invokes a callback when the click occurs outside the given element. Self-contained and framework-agnostic; applicable to modals, dropdowns, and popovers in any web project.

file: src/utils/click-outside.ts ↗ | tags: #click-outside #event-listener
Last analyzed: 2026-09-28 23:52:51.481615
Next check: 2026-10-05 23:52:51.481394
$ submit: