@stacksjs/stx
Version:
A performant UI Framework. Powered by Bun.
75 lines • 2.04 kB
TypeScript
import path from 'node:path';
/**
* Generate netlify.toml content from config
*/
export declare function generateNetlifyToml(config: NetlifyConfig): string;
/**
* Detect project configuration from filesystem
*/
export declare function detectProjectConfig(directory: string): Promise<ProjectConfig>;
/**
* Generate default Netlify config for an stx project
*/
export declare function createDefaultNetlifyConfig(projectConfig?: ProjectConfig): NetlifyConfig;
/**
* Write netlify.toml to a directory
*/
export declare function writeNetlifyConfig(directory: string, config?: NetlifyConfig): Promise<string>;
/**
* Check if netlify.toml exists
*/
export declare function hasNetlifyConfig(directory: string): boolean;
/**
* Read existing netlify.toml (basic parsing)
*/
export declare function readNetlifyConfig(directory: string): Promise<string | null>;
// ============================================================================
// Types
// ============================================================================
export declare interface NetlifyConfig {
build: {
command: string
publish: string
functions?: string
edge_functions?: string
environment?: Record<string, string>
}
functions?: {
directory?: string
node_bundler?: 'esbuild' | 'nft'
external_node_modules?: string[]
}
edge_functions?: Array<{
function: string
path: string
}>
redirects?: Array<{
from: string
to: string
status?: number
force?: boolean
conditions?: Record<string, string>
}>
headers?: Array<{
for: string
values: Record<string, string>
}>
plugins?: Array<{
package: string
inputs?: Record<string, unknown>
}>
context?: Record<string, {
command?: string
publish?: string
environment?: Record<string, string>
}>
}
export declare interface ProjectConfig {
framework?: 'stx' | 'static' | 'spa'
buildCommand?: string
outputDir?: string
functionsDir?: string
edgeFunctionsDir?: string
nodeVersion?: string
isSPA?: boolean
}