Socket
Book a DemoInstallSign in
Socket

lucy-codegen

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lucy-codegen

Code Generation in multiple languages

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

lucy-codegen

A library for auto-generating source code in different programming languages. Useful for creating SDKs and sample code.

Supported Languages

  • JavaScript
  • NodeJS
  • Ruby
  • PHP

In Progress

  • Java
  • Python
  • cURL

Project Overview

Generators

Generators are contained in the generators/ directory. Each generator takes in a language and generates sample code for achieving some goal in that language:

  • Request: Generates code for making an HTTP request
  • App: Generates code for serving a Single Page Application

You can see samples of the generated code in the test/golden directory

Languages

Languages are described in the langs/ directory. Each language is expected to implement certain fields and functions for generating code in that language. For instance, JavaScript has the following implementation:

var JS = {
    name: 'javascript',
    label: 'JavaScript',
    extension: '.js',
    nulltype: 'null',
}

JS.comment = function(str) { return '// ' + str }

JS.for = function(iter) {
  return iter.group + '.forEach(function(' + iter.iterator + ', index) {';
}
JS.rof = function(iter) {
  return '});'
}
JS.if = function(cond) {
  return 'if(' + cond +') {'
}
JS.fi = function(cond) {
  return '}'
}

Languages are expected to implement the following fields and functions:

  • name: Should match the language's subdirectory
  • label: A human-readable label for this language
  • extension: The default file extension for this language
  • nulltype: A string that represents a null value
  • comment(str): A comment block containing the given text
  • for(cond): The opening of a for() loop
  • rof(cond): The end of a for() loop
  • if(cond): The opening of an if() statement
  • fi(cond): The end of an if() statement
  • variable(name): Turns JS syntax (e.g. js foo.bar[3].baz ) into syntax for this language
  • literal(literal): Turn a JSON serializable object into code for describing it as a literal in this language
  • concat(strings): Code to concatenate the provided strings
  • jsonEncode(variable): Code to convert variable to a JSON string
  • html: A set of functions for generating HTML templates in this language (e.g. EJS for Node, ERB for Ruby)
  • html.for(cond)
  • html.rof(cond)
  • html.if(cond)
  • html.fi(cond)
  • html.variable(name)
  • html.variableJS(name)
  • app: A set of instructions for building code that serves a Single Page Application

FAQs

Package last updated on 08 Jan 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts