Convert JSON data to JavaScript code literals with smart handling of multiline strings.
npm install @jlarky/json-to-javascriptConvert JSON data to JavaScript code literals with smart handling of multiline strings.
This tool transforms JSON into properly formatted JavaScript code, automatically converting multiline strings into template literals with dedent support for clean indentation.
Input file (input.json):
``json`
{
"greeting": "Hello\nWorld",
"message": "Line 1\nLine 2\nLine 3",
"count": 42
}
Node.js:
`bash`
npx @jlarky/json-to-javascript \
--inputFile input.json \
--outputFile output.ts \
--useDedent true \
--prefix "import dedent from 'dedent'; export const data = (" \
--suffix ") as const" \
--prettierOptions '{"parser":"babel-ts"}'
Bun:
`bash`
bunx @jlarky/json-to-javascript \
--inputFile input.json \
--outputFile output.ts \
--useDedent true \
--prefix "import dedent from 'dedent'; export const data = (" \
--suffix ") as const" \
--prettierOptions '{"parser":"babel-ts"}'
Deno:
`bash`
deno run --allow-sys=cpus --allow-env --allow-read=. --allow-write=. \
jsr:@jlarky/json-to-javascript/cli \
--inputFile input.json \
--outputFile output.ts \
--useDedent true \
--prefix "import dedent from 'dedent'; export const data = (" \
--suffix ") as const" \
--prettierOptions '{"parser":"babel-ts"}'
Output file (output.ts):
`typescript
import dedent from "dedent";
export const data = {
greeting: dedent
Hello
World
,
message: dedent
Line 1
Line 2
Line 3
,`
count: 42,
} as const;
`bash`
npx @jlarky/json-to-javascript \
--inputFile input.json \
--outputFile output.js
This outputs the same JSON with default prefix ( and suffix ):
`javascript`
({
greeting: "Hello\nWorld",
message: "Line 1\nLine 2\nLine 3",
count: 42,
});
The difference from the previous example: no custom prefix/suffix, import statement, or dedent - just the data wrapped in parentheses with escaped newlines.
`
json-to-javascript [options]
Required:
--inputFile
--outputFile
Optional:
--prefix
--suffix
--usePrettier
--prettierOptions
--useDedent
--dedentPrefix
--dedentSuffix
--jsonStringifySpace
--help Show help
`
If you want to use the library in your code or install it locally:
`bash`
deno add jsr:@jlarky/json-to-javascript
`bash`
bunx jsr add @jlarky/json-to-javascript # or bun add @jlarky/json-to-javascript
`bash`
npx jsr add @jlarky/json-to-javascript # or npm install @jlarky/json-to-javascript
`typescript
import { jsonToJavascript } from "@jlarky/json-to-javascript";
const data = { name: "John", age: 30 };
const result = await jsonToJavascript(data);
console.log(result.code); // ({ name: "John", age: 30 });
``
- Generate configuration files from JSON
- Create test fixtures from JSON data
- Convert API responses to TypeScript constants
- Generate code with proper template literal formatting for multiline content
See CONTRIBUTING.md for development setup, testing, and publishing guidelines.
MIT