twp-editor-plugin-schematics v1.2.3
TWP Editor Plugin Schematics
CLI tool to automate scaffolding a new TWP editor plugin in the atlassian-frontend repo, as well as running codemods to update necessary files.
Angular Schematics is used to achieve this.
License
Apache 2.0, see LICENSE.
Contributing
If you wish to contribute to this project, either create a GitHub issue or follow the usual fork/pull request workflow. Please see below for development instructions.
Usage
Install globally:
yarn global add twp-editor-plugin-schematicsAnd then run in the root directory of the Atlassian Frontend repo:
~/atlassian-frontend$ editor-pluginYou will be prompted to answer a list of questions about your new plugin and then it will output a list of all the generated and updated files once completed 🚀
Development
Setup
Install schematics CLI tool globally:
yarn global add @angular-devkit/schematics-cliAnd then set up the repo:
~$ git checkout git@github.com:timhor/editor-plugin-schematics.git
~/editor-plugin-schematics$ yarnRunning locally
First you will need to set up a file system to mimic being in the root directory of atlassian-frontend:
~/editor-plugin-schematics$ yarn simulate:localThen you can build the project and run the schematics:
~/editor-plugin-schematics$ yarn twp-editor-pluginYou can also pass through any general schematics options or options specific to our collection using flags:
~/editor-plugin-schematics$ yarn twp-editor-plugin --dry-run=false
~/editor-plugin-schematics$ yarn twp-editor-plugin --name="my awesome plugin"Running locally in Atlassian Frontend
You can run your local version against the atlassian-frontend repo, if you want to check that the integration works correctly.
First link via yarn to get the editor-plugin binary pointing to your local project:
~/editor-plugin-schematics$ yarn linkThen in the atlassian-frontend repo you can just run:
~/atlassian-frontend$ editor-pluginAnd it will point to your local editor-plugin-schematics project.
Remember to build the project (yarn build in editor-plugin-schematics) after you make changes.
Working with TypeScript AST
- https://ts-ast-viewer.com/#
- https://ts-morph.com/navigation/
- https://medium.com/humanitec-developers/update-and-insert-auto-generated-code-to-existing-typescript-html-and-json-files-with-angular-f0b00f22fb52
Testing
Tests are written using Jest, run them using:
yarn test