@rightcapital/phpdoc-parser 0.6.2-renovate-lock-file-maintenance.2572.1.0 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -4
- package/dist/index.d.ts +0 -85
- package/dist/index.js +0 -182
- package/dist/phpdoc-parser/ast/abstract-node-visitor.d.ts +0 -8
- package/dist/phpdoc-parser/ast/abstract-node-visitor.js +0 -18
- package/dist/phpdoc-parser/ast/base-node.d.ts +0 -10
- package/dist/phpdoc-parser/ast/base-node.js +0 -27
- package/dist/phpdoc-parser/ast/comment.d.ts +0 -7
- package/dist/phpdoc-parser/ast/comment.js +0 -14
- package/dist/phpdoc-parser/ast/const-expr/const-expr-array-item-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/const-expr/const-expr-array-item-node.js +0 -21
- package/dist/phpdoc-parser/ast/const-expr/const-expr-array-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/const-expr/const-expr-array-node.js +0 -17
- package/dist/phpdoc-parser/ast/const-expr/const-expr-false-node.d.ts +0 -5
- package/dist/phpdoc-parser/ast/const-expr/const-expr-false-node.js +0 -13
- package/dist/phpdoc-parser/ast/const-expr/const-expr-float-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/const-expr/const-expr-float-node.js +0 -17
- package/dist/phpdoc-parser/ast/const-expr/const-expr-integer-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/const-expr/const-expr-integer-node.js +0 -17
- package/dist/phpdoc-parser/ast/const-expr/const-expr-node.d.ts +0 -23
- package/dist/phpdoc-parser/ast/const-expr/const-expr-node.js +0 -40
- package/dist/phpdoc-parser/ast/const-expr/const-expr-null-node.d.ts +0 -5
- package/dist/phpdoc-parser/ast/const-expr/const-expr-null-node.js +0 -13
- package/dist/phpdoc-parser/ast/const-expr/const-expr-string-node.d.ts +0 -11
- package/dist/phpdoc-parser/ast/const-expr/const-expr-string-node.js +0 -48
- package/dist/phpdoc-parser/ast/const-expr/const-expr-true-node.d.ts +0 -5
- package/dist/phpdoc-parser/ast/const-expr/const-expr-true-node.js +0 -13
- package/dist/phpdoc-parser/ast/const-expr/const-fetch-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/const-expr/const-fetch-node.js +0 -21
- package/dist/phpdoc-parser/ast/node-traverser.d.ts +0 -11
- package/dist/phpdoc-parser/ast/node-traverser.js +0 -216
- package/dist/phpdoc-parser/ast/node-visitor/cloning-visitor.d.ts +0 -5
- package/dist/phpdoc-parser/ast/node-visitor/cloning-visitor.js +0 -14
- package/dist/phpdoc-parser/ast/node-visitor.d.ts +0 -11
- package/dist/phpdoc-parser/ast/node-visitor.js +0 -2
- package/dist/phpdoc-parser/ast/node.d.ts +0 -6
- package/dist/phpdoc-parser/ast/node.js +0 -2
- package/dist/phpdoc-parser/ast/php-doc/assert-tag-method-value-node.d.ts +0 -13
- package/dist/phpdoc-parser/ast/php-doc/assert-tag-method-value-node.js +0 -24
- package/dist/phpdoc-parser/ast/php-doc/assert-tag-property-value-node.d.ts +0 -13
- package/dist/phpdoc-parser/ast/php-doc/assert-tag-property-value-node.js +0 -24
- package/dist/phpdoc-parser/ast/php-doc/assert-tag-value-node.d.ts +0 -12
- package/dist/phpdoc-parser/ast/php-doc/assert-tag-value-node.js +0 -23
- package/dist/phpdoc-parser/ast/php-doc/deprecated-tag-value-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/php-doc/deprecated-tag-value-node.js +0 -17
- package/dist/phpdoc-parser/ast/php-doc/extends-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/extends-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/generic-tag-value-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/php-doc/generic-tag-value-node.js +0 -17
- package/dist/phpdoc-parser/ast/php-doc/helpers.d.ts +0 -48
- package/dist/phpdoc-parser/ast/php-doc/helpers.js +0 -99
- package/dist/phpdoc-parser/ast/php-doc/implements-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/implements-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/invalid-tag-value-node.d.ts +0 -10
- package/dist/phpdoc-parser/ast/php-doc/invalid-tag-value-node.js +0 -33
- package/dist/phpdoc-parser/ast/php-doc/method-tag-value-node.d.ts +0 -15
- package/dist/phpdoc-parser/ast/php-doc/method-tag-value-node.js +0 -27
- package/dist/phpdoc-parser/ast/php-doc/method-tag-value-parameter-node.d.ts +0 -13
- package/dist/phpdoc-parser/ast/php-doc/method-tag-value-parameter-node.js +0 -27
- package/dist/phpdoc-parser/ast/php-doc/mixin-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/mixin-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/param-closure-this-tag-value-node.d.ts +0 -10
- package/dist/phpdoc-parser/ast/php-doc/param-closure-this-tag-value-node.js +0 -19
- package/dist/phpdoc-parser/ast/php-doc/param-immediately-invoked-callable-tag-value-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/php-doc/param-immediately-invoked-callable-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/param-later-invoked-callable-tag-value-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/php-doc/param-later-invoked-callable-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/param-out-tag-value-node.d.ts +0 -10
- package/dist/phpdoc-parser/ast/php-doc/param-out-tag-value-node.js +0 -19
- package/dist/phpdoc-parser/ast/php-doc/param-tag-value-node.d.ts +0 -12
- package/dist/phpdoc-parser/ast/php-doc/param-tag-value-node.js +0 -28
- package/dist/phpdoc-parser/ast/php-doc/php-doc-child-node.d.ts +0 -4
- package/dist/phpdoc-parser/ast/php-doc/php-doc-child-node.js +0 -10
- package/dist/phpdoc-parser/ast/php-doc/php-doc-node.d.ts +0 -36
- package/dist/phpdoc-parser/ast/php-doc/php-doc-node.js +0 -111
- package/dist/phpdoc-parser/ast/php-doc/php-doc-tag-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/php-doc-tag-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/php-doc-tag-value-node.d.ts +0 -4
- package/dist/phpdoc-parser/ast/php-doc/php-doc-tag-value-node.js +0 -10
- package/dist/phpdoc-parser/ast/php-doc/php-doc-text-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/php-doc/php-doc-text-node.js +0 -17
- package/dist/phpdoc-parser/ast/php-doc/property-tag-value-node.d.ts +0 -10
- package/dist/phpdoc-parser/ast/php-doc/property-tag-value-node.js +0 -19
- package/dist/phpdoc-parser/ast/php-doc/pure-unless-callable-is-impure-tag-value-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/php-doc/pure-unless-callable-is-impure-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/require-extends-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/require-extends-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/require-implements-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/require-implements-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/return-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/return-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/sealed-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/sealed-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/self-out-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/self-out-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/template-tag-value-node.d.ts +0 -12
- package/dist/phpdoc-parser/ast/php-doc/template-tag-value-node.js +0 -26
- package/dist/phpdoc-parser/ast/php-doc/throws-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/throws-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/type-alias-import-tag-value-node.d.ts +0 -10
- package/dist/phpdoc-parser/ast/php-doc/type-alias-import-tag-value-node.js +0 -22
- package/dist/phpdoc-parser/ast/php-doc/type-alias-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/type-alias-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/typeless-param-tag-value-node.d.ts +0 -10
- package/dist/phpdoc-parser/ast/php-doc/typeless-param-tag-value-node.js +0 -22
- package/dist/phpdoc-parser/ast/php-doc/uses-tag-value-node.d.ts +0 -9
- package/dist/phpdoc-parser/ast/php-doc/uses-tag-value-node.js +0 -18
- package/dist/phpdoc-parser/ast/php-doc/var-tag-value-node.d.ts +0 -10
- package/dist/phpdoc-parser/ast/php-doc/var-tag-value-node.js +0 -19
- package/dist/phpdoc-parser/ast/type/array-shape-item-node.d.ts +0 -13
- package/dist/phpdoc-parser/ast/type/array-shape-item-node.js +0 -22
- package/dist/phpdoc-parser/ast/type/array-shape-node.d.ts +0 -20
- package/dist/phpdoc-parser/ast/type/array-shape-node.js +0 -41
- package/dist/phpdoc-parser/ast/type/array-shape-unsealed-type-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/type/array-shape-unsealed-type-node.js +0 -21
- package/dist/phpdoc-parser/ast/type/array-type-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/type/array-type-node.js +0 -25
- package/dist/phpdoc-parser/ast/type/callable-type-node.d.ts +0 -13
- package/dist/phpdoc-parser/ast/type/callable-type-node.js +0 -26
- package/dist/phpdoc-parser/ast/type/callable-type-parameter-node.d.ts +0 -11
- package/dist/phpdoc-parser/ast/type/callable-type-parameter-node.js +0 -26
- package/dist/phpdoc-parser/ast/type/conditional-type-for-parameter-node.d.ts +0 -11
- package/dist/phpdoc-parser/ast/type/conditional-type-for-parameter-node.js +0 -21
- package/dist/phpdoc-parser/ast/type/conditional-type-node.d.ts +0 -11
- package/dist/phpdoc-parser/ast/type/conditional-type-node.js +0 -21
- package/dist/phpdoc-parser/ast/type/const-type-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/type/const-type-node.js +0 -17
- package/dist/phpdoc-parser/ast/type/generic-type-node.d.ts +0 -15
- package/dist/phpdoc-parser/ast/type/generic-type-node.js +0 -37
- package/dist/phpdoc-parser/ast/type/identifier-type-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/type/identifier-type-node.js +0 -17
- package/dist/phpdoc-parser/ast/type/intersection-type-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/type/intersection-type-node.js +0 -25
- package/dist/phpdoc-parser/ast/type/invalid-type-node.d.ts +0 -10
- package/dist/phpdoc-parser/ast/type/invalid-type-node.js +0 -29
- package/dist/phpdoc-parser/ast/type/nullable-type-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/type/nullable-type-node.js +0 -17
- package/dist/phpdoc-parser/ast/type/object-shape-item-node.d.ts +0 -11
- package/dist/phpdoc-parser/ast/type/object-shape-item-node.js +0 -22
- package/dist/phpdoc-parser/ast/type/object-shape-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/type/object-shape-node.js +0 -17
- package/dist/phpdoc-parser/ast/type/offset-access-type-node.d.ts +0 -8
- package/dist/phpdoc-parser/ast/type/offset-access-type-node.js +0 -26
- package/dist/phpdoc-parser/ast/type/this-type-node.d.ts +0 -5
- package/dist/phpdoc-parser/ast/type/this-type-node.js +0 -13
- package/dist/phpdoc-parser/ast/type/type-node.d.ts +0 -40
- package/dist/phpdoc-parser/ast/type/type-node.js +0 -64
- package/dist/phpdoc-parser/ast/type/union-type-node.d.ts +0 -7
- package/dist/phpdoc-parser/ast/type/union-type-node.js +0 -25
- package/dist/phpdoc-parser/ast/types.d.ts +0 -14
- package/dist/phpdoc-parser/ast/types.js +0 -19
- package/dist/phpdoc-parser/lexer/lexer.d.ts +0 -82
- package/dist/phpdoc-parser/lexer/lexer.js +0 -146
- package/dist/phpdoc-parser/parser/const-expr-parser.d.ts +0 -14
- package/dist/phpdoc-parser/parser/const-expr-parser.js +0 -132
- package/dist/phpdoc-parser/parser/node-collecting-visitor.d.ts +0 -7
- package/dist/phpdoc-parser/parser/node-collecting-visitor.js +0 -15
- package/dist/phpdoc-parser/parser/parser-exception.d.ts +0 -16
- package/dist/phpdoc-parser/parser/parser-exception.js +0 -44
- package/dist/phpdoc-parser/parser/php-doc-parser.d.ts +0 -49
- package/dist/phpdoc-parser/parser/php-doc-parser.js +0 -604
- package/dist/phpdoc-parser/parser/string-unescaper.d.ts +0 -6
- package/dist/phpdoc-parser/parser/string-unescaper.js +0 -41
- package/dist/phpdoc-parser/parser/token-iterator.d.ts +0 -44
- package/dist/phpdoc-parser/parser/token-iterator.js +0 -243
- package/dist/phpdoc-parser/parser/type-parser.d.ts +0 -47
- package/dist/phpdoc-parser/parser/type-parser.js +0 -706
- package/dist/phpdoc-parser/parser-config.d.ts +0 -10
- package/dist/phpdoc-parser/parser-config.js +0 -12
- package/dist/phpdoc-parser/printer/diff-elem.d.ts +0 -12
- package/dist/phpdoc-parser/printer/diff-elem.js +0 -19
- package/dist/phpdoc-parser/printer/differ.d.ts +0 -10
- package/dist/phpdoc-parser/printer/differ.js +0 -111
- package/dist/phpdoc-parser/printer/printer.d.ts +0 -20
- package/dist/phpdoc-parser/printer/printer.js +0 -612
- package/dist/phpdoc-parser/transpiler/helpers.d.ts +0 -10
- package/dist/phpdoc-parser/transpiler/helpers.js +0 -73
- package/dist/phpdoc-parser/transpiler/php-doc-to-typescript-type-transpiler.d.ts +0 -26
- package/dist/phpdoc-parser/transpiler/php-doc-to-typescript-type-transpiler.js +0 -122
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createSourceFileRoot = createSourceFileRoot;
|
|
4
|
-
exports.addStatementsToNode = addStatementsToNode;
|
|
5
|
-
exports.createImportDeclarationNode = createImportDeclarationNode;
|
|
6
|
-
exports.createExportDeclarationNode = createExportDeclarationNode;
|
|
7
|
-
exports.createInterfaceNode = createInterfaceNode;
|
|
8
|
-
exports.createCommentNode = createCommentNode;
|
|
9
|
-
exports.createEnumNode = createEnumNode;
|
|
10
|
-
exports.renderTsNodeToString = renderTsNodeToString;
|
|
11
|
-
exports.renderTsSourceFileToString = renderTsSourceFileToString;
|
|
12
|
-
const typescript_1 = require("typescript");
|
|
13
|
-
function createSourceFileRoot(fileName, sourceText = '', scriptTarget = typescript_1.ScriptTarget.Latest, scriptKind = typescript_1.ScriptKind.TS) {
|
|
14
|
-
const sourceFile = (0, typescript_1.createSourceFile)(fileName, sourceText, scriptTarget, true, scriptKind);
|
|
15
|
-
return sourceFile;
|
|
16
|
-
}
|
|
17
|
-
function addStatementsToNode(sourceFile, newStatements) {
|
|
18
|
-
const updatedStatements = typescript_1.factory.createNodeArray([
|
|
19
|
-
...sourceFile.statements,
|
|
20
|
-
...newStatements,
|
|
21
|
-
]);
|
|
22
|
-
return typescript_1.factory.updateSourceFile(sourceFile, updatedStatements);
|
|
23
|
-
}
|
|
24
|
-
function createImportDeclarationNode(symbols, filePath) {
|
|
25
|
-
const importClause = typescript_1.factory.createImportClause(true, undefined, typescript_1.factory.createNamedImports(symbols.map((symbol) => typescript_1.factory.createImportSpecifier(false, undefined, typescript_1.factory.createIdentifier(symbol)))));
|
|
26
|
-
const moduleSpecifier = typescript_1.factory.createStringLiteral(filePath);
|
|
27
|
-
const importDeclaration = typescript_1.factory.createImportDeclaration(undefined, importClause, moduleSpecifier);
|
|
28
|
-
return importDeclaration;
|
|
29
|
-
}
|
|
30
|
-
function createExportDeclarationNode(symbols, moduleSpecifierString) {
|
|
31
|
-
const exportSpecifiers = symbols.map((symbol) => typescript_1.factory.createExportSpecifier(false, undefined, typescript_1.factory.createIdentifier(symbol)));
|
|
32
|
-
const namedExports = typescript_1.factory.createNamedExports(exportSpecifiers);
|
|
33
|
-
const moduleSpecifier = moduleSpecifierString
|
|
34
|
-
? typescript_1.factory.createStringLiteral(moduleSpecifierString)
|
|
35
|
-
: undefined;
|
|
36
|
-
const exportDeclaration = typescript_1.factory.createExportDeclaration(undefined, false, namedExports, moduleSpecifier);
|
|
37
|
-
return exportDeclaration;
|
|
38
|
-
}
|
|
39
|
-
function createInterfaceNode(interfaceName, members = [], typeParameters = [], heritageClauses = []) {
|
|
40
|
-
const interfaceDeclaration = typescript_1.factory.createInterfaceDeclaration([typescript_1.factory.createModifier(typescript_1.SyntaxKind.ExportKeyword)], typescript_1.factory.createIdentifier(interfaceName), typeParameters, heritageClauses, members);
|
|
41
|
-
return interfaceDeclaration;
|
|
42
|
-
}
|
|
43
|
-
function createCommentNode(commentText, isMultiLine = true, hasTrailingNewLine = true) {
|
|
44
|
-
const emptyStatement = typescript_1.factory.createEmptyStatement();
|
|
45
|
-
let formattedCommentText;
|
|
46
|
-
if (isMultiLine) {
|
|
47
|
-
formattedCommentText = `*\n * ${commentText.split('\n').join('\n * ')}\n `;
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
formattedCommentText = commentText;
|
|
51
|
-
}
|
|
52
|
-
const emptyStatementWithComment = (0, typescript_1.addSyntheticLeadingComment)(emptyStatement, isMultiLine
|
|
53
|
-
? typescript_1.SyntaxKind.MultiLineCommentTrivia
|
|
54
|
-
: typescript_1.SyntaxKind.SingleLineCommentTrivia, formattedCommentText, hasTrailingNewLine);
|
|
55
|
-
return emptyStatementWithComment;
|
|
56
|
-
}
|
|
57
|
-
function createEnumNode(enumName, members, modifiers) {
|
|
58
|
-
const memberNodes = members.map(([key, value]) => typescript_1.factory.createEnumMember(key, typeof value === 'number'
|
|
59
|
-
? typescript_1.factory.createNumericLiteral(value)
|
|
60
|
-
: typescript_1.factory.createStringLiteral(value)));
|
|
61
|
-
const enumDeclaration = typescript_1.factory.createEnumDeclaration(modifiers.map((modifier) => typescript_1.factory.createToken(modifier)), typescript_1.factory.createIdentifier(enumName), memberNodes);
|
|
62
|
-
return enumDeclaration;
|
|
63
|
-
}
|
|
64
|
-
function renderTsNodeToString(tsNode) {
|
|
65
|
-
const printer = (0, typescript_1.createPrinter)({ newLine: typescript_1.NewLineKind.LineFeed });
|
|
66
|
-
const resultFile = createSourceFileRoot('temp.ts');
|
|
67
|
-
return printer.printNode(typescript_1.EmitHint.Unspecified, tsNode, resultFile);
|
|
68
|
-
}
|
|
69
|
-
function renderTsSourceFileToString(sourceFile) {
|
|
70
|
-
const printer = (0, typescript_1.createPrinter)({ newLine: typescript_1.NewLineKind.LineFeed });
|
|
71
|
-
const sourceFileContent = printer.printFile(sourceFile);
|
|
72
|
-
return sourceFileContent;
|
|
73
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { type ImportDeclaration, type TypeNode } from 'typescript';
|
|
2
|
-
import type { TypeNode as PhpDocTypeNode } from '../ast/type/type-node';
|
|
3
|
-
export type NameNodePathResolver<T> = (this: T, nodeParts: string[]) => {
|
|
4
|
-
path: string;
|
|
5
|
-
importName: string;
|
|
6
|
-
isTypeOnly: boolean;
|
|
7
|
-
typeIdentifiers: string[];
|
|
8
|
-
};
|
|
9
|
-
export declare class PhpDocTypeNodeToTypescriptTypeNodeTranspiler {
|
|
10
|
-
nameNodePathResolver: (nodeParts: string[]) => {
|
|
11
|
-
path: string;
|
|
12
|
-
importName: string;
|
|
13
|
-
isTypeOnly: boolean;
|
|
14
|
-
typeIdentifiers: string[];
|
|
15
|
-
};
|
|
16
|
-
constructor(nameNodePathResolver: (nodeParts: string[]) => {
|
|
17
|
-
path: string;
|
|
18
|
-
importName: string;
|
|
19
|
-
isTypeOnly: boolean;
|
|
20
|
-
typeIdentifiers: string[];
|
|
21
|
-
});
|
|
22
|
-
transpile(sourceTypeNode: PhpDocTypeNode): TypeNode;
|
|
23
|
-
beforeTranspile(): void;
|
|
24
|
-
getImportDeclarations(): ImportDeclaration[];
|
|
25
|
-
protected importDeclarations: ImportDeclaration[];
|
|
26
|
-
}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PhpDocTypeNodeToTypescriptTypeNodeTranspiler = void 0;
|
|
4
|
-
const typescript_1 = require("typescript");
|
|
5
|
-
const const_expr_string_node_1 = require("../ast/const-expr/const-expr-string-node");
|
|
6
|
-
const array_shape_node_1 = require("../ast/type/array-shape-node");
|
|
7
|
-
const array_type_node_1 = require("../ast/type/array-type-node");
|
|
8
|
-
const object_shape_node_1 = require("../ast/type/object-shape-node");
|
|
9
|
-
const union_type_node_1 = require("../ast/type/union-type-node");
|
|
10
|
-
class PhpDocTypeNodeToTypescriptTypeNodeTranspiler {
|
|
11
|
-
constructor(nameNodePathResolver) {
|
|
12
|
-
this.nameNodePathResolver = nameNodePathResolver;
|
|
13
|
-
}
|
|
14
|
-
transpile(sourceTypeNode) {
|
|
15
|
-
if (sourceTypeNode instanceof union_type_node_1.UnionTypeNode) {
|
|
16
|
-
return typescript_1.factory.createUnionTypeNode(sourceTypeNode.types.map(this.transpile.bind(this)));
|
|
17
|
-
}
|
|
18
|
-
if (sourceTypeNode instanceof array_type_node_1.ArrayTypeNode) {
|
|
19
|
-
return typescript_1.factory.createArrayTypeNode(this.transpile(sourceTypeNode.type));
|
|
20
|
-
}
|
|
21
|
-
if (sourceTypeNode instanceof array_shape_node_1.ArrayShapeNode) {
|
|
22
|
-
return typescript_1.factory.createTypeLiteralNode(sourceTypeNode.items.map((item) => {
|
|
23
|
-
const keyName = item.keyName instanceof const_expr_string_node_1.ConstExprStringNode
|
|
24
|
-
? item.keyName.value
|
|
25
|
-
: item.keyName.toString();
|
|
26
|
-
return typescript_1.factory.createPropertySignature(undefined, keyName, item.optional
|
|
27
|
-
? typescript_1.factory.createToken(typescript_1.SyntaxKind.QuestionToken)
|
|
28
|
-
: undefined, this.transpile(item.valueType));
|
|
29
|
-
}));
|
|
30
|
-
}
|
|
31
|
-
if (sourceTypeNode instanceof object_shape_node_1.ObjectShapeNode) {
|
|
32
|
-
return typescript_1.factory.createTypeLiteralNode(sourceTypeNode.items.map((item) => {
|
|
33
|
-
const keyName = item.keyName instanceof const_expr_string_node_1.ConstExprStringNode
|
|
34
|
-
? item.keyName.value
|
|
35
|
-
: item.keyName.toString();
|
|
36
|
-
return typescript_1.factory.createPropertySignature(undefined, keyName, item.optional
|
|
37
|
-
? typescript_1.factory.createToken(typescript_1.SyntaxKind.QuestionToken)
|
|
38
|
-
: undefined, this.transpile(item.valueType));
|
|
39
|
-
}));
|
|
40
|
-
}
|
|
41
|
-
if (sourceTypeNode.isGenericTypeNode()) {
|
|
42
|
-
if ([
|
|
43
|
-
'array',
|
|
44
|
-
'non-empty-array',
|
|
45
|
-
'list',
|
|
46
|
-
'non-empty-list',
|
|
47
|
-
'\\Illuminate\\Support\\Collection',
|
|
48
|
-
'\\Illuminate\\Database\\Eloquent\\Collection',
|
|
49
|
-
].includes(sourceTypeNode.type.name)) {
|
|
50
|
-
if (sourceTypeNode.genericTypes.length === 1) {
|
|
51
|
-
return typescript_1.factory.createArrayTypeNode(this.transpile(sourceTypeNode.genericTypes[0]));
|
|
52
|
-
}
|
|
53
|
-
if (sourceTypeNode.genericTypes.length === 2) {
|
|
54
|
-
if (sourceTypeNode.genericTypes[0].isIdentifierTypeNode() &&
|
|
55
|
-
['int', 'integer', 'float', 'double'].includes(sourceTypeNode.genericTypes[0].name)) {
|
|
56
|
-
return typescript_1.factory.createArrayTypeNode(this.transpile(sourceTypeNode.genericTypes[1]));
|
|
57
|
-
}
|
|
58
|
-
return typescript_1.factory.createTypeReferenceNode(typescript_1.factory.createIdentifier('Record'), [
|
|
59
|
-
this.transpile(sourceTypeNode.genericTypes[0]),
|
|
60
|
-
this.transpile(sourceTypeNode.genericTypes[1]),
|
|
61
|
-
]);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
throw Error('Not yet supported Generic type so far');
|
|
65
|
-
}
|
|
66
|
-
if (sourceTypeNode.isIdentifierTypeNode()) {
|
|
67
|
-
if (['bool', 'boolean', 'true', 'false'].includes(sourceTypeNode.name)) {
|
|
68
|
-
return typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.BooleanKeyword);
|
|
69
|
-
}
|
|
70
|
-
if (['int', 'integer', 'float', 'double'].includes(sourceTypeNode.name)) {
|
|
71
|
-
return typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.NumberKeyword);
|
|
72
|
-
}
|
|
73
|
-
if (sourceTypeNode.name === 'string') {
|
|
74
|
-
return typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.StringKeyword);
|
|
75
|
-
}
|
|
76
|
-
if (sourceTypeNode.name === 'array-key') {
|
|
77
|
-
return typescript_1.factory.createUnionTypeNode([
|
|
78
|
-
typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.StringKeyword),
|
|
79
|
-
typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.NumberKeyword),
|
|
80
|
-
]);
|
|
81
|
-
}
|
|
82
|
-
if (sourceTypeNode.name === 'scalar') {
|
|
83
|
-
return typescript_1.factory.createUnionTypeNode([
|
|
84
|
-
typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.StringKeyword),
|
|
85
|
-
typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.NumberKeyword),
|
|
86
|
-
typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.BooleanKeyword),
|
|
87
|
-
]);
|
|
88
|
-
}
|
|
89
|
-
if (sourceTypeNode.name === 'mixed') {
|
|
90
|
-
typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.AnyKeyword);
|
|
91
|
-
}
|
|
92
|
-
if (sourceTypeNode.name === 'void') {
|
|
93
|
-
return typescript_1.factory.createToken(typescript_1.SyntaxKind.VoidKeyword);
|
|
94
|
-
}
|
|
95
|
-
if (['\\Illuminate\\Http\\Resources\\MissingValue', 'null'].includes(sourceTypeNode.name)) {
|
|
96
|
-
return typescript_1.factory.createLiteralTypeNode(typescript_1.factory.createNull());
|
|
97
|
-
}
|
|
98
|
-
if (/^[A-Z\\]/.test(sourceTypeNode.name)) {
|
|
99
|
-
const nameNodeParts = sourceTypeNode.name.split('\\');
|
|
100
|
-
const { path, isTypeOnly, importName, typeIdentifiers } = this.nameNodePathResolver(nameNodeParts);
|
|
101
|
-
if (importName !== 'string' && path !== '') {
|
|
102
|
-
this.importDeclarations.push(typescript_1.factory.createImportDeclaration(undefined, typescript_1.factory.createImportClause(isTypeOnly, undefined, typescript_1.factory.createNamedImports([
|
|
103
|
-
typescript_1.factory.createImportSpecifier(false, undefined, typescript_1.factory.createIdentifier(importName)),
|
|
104
|
-
])), typescript_1.factory.createStringLiteral(path), undefined));
|
|
105
|
-
}
|
|
106
|
-
let typeNameNode = typescript_1.factory.createIdentifier(typeIdentifiers[0]);
|
|
107
|
-
for (let i = 1; i < typeIdentifiers.length; i += 1) {
|
|
108
|
-
typeNameNode = typescript_1.factory.createQualifiedName(typeNameNode, typescript_1.factory.createIdentifier(typeIdentifiers[i]));
|
|
109
|
-
}
|
|
110
|
-
return typescript_1.factory.createTypeReferenceNode(typeNameNode, undefined);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return typescript_1.factory.createKeywordTypeNode(typescript_1.SyntaxKind.AnyKeyword);
|
|
114
|
-
}
|
|
115
|
-
beforeTranspile() {
|
|
116
|
-
this.importDeclarations = [];
|
|
117
|
-
}
|
|
118
|
-
getImportDeclarations() {
|
|
119
|
-
return this.importDeclarations;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
exports.PhpDocTypeNodeToTypescriptTypeNodeTranspiler = PhpDocTypeNodeToTypescriptTypeNodeTranspiler;
|