@gluonjs/compiler / packages/compiler/src / compileGluonSfc
Function: compileGluonSfc()
compileGluonSfc(
source,options):GluonSfcCompileResult
Compiles a presentational .gluon Single-File Component to ordinary public
Gluon component, Quark, template, and constructable stylesheet contracts.
Parameters
source
string
options
Returns
Example
Lower one presentational .gluon file to ordinary public component, Quark, template, and constructable stylesheet calls:
import {
GluonSfcCompileError,
compileGluonSfc,
type GluonSfcCompileOptions,
type GluonSfcCompileResult,
type GluonSfcLayer,
} from '@gluonjs/compiler';
const source = `
<script lang="ts">
export interface BadgeProps { readonly label: string; }
</script>
<template component="Badge" layer="atom" props="BadgeProps">
<strong>{{ label }}</strong>
</template>
<style id="docs-badge">.docs-badge { font-weight: 600; }</style>
`;
const options = { filename: '/src/Badge.gluon' } satisfies GluonSfcCompileOptions;
try {
const result: GluonSfcCompileResult = compileGluonSfc(source, options);
const layer: GluonSfcLayer = result.layer;
console.log(result.componentName, layer, result.styleId, result.code);
} catch (error) {
if (error instanceof GluonSfcCompileError) console.error(error.code, error.filename);
}