Files
strata-compile/templates/strataconfig.ts
Carlos Gutierrez 9e451469f5 git commit -m "feat: initial release of Strata framework v0.1.0
- Static compiler with STRC pattern (Static Template Resolution with
   Compartmentalized Layers)
   - Template syntax: { } interpolation, { s-for }, { s-if/s-elif/s-else
    }
   - File types: .strata, .compiler.sts, .service.sts, .api.sts, .sts,
   .scss
   - CLI tools: strata dev, strata build, strata g (generators)
   - create-strata scaffolding CLI with Pokemon API example
   - Dev server with WebSocket HMR (Hot Module Replacement)
   - Documentation: README, ARCHITECTURE, CHANGELOG, CONTRIBUTING,
   LICENSE
2026-01-16 09:01:29 -05:00

81 lines
1.7 KiB
TypeScript

import { defineConfig } from 'strata';
export default defineConfig({
// Application settings
app: {
title: 'My Strata App',
description: 'Built with Strata Framework',
baseUrl: '/',
},
// Build configuration
build: {
outDir: 'dist',
assetsDir: 'assets',
minify: true,
sourcemap: process.env.NODE_ENV !== 'production',
target: 'es2020',
},
// Islands architecture
islands: {
hydration: 'visible', // 'load' | 'visible' | 'idle' | 'interaction'
threshold: 0.1,
},
// State management
state: {
devtools: process.env.NODE_ENV !== 'production',
persist: true,
encrypt: true, // Enable store encryption
},
// API configuration
api: {
baseUrl: process.env.API_URL || 'http://localhost:8080',
cache: {
enabled: true,
defaultTTL: '5m',
maxSize: 100,
},
rateLimit: {
maxRequests: 15000,
perDay: true,
strategy: 'queue',
},
},
// SCSS configuration
scss: {
includePaths: ['src/assets/styles'],
additionalData: `
@import "variables";
@import "mixins";
`,
},
// Auto-detected aliases (can override here)
aliases: {
'@': './src',
'@components': './src/components',
'@pages': './src/pages',
'@stores': './src/stores',
'@utils': './src/utils',
'@assets': './src/assets',
},
// Microfrontends (optional)
microfrontends: {
enabled: false,
shared: ['strata'],
remotes: {},
},
// Injected scripts (GTM, analytics, etc.)
// Scripts are loaded from src/injectedscripts/*.js
scripts: {
// Override positions/priorities if needed
// 'gtm': { position: 'head', priority: 1 },
},
});