CoffeeScriptは、sandbox
引数を呼び出しをtrue
介して設定することにより、組み込みのセキュリティ部分をサポートしていることがわかりました。eval
例えば
# Prepare
fsUtil = require('fs')
coffee = require('coffee-script')
# Read
dataStr = fsUtil.readFileSync('path').toString()
data = coffee.eval(dataStr, {sandbox:true})
上記のコードはファイルデータを読み込み、サンドボックスモードのcoffeescriptで評価します。
私はこれをサポートするCSONと呼ばれる優れたラッパーを作成しました。これは、 requireを介しcoffee
てファイルを作成し、上記のメカニズムを介してファイルを作成し、標準を介してファイルを作成します。また、値を文字列化してCoffeescript表記に戻します。これを使用して、次のAPIが公開されます。js
cson
json
JSON.parse
# Include CSON
CSON = require('cson')
# Parse a file path
CSON.parseFile 'data.cson', (err,obj) -> # async
result = CSON.parseFile('data.cson') # sync
# Parse a string
CSON.parse src, (err,obj) -> # async
result = CSON.parseSync(src) # sync
# Stringify an object to CSON
CSON.stringify data, (err,str) -> # async
result = CSON.stringifySync(obj) # sync