Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rightcapitalhq/php-parser
TypeScript types for PHP Parser JSON representation
https://github.com/rightcapitalhq/php-parser
ast parser php php-parser phpparser static-analysis static-analyzer typescript
Last synced: 3 months ago
JSON representation
TypeScript types for PHP Parser JSON representation
- Host: GitHub
- URL: https://github.com/rightcapitalhq/php-parser
- Owner: RightCapitalHQ
- License: mit
- Created: 2023-08-24T06:39:04.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-29T17:55:35.000Z (3 months ago)
- Last Synced: 2024-10-29T19:09:20.082Z (3 months ago)
- Topics: ast, parser, php, php-parser, phpparser, static-analysis, static-analyzer, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@rightcapital/php-parser
- Size: 565 KB
- Stars: 3
- Watchers: 6
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.json
- License: LICENSE
Awesome Lists containing this project
README
# TypeScript types for PHP Parser JSON representation
[![made by RightCapital](https://img.shields.io/badge/made_by-RightCapital-5070e6)](https://rightcapital.com)
![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/RightCapitalHQ/php-parser/ci.yml)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)
[![RightCapital frontend style guide](https://img.shields.io/badge/code_style-RightCapital-5c4c64?labelColor=f0ede8)](https://github.com/RightCapitalHQ/frontend-style-guide)# Introduction
This NPM package is focusing on providing to following abilities:
- A TypeScript/JavaScript wrapper for calling nikic's PHP-Parser
- Sort of auto generated type definitions to annotate the AST (represented as JSON) from nikic's PHP-Parser cli
- Some util/helper functions to easily retrieving proper PHP AST node with correct type annotation# Installation
This package needs you have PHP with composer installed first
```bash
# pnpm
pnpm add @rightcapital/php-parser
# yarn
yarn add @rightcapital/php-parser
# npm
npm install --save @rightcapital/php-parser
```# Basic Usage
Supposed you have a PHP file named `hello.php` with the following content
```php
(
rootNodes,
NodeType.Stmt_Echo,
);// Get the specified node with type annotation
console.log(echoNode);
// {
// nodeType: 'Stmt_Echo',
// attributes: { startLine: 2, startFilePos: 6, endLine: 2, endTokenPos: 4, endFilePos: 18 },
// exprs: [
// { nodeType: 'Scalar_String', attributes: [Object], value: 'Hello' }
// ]
// }const scalarStringNode =
NodeRetrieverHelpers.findNodeByNodeType(
echoNode!.exprs,
NodeType.Scalar_String,
);
console.log(scalarStringNode?.value);
// Hello
```## License
MIT License © 2023-Present