Use typescript api for user pictures and allow imports across js files

* Add imports paths for js files in node
* Add a ts version of fetchPaginated
* Update documentation
This commit is contained in:
2024-10-09 20:59:12 +02:00
parent 9247696c1c
commit 9199f91151
8 changed files with 111 additions and 10 deletions

View File

@ -0,0 +1,39 @@
Vous avez ajouté une application et vous voulez y mettre du javascript ?
Vous voulez importer depuis cette nouvelle application dans votre script géré par webpack ?
Eh bien il faut manuellement enregistrer dans node où les trouver et c'est très simple.
D'abord, il faut ajouter dans node via `package.json`:
```json
{
// ...
"imports": {
// ...
"#mon_app:*": "./mon_app/static/webpack/*"
}
// ...
}
```
Ensuite, pour faire fonctionne l'auto-complétion, il faut configurer `tsconfig.json`:
```json
{
"compilerOptions": {
// ...
"paths": {
// ...
"#mon_app:*": ["./mon_app/static/webpack/*"]
}
}
}
```
Et c'est tout !
!!!note
Il se peut qu'il soit nécessaire de redémarrer `./manage.py runserver` pour
que les changements prennent effet.

View File

@ -35,8 +35,9 @@ les fichiers sont à mettre dans un dossier `static/webpack` de l'application à
Pour accéder au fichier, il faut utiliser `static` comme pour le reste mais en ajouter `webpack/` comme prefix.
```jinja
{# Exemple pour ajouter sith/core/webpack/alpine-index.js #}
{# Example pour ajouter sith/core/webpack/alpine-index.js #}
<script src="{{ static('webpack/alpine-index.js') }}" defer></script>
<script src="{{ static('webpack/other-index.ts') }}" defer></script>
```
!!!note
@ -45,6 +46,16 @@ Pour accéder au fichier, il faut utiliser `static` comme pour le reste mais en
Les autres fichiers sont disponibles à l'import dans le JavaScript comme
si ils étaient tous au même niveau.
### Les imports au sein des fichiers de webpack
Pour importer au sein de webpack, faut préfixer ses imports de `#app:`.
Example:
```js
import { paginated } from "#core:utils/api";
```
## Comment ça fonctionne le post processing ?
Le post processing est géré par le module `staticfiles`. Les fichiers sont