@ts-for-gir/generator-typescript 3.2.9 → 4.0.0-beta.1
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/lib/package-data-parser.js +1 -1
- package/lib/package-data-parser.js.map +1 -1
- package/lib/template-processor.d.ts +11 -14
- package/lib/template-processor.js +29 -38
- package/lib/template-processor.js.map +1 -1
- package/lib/type-definition-generator.d.ts +99 -85
- package/lib/type-definition-generator.js +1024 -791
- package/lib/type-definition-generator.js.map +1 -1
- package/package.json +17 -7
- package/templates/README.md +1 -10
- package/templates/gjs/ambient.d.ts +0 -40
- package/templates/gjs/cairo.d.ts +0 -4
- package/templates/gjs/cairo.js +0 -7
- package/templates/gjs/gettext.js +0 -7
- package/templates/gjs/gio-2.0.d.ts +0 -65
- package/templates/gjs/gjs.js +0 -6
- package/templates/gjs/gobject-2.0.d.ts +17 -28
- package/templates/gjs/module-ambient.d.ts +8 -16
- package/templates/gjs/module-import.d.ts +3 -15
- package/templates/gjs/module-noNamespace.d.ts +7 -0
- package/templates/gjs/module.d.ts +3 -2
- package/templates/gjs/module.js +1 -13
- package/templates/gjs/system.js +1 -8
- package/templates/granite-1.0.d.ts +1 -1
- package/templates/granite-7.0.d.ts +1 -1
- package/templates/gstbase-0.10.d.ts +1 -1
- package/templates/package.json +22 -120
- package/templates/tsconfig.json +0 -7
- package/templates/typedoc.json +0 -5
- package/templates/gjs/tsconfig.alias.json +0 -12
- package/templates/node-gtk/README-NODE-GTK.md +0 -74
- package/templates/node-gtk/ambient.d.ts +0 -19
- package/templates/node-gtk/ambient.js +0 -5
- package/templates/node-gtk/gobject-2.0.d.ts +0 -57
- package/templates/node-gtk/module-import.d.ts +0 -29
- package/templates/node-gtk/module-import.js +0 -10
- package/templates/node-gtk/module.append.d.ts +0 -1
- package/templates/node-gtk/module.d.ts +0 -10
- package/templates/node-gtk/module.js +0 -18
- package/templates/node-gtk/node-gtk.d.ts +0 -25
- package/templates/node-gtk/node-gtk.js +0 -7
|
@@ -9,7 +9,7 @@ export class PackageDataParser {
|
|
|
9
9
|
packages = [];
|
|
10
10
|
constructor(config) {
|
|
11
11
|
this.config = config;
|
|
12
|
-
this.log = new Logger(
|
|
12
|
+
this.log = new Logger(config.verbose, 'ModuleLoader');
|
|
13
13
|
}
|
|
14
14
|
get(name) {
|
|
15
15
|
return this.packages.find((pkg) => pkg.gir === name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-data-parser.js","sourceRoot":"","sources":["../src/package-data-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAUtC,MAAM,OAAO,iBAAiB;IAIK;IAHrB,GAAG,CAAQ;IACX,QAAQ,GAAkB,EAAE,CAAA;IAEtC,YAA+B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;QACjD,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"package-data-parser.js","sourceRoot":"","sources":["../src/package-data-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import ejs from 'ejs';
|
|
6
6
|
import { Logger, Transformation } from '@ts-for-gir/lib';
|
|
7
|
-
import type { GenerateConfig, Dependency, TemplateData
|
|
7
|
+
import type { GenerateConfig, Dependency, TemplateData } from '@ts-for-gir/lib';
|
|
8
8
|
export declare class TemplateProcessor {
|
|
9
9
|
protected readonly data: TemplateData | undefined;
|
|
10
10
|
protected readonly packageName: string;
|
|
@@ -20,13 +20,13 @@ export declare class TemplateProcessor {
|
|
|
20
20
|
* @param baseDir The base directory
|
|
21
21
|
* @returns The path to the directory
|
|
22
22
|
*/
|
|
23
|
-
protected getEnvironmentDir: (
|
|
23
|
+
protected getEnvironmentDir: (baseDir: string) => string;
|
|
24
24
|
protected getAppendTemplateName(templateFilename: string): string;
|
|
25
25
|
/**
|
|
26
26
|
* Loads and renders a template and gets the rendered templates back
|
|
27
27
|
* @param templateFilename
|
|
28
28
|
*/
|
|
29
|
-
load(templateFilename: string,
|
|
29
|
+
load(templateFilename: string, ejsOptions?: Partial<ejs.Options>, overrideTemplateData?: TemplateData): Promise<{
|
|
30
30
|
prepend: string;
|
|
31
31
|
append: string;
|
|
32
32
|
}>;
|
|
@@ -34,11 +34,11 @@ export declare class TemplateProcessor {
|
|
|
34
34
|
* Loads and renders all templates in a directory and gets the rendered templates back
|
|
35
35
|
* @param templateDirname
|
|
36
36
|
* @param fileExtension
|
|
37
|
-
* @param
|
|
37
|
+
* @param ejsOptions EJS options
|
|
38
38
|
* @param overrideTemplateData Override template data if you want
|
|
39
39
|
* @returns The rendered templates
|
|
40
40
|
*/
|
|
41
|
-
loadAll(templateDirname: string, fileExtension: string,
|
|
41
|
+
loadAll(templateDirname: string, fileExtension: string, ejsOptions?: Partial<ejs.Options>, overrideTemplateData?: TemplateData): Promise<{
|
|
42
42
|
[path: string]: string;
|
|
43
43
|
}>;
|
|
44
44
|
/**
|
|
@@ -46,38 +46,35 @@ export declare class TemplateProcessor {
|
|
|
46
46
|
* @param templateFilename The filename of the template
|
|
47
47
|
* @param baseOutputPath The base output directory path where the templates should be written to
|
|
48
48
|
* @param outputFilename The filename of the output file
|
|
49
|
-
* @param prependEnv A (optional) boolean that indicates if the environment should be prepended to the output path
|
|
50
49
|
* @param content A (optional) string that should be appended to the rendered template
|
|
51
|
-
* @param
|
|
50
|
+
* @param ejsOptions EJS options
|
|
52
51
|
* @param overrideTemplateData Override template data if you want
|
|
53
52
|
* @return The rendered template string
|
|
54
53
|
*/
|
|
55
|
-
create(templateFilename: string, baseOutputPath: string, outputFilename: string,
|
|
54
|
+
create(templateFilename: string, baseOutputPath: string, outputFilename: string, content?: string, ejsOptions?: Partial<ejs.Options>, overrideTemplateData?: TemplateData): Promise<string>;
|
|
56
55
|
/**
|
|
57
56
|
* Loads all templates with file extension in dir, render the templates and write the template to the filesystem
|
|
58
57
|
* @param fileExtension The file extension of the templates
|
|
59
58
|
* @param templateDirname The directory where the templates are located
|
|
60
59
|
* @param baseOutputPath The base output directory path where the templates should be written to
|
|
61
60
|
* @param outputDirname The child output directory of the base output directory where the templates should be written to
|
|
62
|
-
* @param prependEnv A (optional) boolean that indicates if the environment should be prepended to the output path
|
|
63
61
|
* @param append A (optional) string that should be appended to the rendered template
|
|
64
|
-
* @param
|
|
62
|
+
* @param ejsOptions EJS options
|
|
65
63
|
* @param overrideTemplateData Override template data if you want
|
|
66
64
|
* @return The rendered (and if possible prettified) templates
|
|
67
65
|
*/
|
|
68
|
-
createAll(fileExtension: string, templateDirname: string, baseOutputPath: string, outputDirname: string,
|
|
66
|
+
createAll(fileExtension: string, templateDirname: string, baseOutputPath: string, outputDirname: string, append?: string, ejsOptions?: Partial<ejs.Options>, overrideTemplateData?: TemplateData): Promise<{
|
|
69
67
|
[path: string]: string;
|
|
70
68
|
}>;
|
|
71
|
-
getOutputPath(baseOutputPath: string, outputFilename: string
|
|
69
|
+
getOutputPath(baseOutputPath: string, outputFilename: string): string;
|
|
72
70
|
/**
|
|
73
71
|
* Writes the `content` to the filesystem
|
|
74
72
|
* @param content The content (normally the content of a rendered template file) that should be written to the filesystem
|
|
75
73
|
* @param baseOutputPath The base output directory path where the templates should be written to
|
|
76
74
|
* @param outputFilename The filename of the output file
|
|
77
|
-
* @param prependEnv A (optional) boolean that indicates if the environment should be prepended to the output path
|
|
78
75
|
* @returns
|
|
79
76
|
*/
|
|
80
|
-
protected write(content: string, baseOutputPath: string, outputFilename: string
|
|
77
|
+
protected write(content: string, baseOutputPath: string, outputFilename: string): Promise<string>;
|
|
81
78
|
/**
|
|
82
79
|
*
|
|
83
80
|
* @param templateString The template content string that should be rendered
|
|
@@ -7,7 +7,7 @@ import { readFile, writeFile, mkdir, readdir } from 'fs/promises';
|
|
|
7
7
|
import { join, dirname, relative, extname } from 'path';
|
|
8
8
|
import ejs from 'ejs';
|
|
9
9
|
import { __dirname } from './utils.js';
|
|
10
|
-
import { Logger, APP_NAME, APP_USAGE, APP_SOURCE, APP_VERSION, PACKAGE_DESC, PACKAGE_KEYWORDS,
|
|
10
|
+
import { Logger, APP_NAME, APP_USAGE, APP_SOURCE, APP_VERSION, PACKAGE_DESC, PACKAGE_KEYWORDS, DependencyManager, Transformation, } from '@ts-for-gir/lib';
|
|
11
11
|
const TEMPLATE_DIR = join(__dirname, '../templates');
|
|
12
12
|
export class TemplateProcessor {
|
|
13
13
|
data;
|
|
@@ -27,15 +27,15 @@ export class TemplateProcessor {
|
|
|
27
27
|
let outdir = config.outdir || './';
|
|
28
28
|
// Make outdir relative to the root directory
|
|
29
29
|
outdir = relative(config.root, outdir);
|
|
30
|
-
const typeDir =
|
|
30
|
+
const typeDir = outdir;
|
|
31
31
|
this.data = {
|
|
32
32
|
...this.data,
|
|
33
33
|
APP_NAME,
|
|
34
34
|
APP_USAGE,
|
|
35
35
|
APP_SOURCE,
|
|
36
36
|
APP_VERSION,
|
|
37
|
-
PACKAGE_DESC: PACKAGE_DESC(packageName, this.
|
|
38
|
-
PACKAGE_KEYWORDS: PACKAGE_KEYWORDS(packageName
|
|
37
|
+
PACKAGE_DESC: PACKAGE_DESC(packageName, this.data?.girModule?.libraryVersion),
|
|
38
|
+
PACKAGE_KEYWORDS: PACKAGE_KEYWORDS(packageName),
|
|
39
39
|
importName: this.transformation.transformImportName(packageName),
|
|
40
40
|
dep,
|
|
41
41
|
deps,
|
|
@@ -43,8 +43,8 @@ export class TemplateProcessor {
|
|
|
43
43
|
join,
|
|
44
44
|
dirname,
|
|
45
45
|
};
|
|
46
|
-
this.environmentTemplateDir = this.getEnvironmentDir(
|
|
47
|
-
this.log = new Logger(config.
|
|
46
|
+
this.environmentTemplateDir = this.getEnvironmentDir(TEMPLATE_DIR);
|
|
47
|
+
this.log = new Logger(config.verbose, this.packageName);
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* Get the output or input directory of the environment
|
|
@@ -52,13 +52,9 @@ export class TemplateProcessor {
|
|
|
52
52
|
* @param baseDir The base directory
|
|
53
53
|
* @returns The path to the directory
|
|
54
54
|
*/
|
|
55
|
-
getEnvironmentDir = (
|
|
56
|
-
if (!baseDir.endsWith(
|
|
57
|
-
|
|
58
|
-
return join(baseDir, 'gjs');
|
|
59
|
-
}
|
|
60
|
-
if (environment === 'node' && !baseDir.endsWith('/node-gtk')) {
|
|
61
|
-
return join(baseDir, 'node-gtk');
|
|
55
|
+
getEnvironmentDir = (baseDir) => {
|
|
56
|
+
if (!baseDir.endsWith('/gjs')) {
|
|
57
|
+
return join(baseDir, 'gjs');
|
|
62
58
|
}
|
|
63
59
|
return baseDir;
|
|
64
60
|
};
|
|
@@ -80,14 +76,14 @@ export class TemplateProcessor {
|
|
|
80
76
|
* Loads and renders a template and gets the rendered templates back
|
|
81
77
|
* @param templateFilename
|
|
82
78
|
*/
|
|
83
|
-
async load(templateFilename,
|
|
79
|
+
async load(templateFilename, ejsOptions = {}, overrideTemplateData = {}) {
|
|
84
80
|
const fileContent = await this.read(templateFilename);
|
|
85
|
-
const prepend = await this.render(fileContent,
|
|
81
|
+
const prepend = await this.render(fileContent, ejsOptions, overrideTemplateData);
|
|
86
82
|
let append = '';
|
|
87
83
|
const appendTemplateFilename = this.getAppendTemplateName(templateFilename);
|
|
88
84
|
if (this.exists(appendTemplateFilename)) {
|
|
89
85
|
const appendFileContent = await this.read(appendTemplateFilename);
|
|
90
|
-
append = await this.render(appendFileContent,
|
|
86
|
+
append = await this.render(appendFileContent, ejsOptions, overrideTemplateData);
|
|
91
87
|
}
|
|
92
88
|
return { prepend, append };
|
|
93
89
|
}
|
|
@@ -95,14 +91,14 @@ export class TemplateProcessor {
|
|
|
95
91
|
* Loads and renders all templates in a directory and gets the rendered templates back
|
|
96
92
|
* @param templateDirname
|
|
97
93
|
* @param fileExtension
|
|
98
|
-
* @param
|
|
94
|
+
* @param ejsOptions EJS options
|
|
99
95
|
* @param overrideTemplateData Override template data if you want
|
|
100
96
|
* @returns The rendered templates
|
|
101
97
|
*/
|
|
102
|
-
async loadAll(templateDirname, fileExtension,
|
|
98
|
+
async loadAll(templateDirname, fileExtension, ejsOptions = {}, overrideTemplateData = {}) {
|
|
103
99
|
const fileContents = await this.readAll(templateDirname, fileExtension);
|
|
104
100
|
for (const file of Object.keys(fileContents)) {
|
|
105
|
-
fileContents[file] = await this.render(fileContents[file],
|
|
101
|
+
fileContents[file] = await this.render(fileContents[file], ejsOptions, overrideTemplateData);
|
|
106
102
|
}
|
|
107
103
|
return fileContents;
|
|
108
104
|
}
|
|
@@ -111,16 +107,15 @@ export class TemplateProcessor {
|
|
|
111
107
|
* @param templateFilename The filename of the template
|
|
112
108
|
* @param baseOutputPath The base output directory path where the templates should be written to
|
|
113
109
|
* @param outputFilename The filename of the output file
|
|
114
|
-
* @param prependEnv A (optional) boolean that indicates if the environment should be prepended to the output path
|
|
115
110
|
* @param content A (optional) string that should be appended to the rendered template
|
|
116
|
-
* @param
|
|
111
|
+
* @param ejsOptions EJS options
|
|
117
112
|
* @param overrideTemplateData Override template data if you want
|
|
118
113
|
* @return The rendered template string
|
|
119
114
|
*/
|
|
120
|
-
async create(templateFilename, baseOutputPath, outputFilename,
|
|
121
|
-
const { prepend, append } = await this.load(templateFilename,
|
|
115
|
+
async create(templateFilename, baseOutputPath, outputFilename, content = '', ejsOptions = {}, overrideTemplateData = {}) {
|
|
116
|
+
const { prepend, append } = await this.load(templateFilename, ejsOptions, overrideTemplateData);
|
|
122
117
|
const code = prepend + '\n' + content + '\n' + append;
|
|
123
|
-
await this.write(code, baseOutputPath, outputFilename
|
|
118
|
+
await this.write(code, baseOutputPath, outputFilename);
|
|
124
119
|
return code;
|
|
125
120
|
}
|
|
126
121
|
/**
|
|
@@ -129,27 +124,24 @@ export class TemplateProcessor {
|
|
|
129
124
|
* @param templateDirname The directory where the templates are located
|
|
130
125
|
* @param baseOutputPath The base output directory path where the templates should be written to
|
|
131
126
|
* @param outputDirname The child output directory of the base output directory where the templates should be written to
|
|
132
|
-
* @param prependEnv A (optional) boolean that indicates if the environment should be prepended to the output path
|
|
133
127
|
* @param append A (optional) string that should be appended to the rendered template
|
|
134
|
-
* @param
|
|
128
|
+
* @param ejsOptions EJS options
|
|
135
129
|
* @param overrideTemplateData Override template data if you want
|
|
136
130
|
* @return The rendered (and if possible prettified) templates
|
|
137
131
|
*/
|
|
138
|
-
async createAll(fileExtension, templateDirname, baseOutputPath, outputDirname,
|
|
139
|
-
const rendered = await this.loadAll(templateDirname, fileExtension,
|
|
132
|
+
async createAll(fileExtension, templateDirname, baseOutputPath, outputDirname, append = '', ejsOptions = {}, overrideTemplateData = {}) {
|
|
133
|
+
const rendered = await this.loadAll(templateDirname, fileExtension, ejsOptions, overrideTemplateData);
|
|
140
134
|
const result = {};
|
|
141
135
|
for (const filename of Object.keys(rendered)) {
|
|
142
|
-
const destPath =
|
|
136
|
+
const destPath = join(baseOutputPath, outputDirname, filename);
|
|
143
137
|
result[destPath] = rendered[filename] + '\n' + append;
|
|
144
|
-
await this.write(result[destPath], baseOutputPath, join(outputDirname, filename)
|
|
138
|
+
await this.write(result[destPath], baseOutputPath, join(outputDirname, filename));
|
|
145
139
|
}
|
|
146
140
|
return result;
|
|
147
141
|
}
|
|
148
|
-
getOutputPath(baseOutputPath, outputFilename
|
|
149
|
-
const filePath = this.
|
|
150
|
-
|
|
151
|
-
: outputFilename;
|
|
152
|
-
const outputPath = prependEnv ? getDestPath(baseOutputPath, filePath) : join(baseOutputPath, filePath);
|
|
142
|
+
getOutputPath(baseOutputPath, outputFilename) {
|
|
143
|
+
const filePath = join(this.data?.importName || this.packageName, outputFilename);
|
|
144
|
+
const outputPath = join(baseOutputPath, filePath);
|
|
153
145
|
return outputPath;
|
|
154
146
|
}
|
|
155
147
|
/**
|
|
@@ -157,11 +149,10 @@ export class TemplateProcessor {
|
|
|
157
149
|
* @param content The content (normally the content of a rendered template file) that should be written to the filesystem
|
|
158
150
|
* @param baseOutputPath The base output directory path where the templates should be written to
|
|
159
151
|
* @param outputFilename The filename of the output file
|
|
160
|
-
* @param prependEnv A (optional) boolean that indicates if the environment should be prepended to the output path
|
|
161
152
|
* @returns
|
|
162
153
|
*/
|
|
163
|
-
async write(content, baseOutputPath, outputFilename
|
|
164
|
-
const outputPath = this.getOutputPath(baseOutputPath, outputFilename
|
|
154
|
+
async write(content, baseOutputPath, outputFilename) {
|
|
155
|
+
const outputPath = this.getOutputPath(baseOutputPath, outputFilename);
|
|
165
156
|
// write template result file
|
|
166
157
|
await mkdir(dirname(outputPath), { recursive: true });
|
|
167
158
|
await writeFile(outputPath, content, { encoding: 'utf8', flag: 'w' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-processor.js","sourceRoot":"","sources":["../src/template-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACvD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EACH,MAAM,EACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"template-processor.js","sourceRoot":"","sources":["../src/template-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +1,52 @@
|
|
|
1
1
|
import { Generator } from '@ts-for-gir/generator-base';
|
|
2
|
-
import { Logger,
|
|
2
|
+
import { Logger, DependencyManager, TypeExpression, NSRegistry, IntrospectedClass, IntrospectedRecord, IntrospectedInterface, IntrospectedBaseClass, IntrospectedField, GirDirection, TsDocTag } from '@ts-for-gir/lib';
|
|
3
3
|
import { TemplateProcessor } from './template-processor.js';
|
|
4
4
|
import { PackageDataParser } from './package-data-parser.js';
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
protected overrideConfig: Partial<GenerateConfig>;
|
|
13
|
-
/** Get the current config, including the override config */
|
|
14
|
-
protected get config(): GenerateConfig;
|
|
5
|
+
import { GenerateConfig, GirModule, IntrospectedFunction, IntrospectedCallback, IntrospectedSignal, IntrospectedProperty, IntrospectedConstant, IntrospectedClassCallback, IntrospectedClassFunction, IntrospectedConstructor, IntrospectedDirectAllocationConstructor, IntrospectedFunctionParameter, IntrospectedStaticClassFunction, IntrospectedVirtualClassFunction, IntrospectedAlias, IntrospectedEnum, IntrospectedSignalType, IntrospectedEnumMember, IntrospectedError, FormatGenerator, Generic } from '@ts-for-gir/lib';
|
|
6
|
+
declare class ModuleGenerator extends FormatGenerator<string[]> {
|
|
7
|
+
log: Logger;
|
|
8
|
+
dependencyManager: DependencyManager;
|
|
9
|
+
packageData?: PackageDataParser;
|
|
10
|
+
config: GenerateConfig;
|
|
11
|
+
moduleTemplateProcessor: TemplateProcessor;
|
|
15
12
|
/**
|
|
16
13
|
* @param _config The config to use without the override config
|
|
17
14
|
*/
|
|
18
|
-
constructor(
|
|
15
|
+
constructor(namespace: GirModule, config: GenerateConfig);
|
|
16
|
+
generateClassCallback(node: IntrospectedClassCallback): string[];
|
|
17
|
+
generateConstructor(node: IntrospectedConstructor): string[];
|
|
18
|
+
generateDirectAllocationConstructor(node: IntrospectedDirectAllocationConstructor): string[];
|
|
19
|
+
protected generateParameters(parameters: IntrospectedFunctionParameter[]): string;
|
|
20
|
+
generateConstructorFunction(node: IntrospectedConstructor): string[];
|
|
21
|
+
generateRecord(node: IntrospectedRecord): string[];
|
|
22
|
+
generateInterface(node: IntrospectedInterface): string[];
|
|
23
|
+
generateInterfaceNamespace(node: IntrospectedInterface): string[];
|
|
24
|
+
generateInterfaceDeclaration(node: IntrospectedInterface): string[];
|
|
25
|
+
generateError(node: IntrospectedError): string[];
|
|
26
|
+
generateSignal(node: IntrospectedSignal, type?: IntrospectedSignalType): string[];
|
|
27
|
+
generateStaticClassFunction(node: IntrospectedStaticClassFunction): string[];
|
|
28
|
+
generateVirtualClassFunction(node: IntrospectedVirtualClassFunction): string[];
|
|
29
|
+
generateExport(type: string, name: string, definition: string, indentCount?: number): string;
|
|
30
|
+
generateProperty(tsProp: IntrospectedProperty, construct?: boolean, indentCount?: number): string[];
|
|
31
|
+
generateField(tsProp: IntrospectedField, indentCount?: number): string[];
|
|
32
|
+
generateProperties(tsProps: IntrospectedProperty[], comment: string, indentCount?: number): string[];
|
|
33
|
+
generateFields(tsProps: IntrospectedField[], comment: string, indentCount?: number): string[];
|
|
34
|
+
generateMemberName(tsVar: IntrospectedProperty | IntrospectedConstant | IntrospectedField): string;
|
|
19
35
|
/**
|
|
20
|
-
*
|
|
21
|
-
* @param namespace
|
|
22
|
-
* @
|
|
23
|
-
* @param asExternType Currently only used for node type imports
|
|
24
|
-
*/
|
|
25
|
-
protected generateModuleDependenciesImport(packageName: string): string[];
|
|
26
|
-
protected generateExport(type: string, name: string, definition: string, indentCount?: number): string;
|
|
27
|
-
protected generateProperty(tsProp: TsProperty, onlyStatic: boolean, namespace: string, indentCount?: number): string[];
|
|
28
|
-
protected generateProperties(tsProps: TsProperty[], onlyStatic: boolean, namespace: string, comment: string, indentCount?: number): string[];
|
|
29
|
-
protected generateVariableCallbackType(tsType: TsType, namespace: string): string;
|
|
30
|
-
protected generateVariable(tsVar: TsProperty | TsVar, namespace: string, indentCount?: number, allowCommentOut?: boolean): string;
|
|
31
|
-
protected generateType(tsType: TsType, namespace: string, generateNullable?: boolean): string;
|
|
32
|
-
protected generateTypes(tsTypes: TsType[], namespace: string): string;
|
|
33
|
-
protected generateGenericValues(tsType: TsType, namespace: string): string;
|
|
34
|
-
/**
|
|
35
|
-
* Generates signals from all properties of a base class
|
|
36
|
-
* TODO: Build new `GirSignalElement`s in `gir-module.ts` instead of generate the strings directly
|
|
37
|
-
* @param girClass
|
|
38
|
-
* @param namespace
|
|
39
|
-
* @param indentCount
|
|
40
|
-
* @returns
|
|
36
|
+
* @param tsType The type expression
|
|
37
|
+
* @param namespace Provides the namespace to import relative to, defaults to the current namespace
|
|
38
|
+
* @returns A string for the type expression
|
|
41
39
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
generateType(tsType: TypeExpression): string;
|
|
41
|
+
generateDirectedType(tsType: TypeExpression, direction: GirDirection): string;
|
|
42
|
+
generateInParameters(inParams: IntrospectedFunctionParameter[]): string[];
|
|
45
43
|
/**
|
|
46
44
|
* Adds documentation comments
|
|
47
45
|
* @see https://github.com/microsoft/tsdoc
|
|
48
46
|
* @param lines
|
|
49
47
|
* @param indentCount
|
|
50
48
|
*/
|
|
51
|
-
|
|
49
|
+
addTSDocCommentLines(lines: string[], indentCount?: number): string[];
|
|
52
50
|
/**
|
|
53
51
|
* Adds the documentation as comments
|
|
54
52
|
* @see https://github.com/microsoft/tsdoc
|
|
@@ -57,87 +55,103 @@ export declare class TypeDefinitionGenerator implements Generator {
|
|
|
57
55
|
* @param overwriteDoc
|
|
58
56
|
* @returns
|
|
59
57
|
*/
|
|
60
|
-
|
|
58
|
+
addGirDocComment(tsDoc: string | null | undefined, tags?: TsDocTag[], indentCount?: number): string[];
|
|
61
59
|
/**
|
|
62
60
|
* Adds an info comment, is used for debugging the generated types
|
|
63
61
|
* @param comment
|
|
64
62
|
* @param indentCount
|
|
65
63
|
* @returns
|
|
66
64
|
*/
|
|
67
|
-
|
|
65
|
+
addInfoComment(comment?: string, indentCount?: number): string[];
|
|
68
66
|
/**
|
|
69
67
|
* Adds an inline info comment, is used for debugging the generated types
|
|
70
68
|
* @param comment
|
|
71
69
|
* @param indentCount
|
|
72
70
|
* @returns
|
|
73
71
|
*/
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
addInlineInfoComment(comment?: string, indentCount?: number): string[];
|
|
73
|
+
mergeDescs(descs: string[], comment?: string, indentCount?: number): string[];
|
|
74
|
+
generateParameter(tsParam: IntrospectedFunctionParameter): string[];
|
|
77
75
|
/**
|
|
78
76
|
*
|
|
79
77
|
* @param tsGenerics
|
|
80
78
|
* @param isOut If this generic parameters are out do only generate the type parameter names
|
|
81
79
|
* @returns
|
|
82
80
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
81
|
+
generateGenericParameters(nodes: Generic[], withDefaults?: boolean): string;
|
|
82
|
+
generateFunctionReturn(tsFunction: IntrospectedFunction | IntrospectedClassFunction | IntrospectedClassCallback | IntrospectedCallback): string;
|
|
83
|
+
generateClassFunction(node: IntrospectedClassFunction): string[];
|
|
84
|
+
generateFunction(tsFunction: IntrospectedClassFunction | IntrospectedFunction | IntrospectedCallback, indentCount?: number): string[];
|
|
85
|
+
generateFunctions(tsFunctions: IntrospectedFunction[] | IntrospectedClassFunction[], indentCount?: number, comment?: string): string[];
|
|
86
|
+
generateCallback(tsCallback: IntrospectedCallback | IntrospectedClassCallback, indentCount?: number, classModuleName?: string): string[];
|
|
87
|
+
generateCallbackInterfaces(tsCallbacks: Array<IntrospectedCallback | IntrospectedClassCallback>, indentCount: number | undefined, classModuleName: string, comment?: string): string[];
|
|
88
|
+
generateEnum(girEnum: IntrospectedEnum, indentCount?: number): string[];
|
|
89
|
+
generateEnumMember(tsMember: IntrospectedEnumMember, indentCount?: number): string[];
|
|
90
|
+
generateConst(tsConst: IntrospectedConstant, indentCount?: number): string[];
|
|
91
|
+
generateAlias(girAlias: IntrospectedAlias, indentCount?: number): string[];
|
|
92
|
+
generateConstructPropsInterface(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface, indentCount?: number): string[];
|
|
93
|
+
generateClassStaticFields(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface, indentCount?: number): string[];
|
|
94
|
+
generateClassMemberFields(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface, indentCount?: number): string[];
|
|
95
|
+
generateClassFields(girClass: IntrospectedClass | IntrospectedRecord, indentCount?: number): string[];
|
|
96
|
+
generateClassProperties(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface, indentCount?: number): string[];
|
|
97
|
+
generateClassStaticMethods(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface, indentCount?: number): string[];
|
|
98
|
+
generateClassMethods(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface, indentCount?: number): string[];
|
|
99
|
+
generateClassConstructors(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface, indentCount?: number): string[];
|
|
101
100
|
/**
|
|
102
101
|
* Instance methods, vfunc_ prefix
|
|
103
102
|
* @param girClass
|
|
104
103
|
*/
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
generateClassVirtualMethods(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface, indentCount?: number): string[];
|
|
105
|
+
generateClassSignalInterfaces(girClass: IntrospectedClass, indentCount?: number): string[];
|
|
106
|
+
generateSignals(girClass: IntrospectedClass): string[];
|
|
107
|
+
generateClassSignals(girClass: IntrospectedClass): string[];
|
|
108
|
+
generateClassModules(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface, indentCount?: number): string[];
|
|
109
|
+
generateClassCallbacks(girClass: IntrospectedClass | IntrospectedInterface | IntrospectedRecord): string[];
|
|
109
110
|
/**
|
|
110
111
|
* In Typescript, interfaces and classes can have the same name,
|
|
111
112
|
* so we use this to generate interfaces with the same name to implement multiple inheritance
|
|
112
113
|
* @param girClass
|
|
113
114
|
* @param namespace
|
|
114
115
|
*/
|
|
115
|
-
|
|
116
|
+
generateImplementationInterface(girClass: IntrospectedClass | IntrospectedRecord | IntrospectedInterface): string[];
|
|
117
|
+
protected extends(node: IntrospectedBaseClass): string;
|
|
118
|
+
protected implements(node: IntrospectedClass): string;
|
|
116
119
|
/**
|
|
117
120
|
* Represents a record, GObject class or interface as a Typescript class
|
|
118
121
|
* @param girClass
|
|
119
122
|
* @param namespace
|
|
120
123
|
*/
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
protected
|
|
126
|
-
protected
|
|
127
|
-
protected
|
|
128
|
-
|
|
129
|
-
protected exportNPMPackageJson(moduleTemplateProcessor: TemplateProcessor): Promise<void>;
|
|
130
|
-
protected exportNPMReadme(moduleTemplateProcessor: TemplateProcessor, girModuleImportName: string): Promise<void>;
|
|
131
|
-
protected exportTSConfig(moduleTemplateProcessor: TemplateProcessor): Promise<void>;
|
|
132
|
-
protected exportTypeDoc(moduleTemplateProcessor: TemplateProcessor): Promise<void>;
|
|
133
|
-
protected exportModule(girModule: GirModule, girModules: GirModule[], girModulesGrouped: GirModulesGrouped[]): Promise<void>;
|
|
124
|
+
generateClass(girClass: IntrospectedClass | IntrospectedRecord): string[];
|
|
125
|
+
stringifyNamespace(node: GirModule): Promise<string | null>;
|
|
126
|
+
exportModuleJS(girModule: GirModule): Promise<void>;
|
|
127
|
+
exportModuleAmbientTS(girModule: GirModule): Promise<void>;
|
|
128
|
+
protected exportModuleAmbientJS(girModule: GirModule): Promise<void>;
|
|
129
|
+
protected exportModuleImportTS(girModule: GirModule): Promise<void>;
|
|
130
|
+
protected exportModuleImportJS(girModule: GirModule): Promise<void>;
|
|
131
|
+
exportModuleTS(): Promise<void>;
|
|
134
132
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
133
|
+
*
|
|
134
|
+
* @param namespace E.g. 'Gtk'
|
|
135
|
+
* @param packageName E.g. 'Gtk-3.0'
|
|
136
|
+
* @param asExternType Currently only used for node type imports
|
|
137
|
+
*/
|
|
138
|
+
protected generateModuleDependenciesImport(packageName: string): string[];
|
|
139
|
+
generateNamespace(girModule: GirModule): Promise<string[] | null>;
|
|
140
|
+
exportModule(_registry: NSRegistry, girModule: GirModule): Promise<void>;
|
|
141
|
+
}
|
|
142
|
+
export declare class TypeDefinitionGenerator implements Generator {
|
|
143
|
+
readonly config: GenerateConfig;
|
|
144
|
+
log: Logger;
|
|
145
|
+
dependencyManager: DependencyManager;
|
|
146
|
+
packageData?: PackageDataParser;
|
|
147
|
+
module: ModuleGenerator;
|
|
148
|
+
/**
|
|
149
|
+
* @param _config The config to use without the override config
|
|
137
150
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
151
|
+
constructor(config: GenerateConfig);
|
|
152
|
+
exportGjs(): Promise<void>;
|
|
153
|
+
generate(registry: NSRegistry, module: GirModule): Promise<void>;
|
|
154
|
+
start(): Promise<void>;
|
|
155
|
+
finish(): Promise<void>;
|
|
143
156
|
}
|
|
157
|
+
export {};
|