{"id":25608,"library":"frasydi-makassar","title":"Frasydi Makassar","description":"A TypeScript-based transpiler and interpreter for `.mks` scripts using Makassar-inspired keyword syntax. Converts `.mks` to JavaScript and executes via Node.js. Current version 1.1.1, released as an npm package with CLI commands `frasydi-makassar` and `mks`. Differentiators include simple regex rule-based transformation, easy extensibility by adding rules, and focus on Indonesian regional language keywords. Supports if-else, while loops, variable assignment, function definition, and console output.","status":"active","version":"1.1.1","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install frasydi-makassar","lang":"bash","label":"npm"},{"cmd":"yarn add frasydi-makassar","lang":"bash","label":"yarn"},{"cmd":"pnpm add frasydi-makassar","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Development dependency for source code compilation.","package":"typescript","optional":true}],"imports":[{"note":"Package is ESM-only since v1.0.0.","wrong":"const { frasydiMakassar } = require('frasydi-makassar')","symbol":"frasydi-makassar","correct":"import { frasydiMakassar } from 'frasydi-makassar'"},{"note":"mks is a named export, not a default export.","wrong":"import mks from 'frasydi-makassar'","symbol":"mks","correct":"import { mks } from 'frasydi-makassar'"},{"note":"Rule is a TypeScript interface, use type import.","wrong":"import { Rule } from 'frasydi-makassar'","symbol":"Rule","correct":"import type { Rule } from 'frasydi-makassar'"}],"quickstart":{"code":"// Install globally\nnpm install -g frasydi-makassar\n\n// Create script.mks file\ncat > script.mks << 'EOF'\nketika 1 == 1, jari\n    akkanako(\"Halo Dunia\")\ntongko\nEOF\n\n// Run with CLI\nmks script.mks","lang":"javascript","description":"Shows how to install globally, create a simple `.mks` script, and execute it using the `mks` CLI command."},"warnings":[{"fix":"Ensure conditions are written with a comma before `jari`, e.g., `ketika 1 == 1, jari`.","message":"Arabic comma syntax is required for condition checks: use comma `,` not `;` after condition.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Check rules.ts for exact regex patterns – variable names should match the expected capture groups.","message":"Variables must start with a capital letter? No, but the regex in rules.ts expects certain patterns; ensure variable names follow the expected pattern.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Always wrap block bodies with `jari` and `tongko`.","message":"Only one-line constructs are supported; multi-line blocks must use explicit `jari` and `tongko`.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Include comma before `maka` in function definitions.","message":"Function definition requires a comma after arguments: `fungsi NAMA(ARG1, ARG2, ...), maka`.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Change to `import { frasydiMakassar } from 'frasydi-makassar'`.","cause":"Importing the default export instead of named export.","error":"TypeError: frasydiMakassar is not a function"},{"fix":"Run `npm install -g frasydi-makassar` and ensure Node.js >= 12.","cause":"Package not installed or wrong Node.js version (requires ESM).","error":"Error: Cannot find module 'frasydi-makassar'"},{"fix":"Replace `;` with `,` in conditions: `ketika 1 == 1, jari`.","cause":"Using semicolon instead of comma after condition.","error":"SyntaxError: Unexpected token ';' at script.mks:1"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}