eva-sdk-js
Version:
The JavaScript based SDK for the EVA platform
62 lines (54 loc) • 2.14 kB
JavaScript
;
var gulp = require( "gulp" );
gulp = require( "gulp-help" )( gulp );
var gutil = require( "gulp-util" );
var rimraf = require( "rimraf" );
var request = require( "request" );
var _ = require( "lodash" );
var fs = require( "fs" );
var gulpSequence = require( "gulp-sequence" );
gulp.task( "typings", "Retrieves EVA typings and updates tsconfig", function( callback )
{
gulpSequence( "eva_typings", "tsconfig_files" )( callback );
} );
gulp.task( "eva_typings", "Downloads various EVA typings and writes them to disk", function( callback )
{
var apiHost = "https://api.fth.test.eva-online.cloud";
// The main typings
//
gutil.log( "Fetching main typings... (" + apiHost + ")" );
request( apiHost + "/api/definition/typescript?useFilePerModule=true&useDeclareModule=true", function( error, response, body )
{
if ( error )
{
gutil.log( "Main typings fetch failed", error );
return error;
}
else
{
var mainTypings = JSON.parse( body );
gutil.log( "Retrieved main typings. Version:", mainTypings.version, " number of modules: ", mainTypings.modules.length );
// Purge the old typings
//
rimraf( "./typings/EVA.*.d.ts", function( error )
{
if ( error )
{
gutil.log( "Purge old files failed", error );
return error;
}
else
{
var addedModules = {};
_.each( mainTypings.modules, function( module )
{
addedModules[ module.name ] = mainTypings.version;
var filename = "./typings/" + module.name + ".d.ts";
fs.writeFileSync( filename, module.definitions.trim() );
gutil.log( "Added typing for", module.name, "->", filename );
} );
}
} )
}
} );
} );