{"id":25822,"library":"jsy-transpile","title":"@jsy-lang/jsy (formerly jsy-transpile)","description":"JSY is an offside-rule (indentation-based) syntax dialect for ECMAScript that transpiles to standard JavaScript via a scanner-pass transformation, without Babel, Acorn, or any runtime dependencies. Current stable version 0.10.9. It supports modern JavaScript up to ES2025, has zero dependencies, 6300+ unit tests, and works with Rollup, ESBuild, Parcel, Vite, and Node.js --loader. Unlike CoffeeScript or Python-inspired alternatives, JSY automatically keeps pace with new ECMAScript features because its transformation only handles indentation and comments, leaving the underlying JavaScript syntax untouched. The package was renamed from jsy-transpile to @jsy-lang/jsy.","status":"active","version":"0.10.9","language":"javascript","source_language":"en","source_url":"https://github.com/jsy-lang/jsy","tags":["javascript","jsy","python","wisp","coffeescript","offside","indention","indent","syntax"],"install":[{"cmd":"npm install jsy-transpile","lang":"bash","label":"npm"},{"cmd":"yarn add jsy-transpile","lang":"bash","label":"yarn"},{"cmd":"pnpm add jsy-transpile","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Default export is the transpile function. Named export 'transpile' does not exist.","wrong":"import { transpile } from '@jsy-lang/jsy'","symbol":"default (transpile)","correct":"import jsy from '@jsy-lang/jsy'"},{"note":"Package renamed from jsy-transpile to @jsy-lang/jsy starting from v0.10.0. Use the scoped package.","wrong":"const jsy = require('jsy-transpile');","symbol":"transpile","correct":"import jsy from '@jsy-lang/jsy'; const result = jsy(code, options);"},{"note":"If using CommonJS, require the new scoped package. The old package jsy-transpile is deprecated.","wrong":"const jsy = require('jsy-transpile');","symbol":"transpile (CommonJS)","correct":"const jsy = require('@jsy-lang/jsy');"}],"quickstart":{"code":"import jsy from '@jsy-lang/jsy';\n\nconst jsyCode = `\n  add = (a, b) ->\n    a + b\n\n  console.log add(1, 2)\n`;\n\nconst jsCode = jsy(jsyCode, {\n  module: true,\n  sourceType: 'module',\n});\n\nconsole.log(jsCode);\n// Output:\n// const add = (a, b) => {\n//   return a + b\n// }\n// console.log(add(1, 2))","lang":"typescript","description":"Transpiles a simple JSY function with indentation-based syntax into standard JavaScript."},"warnings":[{"fix":"Replace 'jsy-transpile' with '@jsy-lang/jsy' in package.json and all imports.","message":"Package renamed from jsy-transpile to @jsy-lang/jsy. All imports using the old package name will break.","severity":"breaking","affected_versions":">=0.10.0"},{"fix":"Run 'npm install @jsy-lang/jsy' and update imports.","message":"The old package 'jsy-transpile' on npm is no longer maintained. Use '@jsy-lang/jsy' instead.","severity":"deprecated","affected_versions":"<0.10.0"},{"fix":"Use 'import jsy from \"@jsy-lang/jsy\"' and call jsy(source, options).","message":"The default export is the transpile function, not an object. Do not destructure { transpile }.","severity":"gotcha","affected_versions":">=0.5.0"},{"fix":"Ensure indentation is consistent (tabs or spaces, not mixed). Use 2 or 4 spaces per level.","message":"JSY transformation is syntactical only; it does not transform JavaScript semantics. Some constructs (e.g., async/await inside indented blocks) require correct indentation to work.","severity":"gotcha","affected_versions":"all"},{"fix":"Explicitly set 'module: true' if you want ES module output.","message":"Options for transpile function have changed between pre-0.10 and 0.10+. The 'module' option now defaults to false.","severity":"breaking","affected_versions":">=0.10.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install @jsy-lang/jsy and update imports: 'npm install @jsy-lang/jsy' then 'import jsy from \"@jsy-lang/jsy\"'.","cause":"Package renamed from jsy-transpile to @jsy-lang/jsy.","error":"Error: Cannot find module 'jsy-transpile'"},{"fix":"Use default import: 'import jsy from \"@jsy-lang/jsy\"'.","cause":"Attempting to use a named import { transpile } instead of default import.","error":"TypeError: jsy(...) is not a function"},{"fix":"Verify that all blocks are properly indented. JSY uses indentation to denote blocks. Use spaces consistently.","cause":"Incorrectly structured JSY code, e.g., missing indentation or wrong syntax.","error":"Parsing error: Unexpected token (1:1) after transpiling"},{"fix":"Use ES imports instead: 'import jsy from \"@jsy-lang/jsy\"'.","cause":"Using CommonJS require in an ES module context.","error":"ReferenceError: module is not defined","affected_versions":">=0.10.0"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}