add identifier keyword
This commit is contained in:
Родитель
a5f816837f
Коммит
d024aedb91
|
@ -1,6 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
const _ = require('lodash');
|
||||
const identifier = require('./identifier');
|
||||
|
||||
var escape = function(s, noquote)
|
||||
{
|
||||
|
@ -11,6 +12,12 @@ var escape = function(s, noquote)
|
|||
return `'${s.replace(/\'/g, "''")}'`;
|
||||
}
|
||||
}
|
||||
if(s instanceof identifier) {
|
||||
return escape(s.toString(), true);
|
||||
}
|
||||
if(_.isNull(s)) {
|
||||
return 'null';
|
||||
}
|
||||
if(_.isArray(s)) {
|
||||
var els = _.map(s, function(el) {
|
||||
return `${escape(el)}`;
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
'use strict';
|
||||
|
||||
var Identifier = function(s)
|
||||
{
|
||||
this.s = s;
|
||||
return this;
|
||||
};
|
||||
|
||||
Identifier.prototype.toString = function()
|
||||
{
|
||||
return this.s.toString();
|
||||
};
|
||||
|
||||
module.exports = Identifier;
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
const escape = require('../escape');
|
||||
const identifier = require('../identifier');
|
||||
|
||||
describe('escape value tests', function() {
|
||||
|
||||
|
@ -16,6 +17,10 @@ describe('escape value tests', function() {
|
|||
expect(escape(3.1)).toEqual('3.1');
|
||||
});
|
||||
|
||||
it('should escape null', function() {
|
||||
expect(escape(null)).toEqual('null');
|
||||
});
|
||||
|
||||
it('should escape [1,\'2\']', function() {
|
||||
expect(escape([1,'2'])).toEqual('[1,\'2\']');
|
||||
});
|
||||
|
@ -28,5 +33,9 @@ describe('escape value tests', function() {
|
|||
expect(escape({a:'\'text\'',b:{c:6,d:'\'string\''}})).toEqual('{a:\'\'\'text\'\'\',b:{c:6,d:\'\'\'string\'\'\'}}');
|
||||
});
|
||||
|
||||
it('should escape identifier(\'a\')', function() {
|
||||
expect(escape(new identifier('a'))).toEqual('a');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче