# `MishkaCmsCore.Runtime.Resources.Validations.HookPackages`
[🔗](https://github.com/mishka-group/mishka_cms_core/blob/v0.0.1/lib/mishka_cms_core/runtime/resources/__validations/hook_packages.ex#L5)

A JS hook's `npm` packages and `modules` are what the JavaScript compiler fetches and writes to
disk, so a hook is refused unless each package is one
`MishkaCmsCore.Runtime.Compilers.NpmPackages` can fetch, and each module a plain `name.js` with
its content — written beside the hook, and nowhere else.

# `module?`

```elixir
@spec module?(term()) :: boolean()
```

Whether `module` is a file the compiler may write beside a hook.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
