@codenotch/codenotch.cli 1.0.35 → 1.0.37
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/README.md +2 -2
- package/dist/commands/generate/app.d.ts +2 -0
- package/dist/commands/generate/app.js +45 -0
- package/dist/commands/generate/app.js.map +1 -0
- package/dist/commands/generate/appmanifest.d.ts +2 -0
- package/dist/commands/generate/appmanifest.js +34 -0
- package/dist/commands/generate/appmanifest.js.map +1 -0
- package/dist/commands/generate/dbcontext.d.ts +2 -0
- package/dist/commands/generate/dbcontext.js +32 -0
- package/dist/commands/generate/dbcontext.js.map +1 -0
- package/dist/commands/generate/i18n.d.ts +2 -0
- package/dist/commands/generate/i18n.js +29 -0
- package/dist/commands/generate/i18n.js.map +1 -0
- package/dist/commands/generate/index.d.ts +2 -0
- package/dist/commands/generate/index.js +23 -0
- package/dist/commands/generate/index.js.map +1 -0
- package/dist/commands/generate/manifest.d.ts +2 -0
- package/dist/commands/generate/manifest.js +29 -0
- package/dist/commands/generate/manifest.js.map +1 -0
- package/dist/commands/generate/openapi.d.ts +2 -0
- package/dist/commands/generate/openapi.js +32 -0
- package/dist/commands/generate/openapi.js.map +1 -0
- package/dist/commands/generate/pkg.d.ts +2 -0
- package/dist/commands/generate/pkg.js +34 -0
- package/dist/commands/generate/pkg.js.map +1 -0
- package/dist/commands/generate/shared.d.ts +17 -0
- package/dist/commands/generate/shared.js +70 -0
- package/dist/commands/generate/shared.js.map +1 -0
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/project/new.js +107 -187
- package/dist/commands/project/new.js.map +1 -1
- package/dist/commands/react/build.js +11 -5
- package/dist/commands/react/build.js.map +1 -1
- package/dist/commands/react/clean.d.ts +2 -0
- package/dist/commands/react/clean.js +46 -0
- package/dist/commands/react/clean.js.map +1 -0
- package/dist/commands/react/dev.d.ts +2 -0
- package/dist/commands/react/dev.js +27 -0
- package/dist/commands/react/dev.js.map +1 -0
- package/dist/commands/react/index.js +5 -1
- package/dist/commands/react/index.js.map +1 -1
- package/dist/commands/react/serve.js +33 -4
- package/dist/commands/react/serve.js.map +1 -1
- package/dist/commands/react/shared.d.ts +21 -0
- package/dist/commands/react/shared.js +80 -0
- package/dist/commands/react/shared.js.map +1 -0
- package/dist/commands/system/info.js +0 -7
- package/dist/commands/system/info.js.map +1 -1
- package/dist/commands/validation/ValidationUtils.d.ts +3 -13
- package/dist/commands/validation/ValidationUtils.js +5 -58
- package/dist/commands/validation/ValidationUtils.js.map +1 -1
- package/dist/commands/validation/files/AppManifestValidator.js +5 -20
- package/dist/commands/validation/files/AppManifestValidator.js.map +1 -1
- package/dist/commands/validation/files/I18nValidator.d.ts +24 -0
- package/dist/commands/validation/files/I18nValidator.js +190 -5
- package/dist/commands/validation/files/I18nValidator.js.map +1 -1
- package/dist/commands/validation/files/{BpmnValidator.d.ts → ProjectManifestValidator.d.ts} +1 -1
- package/dist/commands/validation/files/ProjectManifestValidator.js +31 -0
- package/dist/commands/validation/files/ProjectManifestValidator.js.map +1 -0
- package/dist/commands/validation/files/ScriptValidator.d.ts +6 -2
- package/dist/commands/validation/files/ScriptValidator.js +1 -1
- package/dist/commands/validation/files/ScriptValidator.js.map +1 -1
- package/dist/commands/validation/validate.js +15 -46
- package/dist/commands/validation/validate.js.map +1 -1
- package/dist/models/Codenotch.d.ts +0 -205
- package/dist/models/Codenotch.js +0 -211
- package/dist/models/Codenotch.js.map +1 -1
- package/dist/utils/BuildUtils.d.ts +66 -28
- package/dist/utils/BuildUtils.js +292 -330
- package/dist/utils/BuildUtils.js.map +1 -1
- package/dist/utils/ConsoleUtils.d.ts +13 -0
- package/dist/utils/ConsoleUtils.js +50 -0
- package/dist/utils/ConsoleUtils.js.map +1 -1
- package/dist/utils/DbSchemaUtils.d.ts +49 -0
- package/dist/utils/DbSchemaUtils.js +246 -0
- package/dist/utils/DbSchemaUtils.js.map +1 -0
- package/dist/utils/FileUtils.d.ts +104 -15
- package/dist/utils/FileUtils.js +285 -100
- package/dist/utils/FileUtils.js.map +1 -1
- package/dist/utils/GitHubAuthUtils.js.map +1 -1
- package/dist/utils/I18nTsUtils.d.ts +66 -0
- package/dist/utils/I18nTsUtils.js +221 -0
- package/dist/utils/I18nTsUtils.js.map +1 -0
- package/dist/utils/ManifestUtils.d.ts +24 -0
- package/dist/utils/ManifestUtils.js +53 -0
- package/dist/utils/ManifestUtils.js.map +1 -0
- package/dist/utils/OpenApiUtils.d.ts +81 -0
- package/dist/utils/OpenApiUtils.js +123 -0
- package/dist/utils/OpenApiUtils.js.map +1 -0
- package/dist/utils/ProjectCompilationUtils.d.ts +3 -30
- package/dist/utils/ProjectCompilationUtils.js +26 -760
- package/dist/utils/ProjectCompilationUtils.js.map +1 -1
- package/dist/utils/ProjectGeneratorUtils.d.ts +35 -0
- package/dist/utils/ProjectGeneratorUtils.js +119 -0
- package/dist/utils/ProjectGeneratorUtils.js.map +1 -0
- package/dist/utils/ProjectTemplates.d.ts +102 -0
- package/dist/utils/ProjectTemplates.js +284 -0
- package/dist/utils/ProjectTemplates.js.map +1 -0
- package/dist/utils/ProjectUtils.d.ts +217 -4
- package/dist/utils/ProjectUtils.js +386 -50
- package/dist/utils/ProjectUtils.js.map +1 -1
- package/dist/utils/RuntimeUtils.js +14 -8
- package/dist/utils/RuntimeUtils.js.map +1 -1
- package/dist/utils/ScriptDeclarationUtils.d.ts +169 -0
- package/dist/utils/ScriptDeclarationUtils.js +398 -0
- package/dist/utils/ScriptDeclarationUtils.js.map +1 -0
- package/dist/utils/ServeUtils.d.ts +0 -1
- package/dist/utils/ServeUtils.js +11 -29
- package/dist/utils/ServeUtils.js.map +1 -1
- package/dist/utils/ShellUtils.d.ts +6 -0
- package/dist/utils/ShellUtils.js +13 -0
- package/dist/utils/ShellUtils.js.map +1 -1
- package/dist/utils/TemplateUtils.d.ts +62 -0
- package/dist/utils/TemplateUtils.js +218 -0
- package/dist/utils/TemplateUtils.js.map +1 -0
- package/dist/utils/TypeSchemaUtils.d.ts +42 -0
- package/dist/utils/TypeSchemaUtils.js +171 -0
- package/dist/utils/TypeSchemaUtils.js.map +1 -0
- package/package.json +3 -3
- package/dist/commands/validation/files/BpmnValidator.js +0 -32
- package/dist/commands/validation/files/BpmnValidator.js.map +0 -1
- package/dist/commands/validation/files/DbSchemaValidator.d.ts +0 -5
- package/dist/commands/validation/files/DbSchemaValidator.js +0 -16
- package/dist/commands/validation/files/DbSchemaValidator.js.map +0 -1
- package/dist/commands/validation/files/DocumentValidator.d.ts +0 -5
- package/dist/commands/validation/files/DocumentValidator.js +0 -12
- package/dist/commands/validation/files/DocumentValidator.js.map +0 -1
- package/dist/commands/validation/files/ManifestCacheValidator.d.ts +0 -5
- package/dist/commands/validation/files/ManifestCacheValidator.js +0 -121
- package/dist/commands/validation/files/ManifestCacheValidator.js.map +0 -1
- package/dist/commands/validation/files/ManifestValidator.d.ts +0 -5
- package/dist/commands/validation/files/ManifestValidator.js +0 -14
- package/dist/commands/validation/files/ManifestValidator.js.map +0 -1
- package/dist/commands/validation/files/TableValidator.d.ts +0 -5
- package/dist/commands/validation/files/TableValidator.js +0 -19
- package/dist/commands/validation/files/TableValidator.js.map +0 -1
- package/dist/models/DbModels.d.ts +0 -221
- package/dist/models/DbModels.js +0 -130
- package/dist/models/DbModels.js.map +0 -1
- package/dist/models/OpenApiModels.d.ts +0 -115
- package/dist/models/OpenApiModels.js +0 -103
- package/dist/models/OpenApiModels.js.map +0 -1
- package/dist/utils/I18nUtils.d.ts +0 -9
- package/dist/utils/I18nUtils.js +0 -54
- package/dist/utils/I18nUtils.js.map +0 -1
- package/dist/utils/OpenAPIUtils.d.ts +0 -33
- package/dist/utils/OpenAPIUtils.js +0 -279
- package/dist/utils/OpenAPIUtils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeUtils.js","sourceRoot":"","sources":["../../src/utils/RuntimeUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RuntimeUtils.js","sourceRoot":"","sources":["../../src/utils/RuntimeUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { IJsonSchema } from './TypeSchemaUtils';
|
|
2
|
+
/** A value written as a literal in the source, so known without running anything */
|
|
3
|
+
export type LiteralValue = string | number | boolean | null | LiteralValue[] | {
|
|
4
|
+
[key: string]: LiteralValue;
|
|
5
|
+
};
|
|
6
|
+
/** One call of a chain, e.g. `.default('')` in `p.text().default('')` */
|
|
7
|
+
export interface ICallStep {
|
|
8
|
+
/** Called member, e.g. 'text' then 'default'. Equal to the root when the root itself is called, as in `timer('...')` */
|
|
9
|
+
name: string;
|
|
10
|
+
/** Arguments written as literals, e.g. [''] */
|
|
11
|
+
arguments: LiteralValue[];
|
|
12
|
+
/** True when at least one argument is computed, so `arguments` is incomplete */
|
|
13
|
+
hasComputedArguments: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A property whose value is a call or a chain of calls, e.g. `trigger: api.post('/books')`
|
|
17
|
+
* or `id: p.integer().primary()`
|
|
18
|
+
*/
|
|
19
|
+
export interface IPropertyCall {
|
|
20
|
+
/** Name the chain starts from, under its module name ('api', 'p', 'timer'), empty for a namespace import */
|
|
21
|
+
root: string;
|
|
22
|
+
/** Calls applied to the root, in source order */
|
|
23
|
+
steps: ICallStep[];
|
|
24
|
+
/** Whole chain as a name: 'api.post', 'timer', 'p.integer.primary' */
|
|
25
|
+
callee: string;
|
|
26
|
+
/** Arguments of the last call of the chain, the ones that usually carry the value */
|
|
27
|
+
arguments: LiteralValue[];
|
|
28
|
+
/** True when at least one argument of the chain is computed */
|
|
29
|
+
hasComputedArguments: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** A parameter of a function property, e.g. `input: { title: string }` */
|
|
32
|
+
export interface IFunctionParameter {
|
|
33
|
+
name: string;
|
|
34
|
+
/** Schema of its type annotation, undefined when the parameter has none */
|
|
35
|
+
schema?: IJsonSchema;
|
|
36
|
+
/** Type annotation as written, for messages */
|
|
37
|
+
typeText?: string;
|
|
38
|
+
isOptional: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A property whose value is a function, e.g. `run: async (ctx, input) => { ... }`.
|
|
42
|
+
* Only the signature is read, the body is never looked at.
|
|
43
|
+
*/
|
|
44
|
+
export interface IFunctionSignature {
|
|
45
|
+
parameters: IFunctionParameter[];
|
|
46
|
+
/** Schema of the declared return type, `Promise<T>` unwrapped. Undefined when the function declares none */
|
|
47
|
+
returnSchema?: IJsonSchema;
|
|
48
|
+
returnTypeText?: string;
|
|
49
|
+
isAsync: boolean;
|
|
50
|
+
}
|
|
51
|
+
/** An `export type IUser = InferEntity<typeof User>` alias */
|
|
52
|
+
export interface ITypeAlias {
|
|
53
|
+
/** Name of the alias, e.g. 'IUser' */
|
|
54
|
+
name: string;
|
|
55
|
+
/** True when the alias is exported, which it must be to be imported elsewhere */
|
|
56
|
+
isExported: boolean;
|
|
57
|
+
/** Helper it is built with, under its module name, e.g. 'InferEntity' */
|
|
58
|
+
helper: string;
|
|
59
|
+
/** Variable it refers to through 'typeof', e.g. 'User' */
|
|
60
|
+
targetName?: string;
|
|
61
|
+
}
|
|
62
|
+
/** What a script declares, as far as it can be read without running it */
|
|
63
|
+
export interface IScriptAnalysis {
|
|
64
|
+
declarations: IDeclarationCall[];
|
|
65
|
+
typeAliases: ITypeAlias[];
|
|
66
|
+
}
|
|
67
|
+
/** A call to one of the Codenotch declaration factories, e.g. `process({ id: 'CreateBook', ... })` */
|
|
68
|
+
export interface IDeclarationCall {
|
|
69
|
+
/** Factory that was called, under the name it has in the module, e.g. 'process' */
|
|
70
|
+
factory: string;
|
|
71
|
+
/** Value of the 'id' property, undefined when absent or computed (see isIdStatic) */
|
|
72
|
+
id?: string;
|
|
73
|
+
/** False when an 'id' is present but computed, so its value cannot be known without running the code */
|
|
74
|
+
isIdStatic: boolean;
|
|
75
|
+
/** Name of the variable the call is assigned to, e.g. 'createBook' */
|
|
76
|
+
variableName?: string;
|
|
77
|
+
/** True when that variable is exported */
|
|
78
|
+
isExported: boolean;
|
|
79
|
+
/** 1-based line of the call inside the file */
|
|
80
|
+
line: number;
|
|
81
|
+
/** Properties of the declaration whose value is a literal, keeping the shape of the source */
|
|
82
|
+
properties: Record<string, LiteralValue>;
|
|
83
|
+
/**
|
|
84
|
+
* Properties of the declaration whose value is a call, keyed by their path inside the
|
|
85
|
+
* declaration: 'trigger' for a process, 'properties.fullName' for a table column.
|
|
86
|
+
*/
|
|
87
|
+
calls: Record<string, IPropertyCall>;
|
|
88
|
+
/** Properties of the declaration whose value is a function, such as the 'run' of a process */
|
|
89
|
+
functions: Record<string, IFunctionSignature>;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Reads Codenotch declarations (processes, tables, documents...) out of a script.
|
|
93
|
+
*
|
|
94
|
+
* The script is parsed with the TypeScript compiler and never executed, so discovering a
|
|
95
|
+
* declaration cannot run any project code. Only what is written literally is reported: an id
|
|
96
|
+
* built at runtime is flagged rather than guessed.
|
|
97
|
+
*
|
|
98
|
+
* Parsing is tolerant: a file that does not compile is read on a best effort basis rather than
|
|
99
|
+
* throwing, so an unfinished declaration is still reported. Reporting the syntax errors themselves
|
|
100
|
+
* is the job of the validators, not of this discovery.
|
|
101
|
+
*/
|
|
102
|
+
export default abstract class ScriptDeclarationUtils {
|
|
103
|
+
/**
|
|
104
|
+
* Finds every call to one of `factoryNames`, imported from `moduleName`, in a script.
|
|
105
|
+
*
|
|
106
|
+
* Named imports, aliases (`import { process as proc }`) and namespace imports
|
|
107
|
+
* (`import * as cn` then `cn.process(...)`) are all recognized, and a factory that is not
|
|
108
|
+
* imported from that module is never reported, so a local function of the same name is ignored.
|
|
109
|
+
*
|
|
110
|
+
* @param filePath path of the script, only used to pick the syntax (tsx, jsx, ts, js)
|
|
111
|
+
* @param content source of the script
|
|
112
|
+
* @param moduleName module the factories must come from, e.g. '@codenotch/process'
|
|
113
|
+
* @param factoryNames declaring factories to look for, e.g. ['process']
|
|
114
|
+
*/
|
|
115
|
+
static findDeclarationCalls(filePath: string, content: string, moduleName: string, factoryNames: string[]): IDeclarationCall[];
|
|
116
|
+
/**
|
|
117
|
+
* Same as {@link ScriptDeclarationUtils.findDeclarationCalls}, and also reports the type aliases
|
|
118
|
+
* built with one of `typeHelperNames`, such as `export type IUser = InferEntity<typeof User>`.
|
|
119
|
+
*/
|
|
120
|
+
static analyzeScript(filePath: string, content: string, moduleName: string, factoryNames: string[], typeHelperNames?: string[]): IScriptAnalysis;
|
|
121
|
+
/**
|
|
122
|
+
* Reads the `export type IUser = InferEntity<typeof User>` aliases of a script
|
|
123
|
+
*/
|
|
124
|
+
private static findTypeAliases;
|
|
125
|
+
/**
|
|
126
|
+
* Name of a type in terms of the module it comes from, or undefined when it is unrelated to it
|
|
127
|
+
*/
|
|
128
|
+
private static resolveTypeName;
|
|
129
|
+
private static getScriptKind;
|
|
130
|
+
private static collectImports;
|
|
131
|
+
/**
|
|
132
|
+
* Name of a called expression in terms of the module it comes from: 'process', 'api.post', ...
|
|
133
|
+
* Returns undefined when the expression has nothing to do with the module.
|
|
134
|
+
*/
|
|
135
|
+
private static resolveCallee;
|
|
136
|
+
private static readDeclarationCall;
|
|
137
|
+
/**
|
|
138
|
+
* Records the signature of every property holding a function, whether written as an arrow
|
|
139
|
+
* function, a function expression or a method: `run: async (ctx, input) => ...` and
|
|
140
|
+
* `async run(ctx, input) { ... }` are read the same way.
|
|
141
|
+
*/
|
|
142
|
+
private static collectFunctions;
|
|
143
|
+
/**
|
|
144
|
+
* Walks an object literal and records every property whose value is a call, keyed by its path,
|
|
145
|
+
* so that the columns of `properties: { id: p.integer() }` are reachable as 'properties.id'.
|
|
146
|
+
*/
|
|
147
|
+
private static collectCalls;
|
|
148
|
+
/**
|
|
149
|
+
* Reads a call or a chain of calls: `p.text().default('')` gives the root 'p' and the
|
|
150
|
+
* steps 'text' then 'default'.
|
|
151
|
+
*/
|
|
152
|
+
private static readCallChain;
|
|
153
|
+
/**
|
|
154
|
+
* Name a chain starts from, under its module name. Empty for a namespace import, which
|
|
155
|
+
* designates the module itself rather than a value: 'cn.timer(...)' is just 'timer'.
|
|
156
|
+
*/
|
|
157
|
+
private static resolveRoot;
|
|
158
|
+
private static readArguments;
|
|
159
|
+
/**
|
|
160
|
+
* Value of an expression when it is written literally, undefined when it is only known at runtime.
|
|
161
|
+
* Wrapped in an object so that a literal 'null' is not confused with 'not a literal'.
|
|
162
|
+
*/
|
|
163
|
+
private static readLiteralValue;
|
|
164
|
+
private static getPropertyName;
|
|
165
|
+
/**
|
|
166
|
+
* Variable the call is assigned to, e.g. 'createBook' in `export const createBook = process({...})`
|
|
167
|
+
*/
|
|
168
|
+
private static getAssignedVariable;
|
|
169
|
+
}
|
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
7
|
+
const TypeSchemaUtils_1 = __importDefault(require("./TypeSchemaUtils"));
|
|
8
|
+
/**
|
|
9
|
+
* Reads Codenotch declarations (processes, tables, documents...) out of a script.
|
|
10
|
+
*
|
|
11
|
+
* The script is parsed with the TypeScript compiler and never executed, so discovering a
|
|
12
|
+
* declaration cannot run any project code. Only what is written literally is reported: an id
|
|
13
|
+
* built at runtime is flagged rather than guessed.
|
|
14
|
+
*
|
|
15
|
+
* Parsing is tolerant: a file that does not compile is read on a best effort basis rather than
|
|
16
|
+
* throwing, so an unfinished declaration is still reported. Reporting the syntax errors themselves
|
|
17
|
+
* is the job of the validators, not of this discovery.
|
|
18
|
+
*/
|
|
19
|
+
class ScriptDeclarationUtils {
|
|
20
|
+
/**
|
|
21
|
+
* Finds every call to one of `factoryNames`, imported from `moduleName`, in a script.
|
|
22
|
+
*
|
|
23
|
+
* Named imports, aliases (`import { process as proc }`) and namespace imports
|
|
24
|
+
* (`import * as cn` then `cn.process(...)`) are all recognized, and a factory that is not
|
|
25
|
+
* imported from that module is never reported, so a local function of the same name is ignored.
|
|
26
|
+
*
|
|
27
|
+
* @param filePath path of the script, only used to pick the syntax (tsx, jsx, ts, js)
|
|
28
|
+
* @param content source of the script
|
|
29
|
+
* @param moduleName module the factories must come from, e.g. '@codenotch/process'
|
|
30
|
+
* @param factoryNames declaring factories to look for, e.g. ['process']
|
|
31
|
+
*/
|
|
32
|
+
static findDeclarationCalls(filePath, content, moduleName, factoryNames) {
|
|
33
|
+
return this.analyzeScript(filePath, content, moduleName, factoryNames).declarations;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Same as {@link ScriptDeclarationUtils.findDeclarationCalls}, and also reports the type aliases
|
|
37
|
+
* built with one of `typeHelperNames`, such as `export type IUser = InferEntity<typeof User>`.
|
|
38
|
+
*/
|
|
39
|
+
static analyzeScript(filePath, content, moduleName, factoryNames, typeHelperNames = []) {
|
|
40
|
+
const sourceFile = typescript_1.default.createSourceFile(filePath, content, typescript_1.default.ScriptTarget.Latest, true, this.getScriptKind(filePath));
|
|
41
|
+
// Every name imported from the module: local name -> name inside the module
|
|
42
|
+
const imported = new Map();
|
|
43
|
+
// Names bound by 'import * as x', used as 'x.process(...)'
|
|
44
|
+
const namespaces = new Set();
|
|
45
|
+
this.collectImports(sourceFile, moduleName, imported, namespaces);
|
|
46
|
+
if (imported.size === 0 && namespaces.size === 0) {
|
|
47
|
+
return { declarations: [], typeAliases: [] };
|
|
48
|
+
}
|
|
49
|
+
const declarations = [];
|
|
50
|
+
const visit = (node) => {
|
|
51
|
+
if (typescript_1.default.isCallExpression(node)) {
|
|
52
|
+
const callee = this.resolveCallee(node.expression, imported, namespaces);
|
|
53
|
+
if (callee !== undefined && factoryNames.includes(callee)) {
|
|
54
|
+
declarations.push(this.readDeclarationCall(node, callee, sourceFile, imported, namespaces));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
typescript_1.default.forEachChild(node, visit);
|
|
58
|
+
};
|
|
59
|
+
visit(sourceFile);
|
|
60
|
+
return {
|
|
61
|
+
declarations,
|
|
62
|
+
typeAliases: typeHelperNames.length === 0 ? [] : this.findTypeAliases(sourceFile, typeHelperNames, imported, namespaces)
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Reads the `export type IUser = InferEntity<typeof User>` aliases of a script
|
|
67
|
+
*/
|
|
68
|
+
static findTypeAliases(sourceFile, typeHelperNames, imported, namespaces) {
|
|
69
|
+
const results = [];
|
|
70
|
+
for (const statement of sourceFile.statements) {
|
|
71
|
+
if (!typescript_1.default.isTypeAliasDeclaration(statement) || !typescript_1.default.isTypeReferenceNode(statement.type)) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const helper = this.resolveTypeName(statement.type.typeName, imported, namespaces);
|
|
75
|
+
if (helper === undefined || !typeHelperNames.includes(helper)) {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
// The 'typeof User' of InferEntity<typeof User>
|
|
79
|
+
const argument = statement.type.typeArguments?.[0];
|
|
80
|
+
const targetName = argument !== undefined && typescript_1.default.isTypeQueryNode(argument) && typescript_1.default.isIdentifier(argument.exprName)
|
|
81
|
+
? argument.exprName.text
|
|
82
|
+
: undefined;
|
|
83
|
+
results.push({
|
|
84
|
+
name: statement.name.text,
|
|
85
|
+
isExported: (statement.modifiers ?? []).some(modifier => modifier.kind === typescript_1.default.SyntaxKind.ExportKeyword),
|
|
86
|
+
helper,
|
|
87
|
+
targetName
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return results;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Name of a type in terms of the module it comes from, or undefined when it is unrelated to it
|
|
94
|
+
*/
|
|
95
|
+
static resolveTypeName(typeName, imported, namespaces) {
|
|
96
|
+
if (typescript_1.default.isIdentifier(typeName)) {
|
|
97
|
+
return imported.get(typeName.text);
|
|
98
|
+
}
|
|
99
|
+
// orm.InferEntity<...>, through 'import * as orm'
|
|
100
|
+
if (typescript_1.default.isIdentifier(typeName.left) && namespaces.has(typeName.left.text)) {
|
|
101
|
+
return typeName.right.text;
|
|
102
|
+
}
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
static getScriptKind(filePath) {
|
|
106
|
+
const lowerCased = filePath.toLowerCase();
|
|
107
|
+
if (lowerCased.endsWith('.tsx')) {
|
|
108
|
+
return typescript_1.default.ScriptKind.TSX;
|
|
109
|
+
}
|
|
110
|
+
if (lowerCased.endsWith('.jsx')) {
|
|
111
|
+
return typescript_1.default.ScriptKind.JSX;
|
|
112
|
+
}
|
|
113
|
+
if (lowerCased.endsWith('.js') || lowerCased.endsWith('.mjs') || lowerCased.endsWith('.cjs')) {
|
|
114
|
+
return typescript_1.default.ScriptKind.JS;
|
|
115
|
+
}
|
|
116
|
+
return typescript_1.default.ScriptKind.TS;
|
|
117
|
+
}
|
|
118
|
+
static collectImports(sourceFile, moduleName, imported, namespaces) {
|
|
119
|
+
for (const statement of sourceFile.statements) {
|
|
120
|
+
if (!typescript_1.default.isImportDeclaration(statement) || !typescript_1.default.isStringLiteral(statement.moduleSpecifier)) {
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if (statement.moduleSpecifier.text !== moduleName || statement.importClause === undefined) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const bindings = statement.importClause.namedBindings;
|
|
127
|
+
if (bindings !== undefined && typescript_1.default.isNamespaceImport(bindings)) {
|
|
128
|
+
namespaces.add(bindings.name.text);
|
|
129
|
+
}
|
|
130
|
+
else if (bindings !== undefined && typescript_1.default.isNamedImports(bindings)) {
|
|
131
|
+
for (const element of bindings.elements) {
|
|
132
|
+
// 'process as proc' gives propertyName 'process' and name 'proc'
|
|
133
|
+
imported.set(element.name.text, (element.propertyName ?? element.name).text);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Name of a called expression in terms of the module it comes from: 'process', 'api.post', ...
|
|
140
|
+
* Returns undefined when the expression has nothing to do with the module.
|
|
141
|
+
*/
|
|
142
|
+
static resolveCallee(expression, imported, namespaces) {
|
|
143
|
+
// process({ ... })
|
|
144
|
+
if (typescript_1.default.isIdentifier(expression)) {
|
|
145
|
+
return imported.get(expression.text);
|
|
146
|
+
}
|
|
147
|
+
if (typescript_1.default.isPropertyAccessExpression(expression) && typescript_1.default.isIdentifier(expression.expression)) {
|
|
148
|
+
// cn.process({ ... }), through 'import * as cn'
|
|
149
|
+
if (namespaces.has(expression.expression.text)) {
|
|
150
|
+
return expression.name.text;
|
|
151
|
+
}
|
|
152
|
+
// api.post('/books'), where 'api' is imported from the module
|
|
153
|
+
const root = imported.get(expression.expression.text);
|
|
154
|
+
if (root !== undefined) {
|
|
155
|
+
return `${root}.${expression.name.text}`;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
160
|
+
static readDeclarationCall(call, factory, sourceFile, imported, namespaces) {
|
|
161
|
+
const properties = {};
|
|
162
|
+
const calls = {};
|
|
163
|
+
const functions = {};
|
|
164
|
+
const argument = call.arguments[0];
|
|
165
|
+
let hasIdProperty = false;
|
|
166
|
+
if (argument !== undefined && typescript_1.default.isObjectLiteralExpression(argument)) {
|
|
167
|
+
const literal = this.readLiteralValue(argument);
|
|
168
|
+
if (literal !== undefined && typeof literal.literal === 'object' && literal.literal !== null && !Array.isArray(literal.literal)) {
|
|
169
|
+
Object.assign(properties, literal.literal);
|
|
170
|
+
}
|
|
171
|
+
this.collectCalls(argument, '', imported, namespaces, calls);
|
|
172
|
+
this.collectFunctions(argument, functions);
|
|
173
|
+
hasIdProperty = argument.properties.some(property => property.name !== undefined && this.getPropertyName(property.name) === 'id');
|
|
174
|
+
}
|
|
175
|
+
const id = typeof properties['id'] === 'string' ? properties['id'] : undefined;
|
|
176
|
+
const { variableName, isExported } = this.getAssignedVariable(call);
|
|
177
|
+
return {
|
|
178
|
+
factory,
|
|
179
|
+
id,
|
|
180
|
+
// An id that is present but absent from the literal properties was computed
|
|
181
|
+
isIdStatic: id !== undefined || !hasIdProperty,
|
|
182
|
+
variableName,
|
|
183
|
+
isExported,
|
|
184
|
+
line: sourceFile.getLineAndCharacterOfPosition(call.getStart(sourceFile)).line + 1,
|
|
185
|
+
properties,
|
|
186
|
+
calls,
|
|
187
|
+
functions
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Records the signature of every property holding a function, whether written as an arrow
|
|
192
|
+
* function, a function expression or a method: `run: async (ctx, input) => ...` and
|
|
193
|
+
* `async run(ctx, input) { ... }` are read the same way.
|
|
194
|
+
*/
|
|
195
|
+
static collectFunctions(objectLiteral, results) {
|
|
196
|
+
for (const property of objectLiteral.properties) {
|
|
197
|
+
let name;
|
|
198
|
+
let fn;
|
|
199
|
+
if (typescript_1.default.isPropertyAssignment(property) && (typescript_1.default.isArrowFunction(property.initializer) || typescript_1.default.isFunctionExpression(property.initializer))) {
|
|
200
|
+
name = this.getPropertyName(property.name);
|
|
201
|
+
fn = property.initializer;
|
|
202
|
+
}
|
|
203
|
+
else if (typescript_1.default.isMethodDeclaration(property)) {
|
|
204
|
+
name = this.getPropertyName(property.name);
|
|
205
|
+
fn = property;
|
|
206
|
+
}
|
|
207
|
+
if (name === undefined || fn === undefined) {
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
results[name] = {
|
|
211
|
+
parameters: fn.parameters.map(parameter => ({
|
|
212
|
+
name: typescript_1.default.isIdentifier(parameter.name) ? parameter.name.text : parameter.name.getText(),
|
|
213
|
+
schema: parameter.type === undefined ? undefined : TypeSchemaUtils_1.default.fromTypeNode(parameter.type),
|
|
214
|
+
typeText: parameter.type?.getText(),
|
|
215
|
+
isOptional: parameter.questionToken !== undefined || parameter.initializer !== undefined
|
|
216
|
+
})),
|
|
217
|
+
returnSchema: fn.type === undefined ? undefined : TypeSchemaUtils_1.default.fromTypeNode(fn.type),
|
|
218
|
+
returnTypeText: fn.type?.getText(),
|
|
219
|
+
isAsync: (typescript_1.default.canHaveModifiers(fn) ? typescript_1.default.getModifiers(fn) ?? [] : []).some(modifier => modifier.kind === typescript_1.default.SyntaxKind.AsyncKeyword)
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Walks an object literal and records every property whose value is a call, keyed by its path,
|
|
225
|
+
* so that the columns of `properties: { id: p.integer() }` are reachable as 'properties.id'.
|
|
226
|
+
*/
|
|
227
|
+
static collectCalls(objectLiteral, prefix, imported, namespaces, results) {
|
|
228
|
+
for (const property of objectLiteral.properties) {
|
|
229
|
+
// Shorthand ({ id }), spreads ({ ...base }) and methods hold no readable value
|
|
230
|
+
if (!typescript_1.default.isPropertyAssignment(property)) {
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
const name = this.getPropertyName(property.name);
|
|
234
|
+
if (name === undefined) {
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
const path = prefix === '' ? name : `${prefix}.${name}`;
|
|
238
|
+
const value = property.initializer;
|
|
239
|
+
if (typescript_1.default.isCallExpression(value)) {
|
|
240
|
+
results[path] = this.readCallChain(value, imported, namespaces);
|
|
241
|
+
}
|
|
242
|
+
else if (typescript_1.default.isObjectLiteralExpression(value)) {
|
|
243
|
+
this.collectCalls(value, path, imported, namespaces, results);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Reads a call or a chain of calls: `p.text().default('')` gives the root 'p' and the
|
|
249
|
+
* steps 'text' then 'default'.
|
|
250
|
+
*/
|
|
251
|
+
static readCallChain(call, imported, namespaces) {
|
|
252
|
+
const steps = [];
|
|
253
|
+
let current = call;
|
|
254
|
+
let root = '';
|
|
255
|
+
// Walk the chain from its end back to its root, hence the unshift
|
|
256
|
+
while (true) {
|
|
257
|
+
if (typescript_1.default.isCallExpression(current)) {
|
|
258
|
+
const args = this.readArguments(current);
|
|
259
|
+
if (typescript_1.default.isPropertyAccessExpression(current.expression)) {
|
|
260
|
+
steps.unshift({ name: current.expression.name.text, ...args });
|
|
261
|
+
current = current.expression.expression;
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
if (typescript_1.default.isIdentifier(current.expression)) {
|
|
265
|
+
// The root itself is called, as in timer('0 8 * * *')
|
|
266
|
+
root = this.resolveRoot(current.expression, imported, namespaces);
|
|
267
|
+
steps.unshift({ name: root, ...args });
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
root = current.expression.getText();
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
if (typescript_1.default.isIdentifier(current)) {
|
|
274
|
+
root = this.resolveRoot(current, imported, namespaces);
|
|
275
|
+
break;
|
|
276
|
+
}
|
|
277
|
+
root = current.getText();
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
const names = steps.map(step => step.name);
|
|
281
|
+
const callee = root === '' || names[0] === root
|
|
282
|
+
// A namespace is the module itself, and a root that is called is already the first step
|
|
283
|
+
? names.join('.')
|
|
284
|
+
: [root, ...names].join('.');
|
|
285
|
+
const last = steps[steps.length - 1];
|
|
286
|
+
return {
|
|
287
|
+
root,
|
|
288
|
+
steps,
|
|
289
|
+
callee,
|
|
290
|
+
arguments: last?.arguments ?? [],
|
|
291
|
+
hasComputedArguments: steps.some(step => step.hasComputedArguments)
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Name a chain starts from, under its module name. Empty for a namespace import, which
|
|
296
|
+
* designates the module itself rather than a value: 'cn.timer(...)' is just 'timer'.
|
|
297
|
+
*/
|
|
298
|
+
static resolveRoot(identifier, imported, namespaces) {
|
|
299
|
+
if (namespaces.has(identifier.text)) {
|
|
300
|
+
return '';
|
|
301
|
+
}
|
|
302
|
+
return imported.get(identifier.text) ?? identifier.text;
|
|
303
|
+
}
|
|
304
|
+
static readArguments(call) {
|
|
305
|
+
const args = [];
|
|
306
|
+
let hasComputedArguments = false;
|
|
307
|
+
for (const argument of call.arguments) {
|
|
308
|
+
const value = this.readLiteralValue(argument);
|
|
309
|
+
if (value === undefined) {
|
|
310
|
+
hasComputedArguments = true;
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
args.push(value.literal);
|
|
314
|
+
}
|
|
315
|
+
return { arguments: args, hasComputedArguments };
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Value of an expression when it is written literally, undefined when it is only known at runtime.
|
|
319
|
+
* Wrapped in an object so that a literal 'null' is not confused with 'not a literal'.
|
|
320
|
+
*/
|
|
321
|
+
static readLiteralValue(node) {
|
|
322
|
+
if (typescript_1.default.isStringLiteral(node) || typescript_1.default.isNoSubstitutionTemplateLiteral(node)) {
|
|
323
|
+
return { literal: node.text };
|
|
324
|
+
}
|
|
325
|
+
if (typescript_1.default.isNumericLiteral(node)) {
|
|
326
|
+
return { literal: Number(node.text) };
|
|
327
|
+
}
|
|
328
|
+
if (node.kind === typescript_1.default.SyntaxKind.TrueKeyword) {
|
|
329
|
+
return { literal: true };
|
|
330
|
+
}
|
|
331
|
+
if (node.kind === typescript_1.default.SyntaxKind.FalseKeyword) {
|
|
332
|
+
return { literal: false };
|
|
333
|
+
}
|
|
334
|
+
if (node.kind === typescript_1.default.SyntaxKind.NullKeyword) {
|
|
335
|
+
return { literal: null };
|
|
336
|
+
}
|
|
337
|
+
// -1 and friends
|
|
338
|
+
if (typescript_1.default.isPrefixUnaryExpression(node) && node.operator === typescript_1.default.SyntaxKind.MinusToken && typescript_1.default.isNumericLiteral(node.operand)) {
|
|
339
|
+
return { literal: -Number(node.operand.text) };
|
|
340
|
+
}
|
|
341
|
+
// 'x satisfies T' and 'x as T' do not change the value
|
|
342
|
+
if (typescript_1.default.isAsExpression(node) || typescript_1.default.isSatisfiesExpression(node) || typescript_1.default.isParenthesizedExpression(node)) {
|
|
343
|
+
return this.readLiteralValue(node.expression);
|
|
344
|
+
}
|
|
345
|
+
if (typescript_1.default.isArrayLiteralExpression(node)) {
|
|
346
|
+
const items = [];
|
|
347
|
+
for (const element of node.elements) {
|
|
348
|
+
const value = this.readLiteralValue(element);
|
|
349
|
+
if (value === undefined) {
|
|
350
|
+
// A single computed item makes the whole array unknown
|
|
351
|
+
return undefined;
|
|
352
|
+
}
|
|
353
|
+
items.push(value.literal);
|
|
354
|
+
}
|
|
355
|
+
return { literal: items };
|
|
356
|
+
}
|
|
357
|
+
if (typescript_1.default.isObjectLiteralExpression(node)) {
|
|
358
|
+
const record = {};
|
|
359
|
+
for (const property of node.properties) {
|
|
360
|
+
if (!typescript_1.default.isPropertyAssignment(property)) {
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
363
|
+
const name = this.getPropertyName(property.name);
|
|
364
|
+
const value = name === undefined ? undefined : this.readLiteralValue(property.initializer);
|
|
365
|
+
if (name !== undefined && value !== undefined) {
|
|
366
|
+
record[name] = value.literal;
|
|
367
|
+
}
|
|
368
|
+
// A computed member is left out, the rest of the object stays usable
|
|
369
|
+
}
|
|
370
|
+
return { literal: record };
|
|
371
|
+
}
|
|
372
|
+
return undefined;
|
|
373
|
+
}
|
|
374
|
+
static getPropertyName(name) {
|
|
375
|
+
if (typescript_1.default.isIdentifier(name) || typescript_1.default.isStringLiteral(name) || typescript_1.default.isNumericLiteral(name)) {
|
|
376
|
+
return name.text;
|
|
377
|
+
}
|
|
378
|
+
return undefined;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Variable the call is assigned to, e.g. 'createBook' in `export const createBook = process({...})`
|
|
382
|
+
*/
|
|
383
|
+
static getAssignedVariable(call) {
|
|
384
|
+
const declaration = call.parent;
|
|
385
|
+
if (declaration === undefined || !typescript_1.default.isVariableDeclaration(declaration) || declaration.initializer !== call) {
|
|
386
|
+
return { isExported: false };
|
|
387
|
+
}
|
|
388
|
+
const variableName = typescript_1.default.isIdentifier(declaration.name) ? declaration.name.text : undefined;
|
|
389
|
+
// VariableDeclaration -> VariableDeclarationList -> VariableStatement, which carries the 'export'
|
|
390
|
+
const statement = declaration.parent?.parent;
|
|
391
|
+
const isExported = statement !== undefined
|
|
392
|
+
&& typescript_1.default.isVariableStatement(statement)
|
|
393
|
+
&& (statement.modifiers ?? []).some(modifier => modifier.kind === typescript_1.default.SyntaxKind.ExportKeyword);
|
|
394
|
+
return { variableName, isExported };
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
exports.default = ScriptDeclarationUtils;
|
|
398
|
+
//# sourceMappingURL=ScriptDeclarationUtils.js.map
|