PageSourceSearch

https://ironhorse.sassnet.com/assets/controllers/alias_check_controller-80a479eb.js

js sassnet.com collected 2026-10-01 11:51:11 UTC 1,081 bytes, 39 lines download raw bytes

1import { Controller } from "@hotwired/stimulus"
2
3const URL = "/public/new_membership/alias_check"
4const MIN_LENGTH = 3
5const DEBOUNCE_MS = 300
6
7export default class extends Controller {
8  static targets = ["input", "warning", "exactWarning"]
9
10  disconnect() {
11    clearTimeout(this.timeout)
12  }
13
14  check() {
15    clearTimeout(this.timeout)
16    const query = this.inputTarget.value.trim()
17    if (query.length < MIN_LENGTH) {
18      this.hideAll()
19      return
20    }
21    this.timeout = setTimeout(async () => {
22      try {
23        const r = await fetch(`${URL}?query=${encodeURIComponent(query)}`, {
24          headers: { Accept: "application/json" }
25        })
26        const { exact, similar } = r.ok ? await r.json() : { exact: false, similar: false }
27        this.exactWarningTarget.classList.toggle("hidden", !exact)
28        this.warningTarget.classList.toggle("hidden", exact || !similar)
29      } catch {
30        this.hideAll()
31      }
32    }, DEBOUNCE_MS)
33  }
34
35  hideAll() {
36    this.warningTarget.classList.add("hidden")
37    this.exactWarningTarget.classList.add("hidden")
38  }
39}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.