Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 53 additions & 42 deletions dependencyInjection/ru/framework.js
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,68 @@
'use strict'

// Типы библиотек
var libraries ={
console: 'global',
setTimeout: 'global',
setInterval: 'global',
fs: 'native',
vm: 'native',
path: 'native',
util: 'native',
ncp: 'module',
colors: 'module',
mkdirp: 'module',
let libraries ={
console: 'global',
setTimeout: 'global',
setInterval: 'global',
fs: 'native',
vm: 'native',
path: 'native',
util: 'native',
ncp: 'module',
colors: 'module',
mkdirp: 'module'
};

// Ссылки на метаданные загруженных библиотек
var loaded ={};
let loaded ={};

// Ссылки на загруженные библиотеки
var api ={};
let api ={};

// Загружаем два системных модуля и после них основное приложение
['fs', 'vm', 'application'].forEach(loadLibrary);

// Функция загрузчик
function loadLibrary(name, parent){
if (typeof(parent) !== 'object') parent ={name: 'framework'};
console.log('Loading dependency: ' + name + ' into ' + parent.name);
var mod ={};
loaded[name] = mod;
mod.name = name;
mod.type = libraries[name];
if (mod.type === 'global'){
mod.interface = global[name];
api[name] = mod.interface;
} else if (mod.type === 'native' || mod.type === 'module'){
mod.interface = require(name);
api[name] = mod.interface;
} else{
mod.type = 'app'
mod.context ={module:{} };
mod.context.global = mod.context;
mod.sandbox = api.vm.createContext(mod.context);
mod.config = require('./' + name + '.json');
mod.fileName = './' + name + '.js'
api.fs.readFile(mod.fileName, function(err, src){
mod.script = api.vm.createScript(src, mod.fileName);
mod.script.runInNewContext(mod.sandbox);
mod.interface = mod.sandbox.exports;
api[name] = mod.interface;
if (mod.config.api){
mod.config.api.forEach(function(item){
loadLibrary(item, mod);
});
}
if ( typeof parent !== 'object'){
parent ={name: 'framework'};
}

console.log('Loading dependency: ' + name + ' into ' + parent.name);

let mod ={};

loaded[name] = mod;
mod.name = name;
mod.type = libraries[name];

if (mod.type === 'global'){
mod.interface = global[name];
api[name] = mod.interface;
} else if (mod.type === 'native' || mod.type === 'module'){
mod.interface = require(name);
api[name] = mod.interface;
} else{
mod.type = 'app'
mod.context ={module:{} };
mod.context.global = mod.context;
mod.sandbox = api.vm.createContext(mod.context);
mod.config = require('./' + name + '.json');
mod.fileName = './' + name + '.js'

api.fs.readFile(mod.fileName, (err, src) =>{
mod.script = api.vm.createScript(src, mod.fileName);
mod.script.runInNewContext(mod.sandbox);
mod.interface = mod.sandbox.exports;
api[name] = mod.interface;

if (mod.config.api){
mod.config.api.forEach( (item) =>{
loadLibrary(item, mod);
});
}
});
}
}

99 changes: 0 additions & 99 deletions interfaceWrapper/en/README.md

This file was deleted.

10 changes: 0 additions & 10 deletions interfaceWrapper/en/application.js

This file was deleted.

40 changes: 0 additions & 40 deletions interfaceWrapper/en/framework.js

This file was deleted.

53 changes: 50 additions & 3 deletions interfaceWrapper/ru/application.js
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,57 @@
'use strict'

//const fs = global.fs || require('fs');

const fs = require('fs');

// Вывод из глобального контекста модуля
console.log('From application global context');
console.log('From application global context');

// Объявляем функцию для события таймера
function timerEvent(){
console.log('From application timer event');
console.log('From application timer event');
}

// Устанавливаем функцию на таймер
setTimeout(timerEvent, 1000);
//setTimeout(timerEvent, 1500);


let readme = './README.md'
let sequental = './sequental.js'

/*
fs.readFile(readme, 'utf8', (err, src) =>{
if (err){
console.error(err);

return;
}

console.log(' File "%s" Size "%d"', readme, src.length);
});
*/

//console.log(fs.constants);
/*
fs.readFile(sequental, 'utf8', (err, src) =>{
if (err){
console.error(err);

return;
}

console.log(' File "%s" Size "%d"', sequental, src.length);
});
*/

const fourtyTwo = 42;

function getParams(data, callback){
callback(data);
}

module.exports ={
getParams,
fourtyTwo
};

Loading