Commit graph

4 commits

Author SHA1 Message Date
Claude
b00a4320a7 core-fetch: baseUrl accepts () => string for lazy resolution
Lets consumers pass `() => import.meta.env.BASE_URL` without orval's CJS
bundle path blowing up on the top-level `import.meta` reference. The
getter is invoked at request time rather than factory time, so the
mutator file can be loaded by orval (which bundles to CJS) without
evaluating `import.meta`.

Closes uwe.admin/webapp-template#21 (scaffold side).

Bump to v0.5.0 — additive change (string form still works) but new
shape for `CoreFetchOptions.baseUrl` is a public API change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 22:49:06 +02:00
90c5ca2248 #4: vitest harness + suites for createCoreFetch / createI18n / useI18nStore
Bootstrap vitest with jsdom + @testing-library/react. 25 tests covering:
- core-fetch.test.ts (14): wrapped vs body shape, 204, non-JSON 2xx text,
  401/409 hooks (incl. decorate), formatError override, network failure +
  onNetworkFailure, sync queue + non-mutating bypass, request shape
  (X-Requested-With, credentials: include), baseUrl trailing-slash strip.
- i18n.test.ts (10): resolver chain (locale-tone → locale → default →
  raw), once-per-(key,locale,tone) onMiss firing + flip on locale change,
  subscribe/notify with same-value no-op + unsubscribe, getSnapshot.
- i18n-react.test.tsx (1): useI18nStore re-renders on locale change.

prepare: drops `|| true` per audit — `tsc && vitest run` so publish is
gated on tests passing.

Bump to 0.3.7.

Closes #4

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 21:45:31 +02:00
b1a13b83fd #6: Use Vite's loadEnv() for VITE_BASE so .env.production actually wins
defineAdminConfig / defineGuestConfig were reading process.env.VITE_BASE,
but Vite does NOT populate process.env from .env files at config-evaluation
time — those go into import.meta.env for the client bundle only. So the
VITE_BASE that new-project.sh writes to frontend/.env.production was
silently ignored, base fell back to '/', and SPA assets 404'd behind the
Apache /projects/<name>/ proxy prefix (blank page on every public route).

Switch both factories to Vite's defineConfig + loadEnv pattern. A
process.env.VITE_BASE override still wins so CI invocations that
explicitly export the variable keep working.

Bumps to 0.3.6.

Closes #6

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 21:36:23 +02:00
Uwe Schuster
b2b598c6c8 v0.3.1: ship compiled dist/ so npm git installs work without TS stripping
Consumers installing via 'git+http://.../webapp-scaffold.git#<tag>' hit
Node's ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING because .ts files
under node_modules can't be loaded by vite.config.ts loaders / node's
default loader.

Add tsconfig.json + 'prepare: tsc' (runs on git install). Emit .js + .d.ts
into dist/. package.json exports point at dist/; .ts remains in src/ for
direct-source consumers (e.g. monorepo setups). 'dist/' is gitignored —
it's a build artifact, populated at install time.

Version bump to 0.3.1 since this is a patch on the already-released
0.3.0 ABI (no API changes, just packaging).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 22:23:36 +02:00