Skip to content

Commit

Permalink
devpanel: make devtools plugin works and related refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
lahmatiy committed Aug 10, 2016
1 parent 1b48e96 commit e5e1738
Show file tree
Hide file tree
Showing 23 changed files with 320 additions and 363 deletions.
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
return;
}

if (basisjsTools.features && typeof basisjsTools.getRemoteUrl == 'function')
if (typeof basisjsTools.getRemoteUrl == 'function')
{
var menu = document.getElementById('menu');
var item = document.createElement('li');
Expand Down
98 changes: 98 additions & 0 deletions src/devpanel/api/_file.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
var inspectBasis = require('devpanel').inspectBasis;
var inspectBasisTemplate = inspectBasis.require('basis.template');
var sendData = require('./transport.js').sendData;
var File = require('type').File;

function sendFile(file){
var data = {
filename: file.data.filename,
content: file.data.content
};

if (basis.path.extname(data.filename) == '.tmpl')
{
data.declaration = inspectBasisTemplate.makeDeclaration(
data.content,
basis.path.dirname(basis.path.resolve(data.filename)) + '/',
{},
data.filename
);
data.resources = data.declaration.resources.map(function(resource){
return resource.url;
});
// delete deps as it can has resource and ResourceWrapper which can't be serialized
data.declaration.deps = [];
data.declaration.includes = [];
}

sendData('updateFile', data);
}

var FILE_HANDLER = {
update: function(object, delta){
if ('content' in delta && this.data.content !== null)
sendFile(this);
}
};
var FILE_LIST_HANDLER = {
itemsChanged: function(dataset, delta){
var data = {};

if (delta.inserted)
data.inserted = delta.inserted.map(function(item){
item.addHandler(FILE_HANDLER);
return item.data.filename;
});

if (delta.deleted)
data.deleted = delta.deleted.map(function(item){
item.removeHandler(FILE_HANDLER);
return item.data.filename;
});

if (data.inserted || data.deleted)
sendData('filesChanged', data);
}
};

File.all.addHandler(FILE_LIST_HANDLER);
File.all.forEach(function(file){
file.addHandler(FILE_HANDLER);
});

//
// exports
//
module.exports = {
getFileList: function(){
sendData('filesChanged', {
inserted: File.all.getValues('data.filename')
});
},
createFile: function(filename){
File({
filename: filename,
content: ''
}).save();
},
readFile: function(filename){
var file = File(filename, true);

if (typeof file.data.content == 'string')
sendFile(file);
else
file.read();
},
saveFile: function(filename, content){
File({
filename: filename,
content: content
}).save();
},
isOpenFileSupported: function(){
return File.openFileSupported;
},
openFile: function(filename){
File.open(basis.path.resolve(filename.replace(/(:\d+:\d+):\d+:\d+$/, '$1')));
}
};
File renamed without changes.
101 changes: 5 additions & 96 deletions src/devpanel/api/file.js
Original file line number Diff line number Diff line change
@@ -1,98 +1,7 @@
var inspectBasis = require('devpanel').inspectBasis;
var inspectBasisTemplate = inspectBasis.require('basis.template');
var sendData = require('./transport.js').sendData;
var File = require('../basisjs-tools-sync.js').File;

function sendFile(file){
var data = {
filename: file.data.filename,
content: file.data.content
};

if (basis.path.extname(data.filename) == '.tmpl')
{
data.declaration = inspectBasisTemplate.makeDeclaration(
data.content,
basis.path.dirname(basis.path.resolve(data.filename)) + '/',
{},
data.filename
);
data.resources = data.declaration.resources.map(function(resource){
return resource.url;
});
// delete deps as it can has resource and ResourceWrapper which can't be serialized
data.declaration.deps = [];
data.declaration.includes = [];
module.exports = require('api').define('file', {
open: function(File){
return function(loc){
File.open(basis.path.resolve(loc.replace(/(:\d+:\d+):\d+:\d+$/, '$1')));
};
}

sendData('updateFile', data);
}

var FILE_HANDLER = {
update: function(object, delta){
if ('content' in delta && this.data.content !== null)
sendFile(this);
}
};
var FILE_LIST_HANDLER = {
itemsChanged: function(dataset, delta){
var data = {};

if (delta.inserted)
data.inserted = delta.inserted.map(function(item){
item.addHandler(FILE_HANDLER);
return item.data.filename;
});

if (delta.deleted)
data.deleted = delta.deleted.map(function(item){
item.removeHandler(FILE_HANDLER);
return item.data.filename;
});

if (data.inserted || data.deleted)
sendData('filesChanged', data);
}
};

File.all.addHandler(FILE_LIST_HANDLER);
File.all.forEach(function(file){
file.addHandler(FILE_HANDLER);
});

//
// exports
//
module.exports = {
getFileList: function(){
sendData('filesChanged', {
inserted: File.all.getValues('data.filename')
});
},
createFile: function(filename){
File({
filename: filename,
content: ''
}).save();
},
readFile: function(filename){
var file = File(filename, true);

if (typeof file.data.content == 'string')
sendFile(file);
else
file.read();
},
saveFile: function(filename, content){
File({
filename: filename,
content: content
}).save();
},
isOpenFileSupported: function(){
return File.openFileSupported;
},
openFile: function(filename){
File.open(basis.path.resolve(filename.replace(/(:\d+:\d+):\d+:\d+$/, '$1')));
}
};
7 changes: 0 additions & 7 deletions src/devpanel/api/file_.js

This file was deleted.

10 changes: 4 additions & 6 deletions src/devpanel/api/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,17 @@ var Value = require('basis.data').Value;
var api = {};

function createOutputChannel(ns, channel, send){
function sendData(data, callback){
function sendData(){
send({
type: ns,
payload: data
}, callback);
payload: channel.value
});
}

channel.link(null, sendData, true);

api[ns].channel = channel;
api[ns].init = api[ns].init || function(){
sendData(channel.value);
};
api[ns].init = api[ns].init || sendData;

return channel;
}
Expand Down
95 changes: 0 additions & 95 deletions src/devpanel/api/l10n.js

This file was deleted.

8 changes: 0 additions & 8 deletions src/devpanel/api/server.js

This file was deleted.

11 changes: 0 additions & 11 deletions src/devpanel/api/version.js

This file was deleted.

Loading

0 comments on commit e5e1738

Please sign in to comment.