I like to keep my .hooks.js files nice and tidy, though. So I would like to be able to import objects from other .js files. For example, by providing the relative path of the .js file (relative to the .hooks.js file). Or by colocation. In the latter case you’d get:
Any advice how to go about implementing this? I will also dive into the code base of Surface to see if I can borrow any solutions from there, but I could use some help looking for a solution in the right direction.
I’ve been doing that, but have been thinking about improving code organization beyond that (I should have been more explicit about that).
Some of the options that came to mind:
Allow colocated .js files. This has the disadvantage that you can only colocate one .js file besides the .hooks.js file.
Define .js import paths relative to the .hooks.js file. Possibly indicated with a symbol (e.g. €). For example:
// this is inside a .hooks.js file
import { example } from 'app.js' // Path relative to assets folder
import { eagle } from '€/animals.js' // Path relative to .hooks.js file
Using € might be a terrible choice, but just for argument’s sake.
Both. Allowing colocation AND path relative to .hooks.js.