版博士V2.0程序
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

157 行
3.7 KiB

  1. const $ = require('../index');
  2. const less = ($.loadFile('packages/gogocode-core/demo/tryout/input.less')).src;
  3. const html = $.loadFile('packages/gogocode-core/demo/html/input.html', {
  4. parseOptions: { html: true }
  5. });
  6. const res = html.append(`<style>\n${less}\n</style>`).generate();
  7. $.writeFile(res, 'packages/gogocode-core/demo/html/output.html');
  8. const argKeys = [
  9. 'color',
  10. 'make',
  11. 'model',
  12. 'year',
  13. 'miles',
  14. 'bedliner',
  15. 'alarm'
  16. ];
  17. const argObj = {};
  18. const result = $(`
  19. const moment = require('moment')
  20. var aa = 1;
  21. const bb = 2;
  22. function log (x, y = 'World') {
  23. console.log(x, y);
  24. }
  25. import a from 'a';
  26. console.log('get A');
  27. var b = console.log();
  28. console.log.bind();
  29. var c = console.log;
  30. console.log = func;
  31. import car from 'car';
  32. const suv = car.factory('white', 'Kia', 'Sorento', 2010, 50000, null, true);
  33. const truck = car.factory(
  34. 'silver',
  35. 'Toyota',
  36. 'Tacoma',
  37. 2006,
  38. 100000,
  39. true,
  40. true
  41. );
  42. `)
  43. .replace('const $_$ = require($_$)', 'import $_$ from $_$')
  44. // .find(`function $_$() {}`)
  45. .find('var aa = $_$')
  46. .attr('declarations.0.id.name', 'c')
  47. .root()
  48. .replace(`var $_$ = console.log()`, `var $_$ = void 0`)
  49. .replace(`var $_$ = console.log`, `var $_$ = function(){}`)
  50. .find(`console.log()`)
  51. .remove()
  52. .find('const $_$ = car.factory($_$)', { ignoreSequence: true })
  53. .each((item, i) => {
  54. const variableName = item.match.shift().value;
  55. item.match.forEach((match, j) => {
  56. argObj[argKeys[j]] = item.match[j].value;
  57. });
  58. item.replaceBy(
  59. $(`const ${variableName} = car.factory(${JSON.stringify(argObj)})`)
  60. );
  61. })
  62. .root()
  63. .generate();
  64. result;
  65. const replacer = $(`function a (am, x, b, {s = 1}) {} var a = 1;
  66. var d = { c: 1, s: 2, m: { c : 'c'}}`).find('b');
  67. const ast = $(`
  68. function a (am, x, bm, {s = 1}) {
  69. var asa = 1
  70. }
  71. var a = 1;
  72. var d = { c: 1, s: 2, m: { c : 'c'}}
  73. if (Tryout.TRYOUT_SID_212 && (sceneId === 1 || (Tryout.TRYOUT_SID_305 && sceneId === 4))) {
  74. curTab = 'new';
  75. var a = 1
  76. }
  77. `);
  78. const ifState = ast.find(`if($_$) {$_$}`);
  79. ast.attr('program.body.0.params.0.name');
  80. const attrDemo2 = ast.attr('program.body.0.params.0.name', 'bm');
  81. // ifState.replaceBy($(ifState.node.consequent))
  82. const removeDemo = ifState.remove();
  83. const removeSelDemo = ast.remove(`if($_$) {$_$}`);
  84. const findDemo = ast.find('x');
  85. const hasDemo = ast.find('$_$').has('a');
  86. const replaceDemo = ast.replace('m', replacer).root().generate();
  87. const replaceDemo2 = ast.replace('c', 'b').root().generate();
  88. const eachDemo = ast
  89. .find('s')
  90. .each((item, i) => {
  91. item.replaceBy('b');
  92. })
  93. .root()
  94. .generate();
  95. const replaceByDemo = ast.find('bm').replaceBy(replacer).root().generate();
  96. const eqDemo = ast.find('a').eq(1);
  97. const parentDemo = ast.find('a').parent();
  98. const parentsDemo = ast.find('a').parents();
  99. const siblingsDemo = ast.find('a').siblings();
  100. const nextAllDemo = ast.find('a').nextAll();
  101. const cloneDemo = ast.find('a').clone();
  102. const cloneRootDemo = ast.clone();
  103. const beforeDemo = ast.find('x').before(replacer).root().generate();
  104. const tryout = $(`
  105. var a = {
  106. s: 2,
  107. ss: true,
  108. cxko: { as: '22' },
  109. try: Tryout.TRYOUT_SID_391
  110. }
  111. `).find(`$_$: $_$`)
  112. const appendDemo = ast
  113. .find('function $_$() {}')
  114. .append('body', 'var bbbb = 1;')
  115. .root()
  116. .generate();
  117. const prependDemo = ast
  118. .find('function $_$() {}')
  119. .prepend('body', 'var cbbbb = 1;')
  120. .root()
  121. .generate();
  122. var sc = $(`<script type="text/javascript" src="./test.js">ssss</script>
  123. <div>test</div>`, { parseOptions: { html: true } }).generate()
  124. var a = 1;