@intelligentgraphics/ig.gfx.packager 3.0.4 → 3.0.6
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/build/{cli-5332deff.js → cli-0844c1bd.js} +11 -10
- package/build/cli-0844c1bd.js.map +1 -0
- package/build/{dependencies-227aca50.js → dependencies-aa561191.js} +2 -2
- package/build/dependencies-aa561191.js.map +1 -0
- package/build/generate-3019231d.js +231 -0
- package/build/generate-3019231d.js.map +1 -0
- package/build/{index-92b6ba5c.js → index-e2dc4a57.js} +2 -2
- package/build/{index-92b6ba5c.js.map → index-e2dc4a57.js.map} +1 -1
- package/build/{index-5d595f56.js → index-fb306868.js} +5 -5
- package/build/{index-5d595f56.js.map → index-fb306868.js.map} +1 -1
- package/build/index.mjs +1 -1
- package/build/{postinstall-7e50da37.js → postinstall-2c12dd4f.js} +3 -3
- package/build/{postinstall-7e50da37.js.map → postinstall-2c12dd4f.js.map} +1 -1
- package/build/{publishNpm-e2c8347f.js → publishNpm-1a1b8561.js} +4 -4
- package/build/{publishNpm-e2c8347f.js.map → publishNpm-1a1b8561.js.map} +1 -1
- package/build/{versionFile-b3a65dc8.js → versionFile-c4057cb5.js} +2 -2
- package/build/{versionFile-b3a65dc8.js.map → versionFile-c4057cb5.js.map} +1 -1
- package/package.json +2 -2
- package/readme.md +95 -29
- package/build/cli-5332deff.js.map +0 -1
- package/build/dependencies-227aca50.js.map +0 -1
- package/build/generate-a3a16031.js +0 -196
- package/build/generate-a3a16031.js.map +0 -1
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import ts from 'typescript';
|
|
2
|
-
import 'path';
|
|
3
|
-
import 'fs';
|
|
4
|
-
import 'resolve';
|
|
5
|
-
import 'write-pkg';
|
|
6
|
-
import { h as getPackageTypescriptFiles, j as writePackageCreatorIndex } from './cli-5332deff.js';
|
|
7
|
-
import 'node:path';
|
|
8
|
-
import 'node:fs';
|
|
9
|
-
import 'axios';
|
|
10
|
-
import 'update-notifier';
|
|
11
|
-
import 'yargs/yargs';
|
|
12
|
-
import 'url';
|
|
13
|
-
import 'glob';
|
|
14
|
-
import 'assert';
|
|
15
|
-
import 'events';
|
|
16
|
-
import 'util';
|
|
17
|
-
import 'inquirer';
|
|
18
|
-
|
|
19
|
-
function findTsNode(node, callback) {
|
|
20
|
-
let result;
|
|
21
|
-
ts.forEachChild(node, child => {
|
|
22
|
-
if (callback(child)) {
|
|
23
|
-
result = child;
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
function capitalizeFirstLetter(string) {
|
|
30
|
-
return (string === null || string === void 0 ? void 0 : string.charAt(0).toUpperCase()) + (string === null || string === void 0 ? void 0 : string.slice(1));
|
|
31
|
-
}
|
|
32
|
-
function parseDefault(value, type) {
|
|
33
|
-
const uType = capitalizeFirstLetter(type);
|
|
34
|
-
if (value === "null") return null;
|
|
35
|
-
switch (uType) {
|
|
36
|
-
case "LengthM":
|
|
37
|
-
case "ArcDEG":
|
|
38
|
-
case "Float":
|
|
39
|
-
return parseFloat(value);
|
|
40
|
-
case "Integer":
|
|
41
|
-
case "Int":
|
|
42
|
-
return parseInt(value);
|
|
43
|
-
case "Boolean":
|
|
44
|
-
case "Bool":
|
|
45
|
-
return value === "true";
|
|
46
|
-
case "Material":
|
|
47
|
-
case "String":
|
|
48
|
-
default:
|
|
49
|
-
return value.replace(/^"/, "").replace(/"$/, "");
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
function findEvaluatorNode(node) {
|
|
53
|
-
if (ts.isModuleDeclaration(node) && node.body && ts.isModuleDeclaration(node.body) && node.body.body) {
|
|
54
|
-
const classDeclaration = findTsNode(node.body.body, child => {
|
|
55
|
-
var _child$heritageClause;
|
|
56
|
-
if (!ts.isClassDeclaration(child)) {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
const isEvaluator = (_child$heritageClause = child.heritageClauses) === null || _child$heritageClause === void 0 ? void 0 : _child$heritageClause.some(clause => {
|
|
60
|
-
if (clause.token !== ts.SyntaxKind.ExtendsKeyword) {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
return clause.types.some(type => type.getText().includes("Evaluator"));
|
|
64
|
-
});
|
|
65
|
-
return isEvaluator ?? false;
|
|
66
|
-
});
|
|
67
|
-
return classDeclaration;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
function getParameter(evaluatorNode) {
|
|
71
|
-
var _evaluatorNode$member;
|
|
72
|
-
let memb = (_evaluatorNode$member = evaluatorNode.members) === null || _evaluatorNode$member === void 0 ? void 0 : _evaluatorNode$member.find(member => {
|
|
73
|
-
var _member$name;
|
|
74
|
-
return (member === null || member === void 0 ? void 0 : (_member$name = member.name) === null || _member$name === void 0 ? void 0 : _member$name.getText().toLowerCase()) == "create";
|
|
75
|
-
});
|
|
76
|
-
if (ts.isMethodDeclaration(memb)) {
|
|
77
|
-
return memb.parameters.find(para => para.name.getText().toLowerCase() == "parameters");
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
function findParametersInterface(node, interfaceName) {
|
|
81
|
-
if (ts.isModuleDeclaration(node) && node.body && ts.isModuleDeclaration(node.body) && node.body.body) {
|
|
82
|
-
const interfaceDeclaration = findTsNode(node.body.body, child => ts.isInterfaceDeclaration(child) && child.name.getText() == interfaceName);
|
|
83
|
-
return interfaceDeclaration;
|
|
84
|
-
}
|
|
85
|
-
return undefined;
|
|
86
|
-
}
|
|
87
|
-
function getModuleName(sourceFile) {
|
|
88
|
-
let fullName = "";
|
|
89
|
-
if (ts.isModuleDeclaration(sourceFile)) {
|
|
90
|
-
fullName += sourceFile.name.getText();
|
|
91
|
-
let packageB = sourceFile.body;
|
|
92
|
-
if (ts.isModuleDeclaration(packageB)) {
|
|
93
|
-
fullName += "." + packageB.name.getText();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return fullName;
|
|
97
|
-
}
|
|
98
|
-
function genParameters(interfac) {
|
|
99
|
-
return interfac.members.map((member, i) => {
|
|
100
|
-
let para = {};
|
|
101
|
-
para.Name = member.name.getText();
|
|
102
|
-
if (para.Name.length > 45) throw new Error(`Parameter name length >45 '${para.Name}'`);
|
|
103
|
-
let rawDocTags = ts.getJSDocTags(member);
|
|
104
|
-
if (rawDocTags.length) {
|
|
105
|
-
let dict = getTagDict(rawDocTags);
|
|
106
|
-
if (dict.summary) para.Description = dict.summary;
|
|
107
|
-
if (dict.creatorType) para.Type = dict.creatorType;
|
|
108
|
-
if (dict.default && dict.creatorType) para.Default = parseDefault(dict.default, dict.creatorType);
|
|
109
|
-
para.DisplayIndex = i + 1;
|
|
110
|
-
}
|
|
111
|
-
return para;
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
function getTagDict(tags) {
|
|
115
|
-
let dict = {};
|
|
116
|
-
tags.forEach(tag => {
|
|
117
|
-
dict[tag.tagName.text] = tag.comment;
|
|
118
|
-
});
|
|
119
|
-
return dict;
|
|
120
|
-
}
|
|
121
|
-
function findParametersInterfaceInFiles(program, fileList, name) {
|
|
122
|
-
for (const file of fileList) {
|
|
123
|
-
const sourceFile = program.getSourceFile(file);
|
|
124
|
-
if (sourceFile === undefined) {
|
|
125
|
-
throw new Error(`Expected a source file to exist for file name "${file}"`);
|
|
126
|
-
}
|
|
127
|
-
let interfaceDeclaration;
|
|
128
|
-
ts.forEachChild(sourceFile, node => {
|
|
129
|
-
interfaceDeclaration = findParametersInterface(node, name);
|
|
130
|
-
return interfaceDeclaration !== undefined;
|
|
131
|
-
});
|
|
132
|
-
if (interfaceDeclaration !== undefined) {
|
|
133
|
-
return interfaceDeclaration;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return undefined;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Extracts and returns script array for _Index.json from a src folder
|
|
141
|
-
*
|
|
142
|
-
* @param folderPath path to a src folder
|
|
143
|
-
*/
|
|
144
|
-
function extract(location, ignore = []) {
|
|
145
|
-
const files = getPackageTypescriptFiles(location);
|
|
146
|
-
const filtered = files.filter(path => {
|
|
147
|
-
return !ignore.some(suffix => path.endsWith(suffix));
|
|
148
|
-
});
|
|
149
|
-
let arr = new Array();
|
|
150
|
-
let program = ts.createProgram(filtered, {
|
|
151
|
-
allowJs: true
|
|
152
|
-
});
|
|
153
|
-
program.getTypeChecker();
|
|
154
|
-
filtered.forEach(file => {
|
|
155
|
-
// Create a Program to represent the project, then pull out the
|
|
156
|
-
// source file to parse its AST.
|
|
157
|
-
const sourceFile = program.getSourceFile(file);
|
|
158
|
-
|
|
159
|
-
// Loop through the root AST nodes of the file
|
|
160
|
-
ts.forEachChild(sourceFile, node => {
|
|
161
|
-
const evalNode = findEvaluatorNode(node);
|
|
162
|
-
if (evalNode === undefined) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
let moduleName = getModuleName(node);
|
|
166
|
-
if (evalNode.name === undefined) {
|
|
167
|
-
throw new Error(`Expected evaluator class to have a name`);
|
|
168
|
-
}
|
|
169
|
-
const name = moduleName + "." + evalNode.name.getText();
|
|
170
|
-
if (name.length > 45) throw new Error(`Package name length >45 '${name}'`);
|
|
171
|
-
let para = getParameter(evalNode);
|
|
172
|
-
let paraName = (para === null || para === void 0 ? void 0 : para.type).typeName.getText();
|
|
173
|
-
let interfac = findParametersInterfaceInFiles(program, filtered, paraName);
|
|
174
|
-
if (interfac === undefined) {
|
|
175
|
-
throw new Error(`Failed to find parameters type declaration for evaluator ${evalNode.name.getText()}`);
|
|
176
|
-
}
|
|
177
|
-
const obj = {
|
|
178
|
-
Name: name,
|
|
179
|
-
Parameters: [],
|
|
180
|
-
Type: "Evaluator"
|
|
181
|
-
};
|
|
182
|
-
let rawDocTags = ts.getJSDocTags(evalNode);
|
|
183
|
-
if (rawDocTags.length) {
|
|
184
|
-
let dict = getTagDict(rawDocTags);
|
|
185
|
-
if (dict.summary) obj.Description = dict.summary;
|
|
186
|
-
if (dict.creatorType) obj.Type = dict.creatorType;
|
|
187
|
-
}
|
|
188
|
-
obj.Parameters = genParameters(interfac);
|
|
189
|
-
arr.push(obj);
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
writePackageCreatorIndex(location, arr);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
export { extract };
|
|
196
|
-
//# sourceMappingURL=generate-a3a16031.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-a3a16031.js","sources":["../src/commands/generate.ts"],"sourcesContent":["import ts from \"typescript\";\n\nimport {\n\tPackageLocation,\n\twritePackageCreatorIndex,\n\treadPackageCreatorIndex,\n} from \"../lib/package\";\nimport { getPackageTypescriptFiles } from \"../lib/scripts\";\nimport {\n\tCreatorIndexEntry,\n\tCreatorIndexParameter,\n\tCreatorIndexParameterType,\n} from \"../lib/package\";\n\nfunction findTsNode<T extends ts.Node>(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => node is T,\n): T | undefined;\nfunction findTsNode(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => boolean,\n): ts.Node | undefined;\nfunction findTsNode(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => boolean,\n): ts.Node | undefined {\n\tlet result: ts.Node | undefined;\n\n\tts.forEachChild(node, (child) => {\n\t\tif (callback(child)) {\n\t\t\tresult = child;\n\t\t\treturn true;\n\t\t}\n\t});\n\n\treturn result;\n}\n\nfunction capitalizeFirstLetter(string) {\n\treturn string?.charAt(0).toUpperCase() + string?.slice(1);\n}\n\nfunction parseDefault(value: string, type: string) {\n\tconst uType: CreatorIndexParameterType = capitalizeFirstLetter(type);\n\tif (value === \"null\") return null;\n\tswitch (uType) {\n\t\tcase \"LengthM\":\n\t\tcase \"ArcDEG\":\n\t\tcase \"Float\":\n\t\t\treturn parseFloat(value);\n\t\tcase \"Integer\":\n\t\tcase \"Int\":\n\t\t\treturn parseInt(value);\n\t\tcase \"Boolean\":\n\t\tcase \"Bool\":\n\t\t\treturn value === \"true\";\n\t\tcase \"Material\":\n\t\tcase \"String\":\n\t\tdefault:\n\t\t\treturn value.replace(/^\"/, \"\").replace(/\"$/, \"\");\n\t}\n}\n\nfunction findEvaluatorNode(node: ts.Node): ts.ClassDeclaration | undefined {\n\tif (\n\t\tts.isModuleDeclaration(node) &&\n\t\tnode.body &&\n\t\tts.isModuleDeclaration(node.body) &&\n\t\tnode.body.body\n\t) {\n\t\tconst classDeclaration = findTsNode(\n\t\t\tnode.body.body,\n\t\t\t(child): child is ts.ClassDeclaration => {\n\t\t\t\tif (!ts.isClassDeclaration(child)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst isEvaluator = child.heritageClauses?.some((clause) => {\n\t\t\t\t\tif (clause.token !== ts.SyntaxKind.ExtendsKeyword) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn clause.types.some((type) =>\n\t\t\t\t\t\ttype.getText().includes(\"Evaluator\"),\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\treturn isEvaluator ?? false;\n\t\t\t},\n\t\t);\n\n\t\treturn classDeclaration;\n\t}\n}\n\nfunction getParameter(evaluatorNode: ts.ClassDeclaration) {\n\tlet memb = evaluatorNode.members?.find(\n\t\t(member) => member?.name?.getText().toLowerCase() == \"create\",\n\t);\n\tif (ts.isMethodDeclaration(memb!)) {\n\t\treturn memb.parameters.find(\n\t\t\t(para) => para.name.getText().toLowerCase() == \"parameters\",\n\t\t);\n\t}\n}\n\nfunction findParametersInterface(\n\tnode: ts.Node,\n\tinterfaceName: string,\n): ts.InterfaceDeclaration | undefined {\n\tif (\n\t\tts.isModuleDeclaration(node) &&\n\t\tnode.body &&\n\t\tts.isModuleDeclaration(node.body) &&\n\t\tnode.body.body\n\t) {\n\t\tconst interfaceDeclaration = findTsNode(\n\t\t\tnode.body.body,\n\t\t\t(child): child is ts.InterfaceDeclaration =>\n\t\t\t\tts.isInterfaceDeclaration(child) &&\n\t\t\t\tchild.name.getText() == interfaceName,\n\t\t);\n\n\t\treturn interfaceDeclaration;\n\t}\n\n\treturn undefined;\n}\n\nfunction getModuleName(sourceFile: ts.Node): string {\n\tlet fullName = \"\";\n\tif (ts.isModuleDeclaration(sourceFile)) {\n\t\tfullName += sourceFile.name.getText();\n\n\t\tlet packageB = sourceFile.body!;\n\t\tif (ts.isModuleDeclaration(packageB)) {\n\t\t\tfullName += \".\" + packageB.name.getText();\n\t\t}\n\t}\n\treturn fullName;\n}\n\nfunction genParameters(\n\tinterfac: ts.InterfaceDeclaration,\n): CreatorIndexParameter[] {\n\treturn interfac.members.map((member, i) => {\n\t\tlet para = {} as CreatorIndexParameter;\n\n\t\tpara.Name = member.name!.getText();\n\t\tif (para.Name.length > 45)\n\t\t\tthrow new Error(`Parameter name length >45 '${para.Name}'`);\n\n\t\tlet rawDocTags = ts.getJSDocTags(member);\n\t\tif (rawDocTags.length) {\n\t\t\tlet dict = getTagDict(rawDocTags);\n\t\t\tif (dict.summary) para.Description = dict.summary;\n\t\t\tif (dict.creatorType)\n\t\t\t\tpara.Type = dict.creatorType as CreatorIndexParameterType;\n\t\t\tif (dict.default && dict.creatorType)\n\t\t\t\tpara.Default = parseDefault(dict.default, dict.creatorType);\n\t\t\tpara.DisplayIndex = i + 1;\n\t\t}\n\t\treturn para;\n\t});\n}\n\ninterface IDocTags {\n\tdefault?: string;\n\tcreatorType?: string;\n\tsummary?: string;\n}\n\nfunction getTagDict(tags: any): IDocTags {\n\tlet dict = {};\n\ttags.forEach((tag) => {\n\t\tdict[tag.tagName.text] = tag.comment;\n\t});\n\treturn dict;\n}\n\nfunction findParametersInterfaceInFiles(\n\tprogram: ts.Program,\n\tfileList: string[],\n\tname: string,\n): ts.InterfaceDeclaration | undefined {\n\tfor (const file of fileList) {\n\t\tconst sourceFile = program.getSourceFile(file);\n\n\t\tif (sourceFile === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t`Expected a source file to exist for file name \"${file}\"`,\n\t\t\t);\n\t\t}\n\n\t\tlet interfaceDeclaration: ts.InterfaceDeclaration | undefined;\n\n\t\tts.forEachChild(sourceFile, (node) => {\n\t\t\tinterfaceDeclaration = findParametersInterface(node, name);\n\n\t\t\treturn interfaceDeclaration !== undefined;\n\t\t});\n\n\t\tif (interfaceDeclaration !== undefined) {\n\t\t\treturn interfaceDeclaration;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Extracts and returns script array for _Index.json from a src folder\n *\n * @param folderPath path to a src folder\n */\nexport function extract(location: PackageLocation, ignore: string[] = []) {\n\tconst files = getPackageTypescriptFiles(location);\n\tconst filtered = files.filter((path) => {\n\t\treturn !ignore.some((suffix) => path.endsWith(suffix));\n\t});\n\tlet arr = new Array<CreatorIndexEntry>();\n\n\tlet program = ts.createProgram(filtered, { allowJs: true });\n\tprogram.getTypeChecker();\n\tfiltered.forEach((file) => {\n\t\t// Create a Program to represent the project, then pull out the\n\t\t// source file to parse its AST.\n\t\tconst sourceFile = program.getSourceFile(file);\n\n\t\t// Loop through the root AST nodes of the file\n\t\tts.forEachChild(sourceFile!, (node) => {\n\t\t\tconst evalNode = findEvaluatorNode(node);\n\n\t\t\tif (evalNode === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet moduleName = getModuleName(node);\n\n\t\t\tif (evalNode.name === undefined) {\n\t\t\t\tthrow new Error(`Expected evaluator class to have a name`);\n\t\t\t}\n\n\t\t\tconst name = moduleName + \".\" + evalNode.name.getText();\n\n\t\t\tif (name.length > 45)\n\t\t\t\tthrow new Error(`Package name length >45 '${name}'`);\n\n\t\t\tlet para = getParameter(evalNode);\n\t\t\tlet paraName = (para?.type as any).typeName.getText();\n\t\t\tlet interfac = findParametersInterfaceInFiles(\n\t\t\t\tprogram,\n\t\t\t\tfiltered,\n\t\t\t\tparaName,\n\t\t\t);\n\n\t\t\tif (interfac === undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Failed to find parameters type declaration for evaluator ${evalNode.name.getText()}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst obj: CreatorIndexEntry = {\n\t\t\t\tName: name,\n\t\t\t\tParameters: [],\n\t\t\t\tType: \"Evaluator\",\n\t\t\t};\n\n\t\t\tlet rawDocTags = ts.getJSDocTags(evalNode);\n\t\t\tif (rawDocTags.length) {\n\t\t\t\tlet dict = getTagDict(rawDocTags);\n\t\t\t\tif (dict.summary) obj.Description = dict.summary;\n\t\t\t\tif (dict.creatorType)\n\t\t\t\t\tobj.Type = dict.creatorType as \"Interactor\" | \"Evaluator\";\n\t\t\t}\n\n\t\t\tobj.Parameters = genParameters(interfac);\n\n\t\t\tarr.push(obj);\n\t\t});\n\t});\n\n\twritePackageCreatorIndex(location, arr);\n}\n"],"names":["findTsNode","node","callback","result","ts","forEachChild","child","capitalizeFirstLetter","string","charAt","toUpperCase","slice","parseDefault","value","type","uType","parseFloat","parseInt","replace","findEvaluatorNode","isModuleDeclaration","body","classDeclaration","_child$heritageClause","isClassDeclaration","isEvaluator","heritageClauses","some","clause","token","SyntaxKind","ExtendsKeyword","types","getText","includes","getParameter","evaluatorNode","_evaluatorNode$member","memb","members","find","member","_member$name","name","toLowerCase","isMethodDeclaration","parameters","para","findParametersInterface","interfaceName","interfaceDeclaration","isInterfaceDeclaration","undefined","getModuleName","sourceFile","fullName","packageB","genParameters","interfac","map","i","Name","length","Error","rawDocTags","getJSDocTags","dict","getTagDict","summary","Description","creatorType","Type","default","Default","DisplayIndex","tags","forEach","tag","tagName","text","comment","findParametersInterfaceInFiles","program","fileList","file","getSourceFile","extract","location","ignore","files","getPackageTypescriptFiles","filtered","filter","path","suffix","endsWith","arr","Array","createProgram","allowJs","getTypeChecker","evalNode","moduleName","paraName","typeName","obj","Parameters","push","writePackageCreatorIndex"],"mappings":"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"}
|