Skip to content
/ gogocode Public

GoGoCode is a transformer for JavaScript/Typescript/HTML based on AST but providing a more intuitive API.

License

Notifications You must be signed in to change notification settings

thx/gogocode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6b94d4d · Apr 11, 2024
Oct 20, 2021
Feb 29, 2024
May 21, 2021
Feb 29, 2024
Jun 25, 2021
Feb 21, 2022
Jun 30, 2021
Jul 5, 2021
Jul 6, 2021
Mar 3, 2021
Oct 29, 2021
Apr 11, 2024
Feb 22, 2022
Mar 3, 2021
Feb 21, 2022

Repository files navigation

Code transform has never been easier: GoGoCode

npm version license

详细文档点击这里

What is GoGoCode?

中文 README

GoGoCode is a transformer for JavaScript/Typescript/HTML based on AST but providing an intuitive API:

  • A jQuery-like API to select and transform AST.
  • A Regex-like syntax to match and replace code.

Learn more at GoGoCode Document

Intro

Let's show you how to select and modify code with our API

In

const a = 1;
const b = 2;

Transform With GoGoCode

const $ = require('gogocode');
const script = $(source);
// use $_$ as a wildcard to match AST element at any position you want
const aAssignment = script.find('const a = $_$');
// get matched AST element value
const aValue = aAssignment.match?.[0]?.[0]?.value;
// replace AST as same as replace a string
// but ignore code format (space、indent or linebreak)
script.replace('const b = $_$', `const b = ${aValue}`);
// generate ast to string
const outCode = script.generate();

Out

const a = 1;
const b = 1;

Related Project

Project Description
gogocode-plugin-vue transform a project from vue2 to vue3
gogocode-plugin-element transform a project from ElementUI to ElementPlus
gogocode-cli command-line tool for gogocode
gogocode-playground test gogocode at browser instantly
gogocode-vscode refactor your project with gogocode in vscode

Support

  • issues
  • Ding Group:34266233
  • QQ Group:735216094

License

MIT

About

GoGoCode is a transformer for JavaScript/Typescript/HTML based on AST but providing a more intuitive API.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages