Skip to content

Module System

FSScript supports ES6-style module import/export.

Import

Import Script Files

javascript
// Import entire script
import 'path/to/script.fsscript'

// Named import
import { func1, func2 } from 'module.fsscript'

// Default import
import ModuleName from 'module.fsscript'

// Rename import
import originalName as alias from 'module.fsscript'

Import Spring Beans

javascript
// Import entire Bean
import myService from '@myServiceBean';

// Import Bean methods
import { getUserById, saveUser } from '@userService';

// Rename
import { saveUser as save } from '@userService';

Import Java Classes

javascript
// Import static methods
import { format } from 'java:java.lang.String';
import { now } from 'java:java.time.LocalDateTime';

// Import entire class
import DateUtils from 'java:com.example.utils.DateUtils';

Export

Export Variables

javascript
export var x = 10;
export let y = 20;
export const z = 30;

Export Functions

javascript
export function myFunction() {
    // ...
}

Default Export

javascript
export default value;

Batch Export

javascript
export { a, b, c };

Modular Example

javascript
// utils.fsscript
export function formatMoney(value) {
    return value.toFixed(2) + ' USD';
}

export const TAX_RATE = 0.13;

// main.fsscript
import { formatMoney, TAX_RATE } from './utils.fsscript';

export let price = 100;
export let tax = price * TAX_RATE;
export let display = formatMoney(price + tax);