@intelligentgraphics/ig.gfx.packager 3.0.8 → 3.0.10
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-cb85e4b5.js +1393 -0
- package/build/cli-cb85e4b5.js.map +1 -0
- package/build/dependencies-2565d80c.js +133 -0
- package/build/dependencies-2565d80c.js.map +1 -0
- package/build/generateIndex-f386d332.js +257 -0
- package/build/generateIndex-f386d332.js.map +1 -0
- package/build/generateParameterType-151ab313.js +75 -0
- package/build/generateParameterType-151ab313.js.map +1 -0
- package/build/index-67a112b8.js +312 -0
- package/build/index-67a112b8.js.map +1 -0
- package/build/index-7a955335.js +479 -0
- package/build/{index-66de4fea.js.map → index-7a955335.js.map} +1 -1
- package/build/index.mjs +1 -1
- package/build/index.mjs.map +1 -1
- package/build/postinstall-962af586.js +67 -0
- package/build/{postinstall-ecbdcf37.js.map → postinstall-962af586.js.map} +1 -1
- package/build/publishNpm-1838e45c.js +134 -0
- package/build/{publishNpm-5ea951b3.js.map → publishNpm-1838e45c.js.map} +1 -1
- package/build/versionFile-cf6657c8.js +384 -0
- package/build/versionFile-cf6657c8.js.map +1 -0
- package/package.json +4 -6
- package/readme.md +86 -2
- package/build/cli-fbbf208b.js +0 -2530
- package/build/cli-fbbf208b.js.map +0 -1
- package/build/dependencies-435193d1.js +0 -133
- package/build/dependencies-435193d1.js.map +0 -1
- package/build/generateIndex-eb975b01.js +0 -265
- package/build/generateIndex-eb975b01.js.map +0 -1
- package/build/generateParameterType-e49e4ba0.js +0 -74
- package/build/generateParameterType-e49e4ba0.js.map +0 -1
- package/build/index-66de4fea.js +0 -480
- package/build/index-c1b42e4c.js +0 -308
- package/build/index-c1b42e4c.js.map +0 -1
- package/build/postinstall-ecbdcf37.js +0 -64
- package/build/publishNpm-5ea951b3.js +0 -133
- package/build/versionFile-13099b85.js +0 -370
- package/build/versionFile-13099b85.js.map +0 -1
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
import simpleGit from 'simple-git';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import 'resolve';
|
|
5
|
+
import 'write-pkg';
|
|
6
|
+
import { i as isErrorENOENT } from './cli-cb85e4b5.js';
|
|
7
|
+
import 'glob';
|
|
8
|
+
import 'node:path';
|
|
9
|
+
import 'node:fs';
|
|
10
|
+
import 'axios';
|
|
11
|
+
|
|
12
|
+
const readStringFromFile = (filePath)=>fs.readFileSync(filePath, {
|
|
13
|
+
encoding: "utf8"
|
|
14
|
+
});
|
|
15
|
+
const readStringFromFileOrUndefined = (filePath)=>{
|
|
16
|
+
try {
|
|
17
|
+
return readStringFromFile(filePath);
|
|
18
|
+
} catch (err) {
|
|
19
|
+
if (!isErrorENOENT(err)) {
|
|
20
|
+
throw err;
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const getVersionInformationFromGit = async (workspaceLocation, packageLocation)=>{
|
|
27
|
+
try {
|
|
28
|
+
var _log_latest, _log_latest1;
|
|
29
|
+
const git = simpleGit({
|
|
30
|
+
baseDir: workspaceLocation.path
|
|
31
|
+
});
|
|
32
|
+
// check wether the files for a folder are changed
|
|
33
|
+
// if so, mark as dirty
|
|
34
|
+
const diff = await git.diffSummary();
|
|
35
|
+
const dirty = diff.files.some((file)=>{
|
|
36
|
+
if (file.file.toLowerCase().includes("releases") || file.file.toLowerCase().endsWith("version.ts") || file.file.toLowerCase().endsWith("package.json")) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
const fullPath = path.resolve(workspaceLocation.path, file.file);
|
|
40
|
+
const relativePath = path.relative(packageLocation.path, fullPath);
|
|
41
|
+
return !relativePath.startsWith("..");
|
|
42
|
+
});
|
|
43
|
+
const log = await git.log({
|
|
44
|
+
maxCount: 1
|
|
45
|
+
});
|
|
46
|
+
const commit = !((_log_latest = log.latest) == null ? void 0 : _log_latest.hash) ? undefined : log.latest.hash.substring(0, 7);
|
|
47
|
+
return {
|
|
48
|
+
commit,
|
|
49
|
+
dirty,
|
|
50
|
+
commitDate: (_log_latest1 = log.latest) == null ? void 0 : _log_latest1.date
|
|
51
|
+
};
|
|
52
|
+
} catch (err) {
|
|
53
|
+
return {};
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const getWorkspaceBannerText = (manifest)=>{
|
|
58
|
+
var _manifest_packager;
|
|
59
|
+
let bannerText = manifest == null ? void 0 : (_manifest_packager = manifest.packager) == null ? void 0 : _manifest_packager.banner;
|
|
60
|
+
if (bannerText) {
|
|
61
|
+
const match = bannerText.match(/Copyright \(C\) (\d+)( ?- ?(\d+))?/);
|
|
62
|
+
if (match !== null) {
|
|
63
|
+
const startYear = parseInt(match[1]);
|
|
64
|
+
const endYear = new Date().getFullYear();
|
|
65
|
+
if (startYear !== endYear) {
|
|
66
|
+
bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear} - ${endYear}`);
|
|
67
|
+
} else {
|
|
68
|
+
bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return bannerText;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// Stolen from ig.tools.core
|
|
76
|
+
class PackageVersion {
|
|
77
|
+
static #_ = (()=>{
|
|
78
|
+
// https://regex101.com/r/90PEY9/1
|
|
79
|
+
this.fullTextMatcher = /(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?/;
|
|
80
|
+
})();
|
|
81
|
+
static #_1 = (()=>{
|
|
82
|
+
this.lineMatcher = /^(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?$/;
|
|
83
|
+
})();
|
|
84
|
+
static extractFromText(input, description) {
|
|
85
|
+
if (input === undefined) {
|
|
86
|
+
throw new Error(`Can not parse version from undefined`);
|
|
87
|
+
}
|
|
88
|
+
const match = input.match(PackageVersion.fullTextMatcher);
|
|
89
|
+
if (!match) {
|
|
90
|
+
throw new Error(`Could not extract a version from input: ${input}`);
|
|
91
|
+
}
|
|
92
|
+
return PackageVersion.fromMatch(match, description);
|
|
93
|
+
}
|
|
94
|
+
static extractFromLine(input, description) {
|
|
95
|
+
if (input === undefined) {
|
|
96
|
+
throw new Error(`Can not parse version from undefined`);
|
|
97
|
+
}
|
|
98
|
+
const match = input.match(PackageVersion.lineMatcher);
|
|
99
|
+
if (!match) {
|
|
100
|
+
throw new Error(`Could not parse version from input: ${input}`);
|
|
101
|
+
}
|
|
102
|
+
return PackageVersion.fromMatch(match, description);
|
|
103
|
+
}
|
|
104
|
+
static equals(a, b, checkPrerelease = false) {
|
|
105
|
+
if (a.major !== b.major || a.minor !== b.minor || a.patch !== b.patch) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
if (checkPrerelease === false) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
if (a.preRelease === b.preRelease) {
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
if (a.preRelease === undefined || b.preRelease === undefined) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
return a.preRelease.type === b.preRelease.type && a.preRelease.version === b.preRelease.version;
|
|
118
|
+
}
|
|
119
|
+
static fromMatch([, major, , minor = "0", , patch = "0", , build, , preReleaseType, preReleaseNumber], description) {
|
|
120
|
+
let preRelease = undefined;
|
|
121
|
+
let buildNumber = 100;
|
|
122
|
+
if (preReleaseType && preReleaseNumber) {
|
|
123
|
+
preRelease = {
|
|
124
|
+
type: preReleaseType,
|
|
125
|
+
version: parseInt(preReleaseNumber)
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (build) {
|
|
129
|
+
buildNumber = Number(build);
|
|
130
|
+
} else if (description) {
|
|
131
|
+
const descriptionMatch = description.match(/(\d+)\)$/);
|
|
132
|
+
if (descriptionMatch) {
|
|
133
|
+
buildNumber = parseInt(descriptionMatch[1]);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return new PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
|
|
137
|
+
}
|
|
138
|
+
static sort(a, b, ascending = true) {
|
|
139
|
+
const createSortResult = (a, b)=>ascending ? a - b : b - a;
|
|
140
|
+
if (a.major !== b.major) {
|
|
141
|
+
return createSortResult(a.major, b.major);
|
|
142
|
+
}
|
|
143
|
+
if (a.minor !== b.minor) {
|
|
144
|
+
return createSortResult(a.minor, b.minor);
|
|
145
|
+
}
|
|
146
|
+
if (a.patch !== b.patch) {
|
|
147
|
+
return createSortResult(a.patch, b.patch);
|
|
148
|
+
}
|
|
149
|
+
return createSortResult(a.preRelease ? a.preRelease.version : 0, b.preRelease ? b.preRelease.version : 0);
|
|
150
|
+
}
|
|
151
|
+
static toNumber(version) {
|
|
152
|
+
return ((version.major * 1000 + version.minor) * 1000 + version.patch) * 1000 + version.buildNumber;
|
|
153
|
+
}
|
|
154
|
+
constructor(major, minor, patch, preRelease, buildNumber){
|
|
155
|
+
this.major = major;
|
|
156
|
+
this.minor = minor;
|
|
157
|
+
this.patch = patch;
|
|
158
|
+
this.preRelease = preRelease;
|
|
159
|
+
this.buildNumber = buildNumber;
|
|
160
|
+
}
|
|
161
|
+
isPreRelease() {
|
|
162
|
+
return this.preRelease !== undefined;
|
|
163
|
+
}
|
|
164
|
+
clone() {
|
|
165
|
+
return new PackageVersion(this.major, this.minor, this.patch, this.preRelease ? {
|
|
166
|
+
...this.preRelease
|
|
167
|
+
} : undefined, this.buildNumber);
|
|
168
|
+
}
|
|
169
|
+
incrementMajor() {
|
|
170
|
+
this.preRelease = undefined;
|
|
171
|
+
this.patch = 0;
|
|
172
|
+
this.minor = 0;
|
|
173
|
+
this.major++;
|
|
174
|
+
}
|
|
175
|
+
incrementMinor() {
|
|
176
|
+
this.preRelease = undefined;
|
|
177
|
+
this.patch = 0;
|
|
178
|
+
this.minor++;
|
|
179
|
+
}
|
|
180
|
+
incrementPatch() {
|
|
181
|
+
this.preRelease = undefined;
|
|
182
|
+
this.patch++;
|
|
183
|
+
}
|
|
184
|
+
createPreRelease(type) {
|
|
185
|
+
if (!this.preRelease) {
|
|
186
|
+
this.buildNumber = 1;
|
|
187
|
+
} else {
|
|
188
|
+
this.buildNumber++;
|
|
189
|
+
}
|
|
190
|
+
if (this.preRelease && type === this.preRelease.type) {
|
|
191
|
+
this.preRelease.version++;
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
this.preRelease = {
|
|
195
|
+
version: 0,
|
|
196
|
+
type
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
createRelease() {
|
|
200
|
+
this.preRelease = undefined;
|
|
201
|
+
this.buildNumber = 100;
|
|
202
|
+
}
|
|
203
|
+
toVersionString({ buildNumber } = {}) {
|
|
204
|
+
let version = [
|
|
205
|
+
this.major,
|
|
206
|
+
this.minor,
|
|
207
|
+
this.patch
|
|
208
|
+
].join(".");
|
|
209
|
+
if (buildNumber) {
|
|
210
|
+
version += "." + this.buildNumber;
|
|
211
|
+
}
|
|
212
|
+
if (this.preRelease) {
|
|
213
|
+
version += `-${this.preRelease.type}.${this.preRelease.version}`;
|
|
214
|
+
}
|
|
215
|
+
return version;
|
|
216
|
+
}
|
|
217
|
+
toDescriptionString(packageName) {
|
|
218
|
+
const base = [
|
|
219
|
+
this.major,
|
|
220
|
+
this.minor,
|
|
221
|
+
this.patch
|
|
222
|
+
].join(".");
|
|
223
|
+
const parts = [
|
|
224
|
+
packageName,
|
|
225
|
+
base
|
|
226
|
+
];
|
|
227
|
+
if (this.preRelease) {
|
|
228
|
+
parts.push(upperCaseFirst(this.preRelease.type));
|
|
229
|
+
parts.push(this.preRelease.version);
|
|
230
|
+
}
|
|
231
|
+
parts.push(`(${base}.${this.buildNumber})`);
|
|
232
|
+
return parts.join(" ");
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Determines wether the version is lesser than the input version
|
|
236
|
+
*
|
|
237
|
+
* @param {PackageVersion} version
|
|
238
|
+
* @returns
|
|
239
|
+
*/ isLesserThan(version) {
|
|
240
|
+
return PackageVersion.toNumber(this) < PackageVersion.toNumber(version);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Determines wether the version is greater than the input version
|
|
244
|
+
*
|
|
245
|
+
* @param {PackageVersion} version
|
|
246
|
+
* @returns
|
|
247
|
+
*/ isGreaterThan(version) {
|
|
248
|
+
return PackageVersion.toNumber(this) > PackageVersion.toNumber(version);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
const upperCaseFirst = (input)=>{
|
|
252
|
+
return input.slice(0, 1).toUpperCase() + input.slice(1);
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
const parseVersionFromString = (input)=>{
|
|
256
|
+
if (input === undefined) {
|
|
257
|
+
throw new Error(`Can not parse version from undefined`);
|
|
258
|
+
}
|
|
259
|
+
let match;
|
|
260
|
+
let major;
|
|
261
|
+
let minor;
|
|
262
|
+
let patch;
|
|
263
|
+
let build;
|
|
264
|
+
let preReleaseType;
|
|
265
|
+
let preReleaseNumber;
|
|
266
|
+
if (// first try to find a full match with build number
|
|
267
|
+
(match = input.match(/(\d+)\.(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
|
|
268
|
+
[, major, minor, patch, build, preReleaseType, preReleaseNumber] = match;
|
|
269
|
+
} else if ((match = input.match(/(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
|
|
270
|
+
[, major, minor, patch, , preReleaseType, preReleaseNumber] = match;
|
|
271
|
+
}
|
|
272
|
+
if (match === null) {
|
|
273
|
+
throw new Error(`Could not parse version from input: ${input}`);
|
|
274
|
+
}
|
|
275
|
+
let preRelease = undefined;
|
|
276
|
+
let buildNumber = 100;
|
|
277
|
+
if (preReleaseType && preReleaseNumber) {
|
|
278
|
+
preRelease = {
|
|
279
|
+
type: preReleaseType,
|
|
280
|
+
version: parseInt(preReleaseNumber)
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
if (build) {
|
|
284
|
+
buildNumber = Number(build);
|
|
285
|
+
} else if (input) {
|
|
286
|
+
const descriptionMatch = input.match(/(\d+)\)$/);
|
|
287
|
+
if (descriptionMatch) {
|
|
288
|
+
buildNumber = parseInt(descriptionMatch[1]);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return new PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
|
|
292
|
+
};
|
|
293
|
+
// 1000001001 -> 1.0.1.1
|
|
294
|
+
// 1002017001 -> 1.2.17.1
|
|
295
|
+
const parseVersionFromNumericVersion = (version)=>{
|
|
296
|
+
const major = Math.floor(version / 1000000000);
|
|
297
|
+
const minor = Math.floor(version % 1000000000 / 1000000);
|
|
298
|
+
const patch = Math.floor(version % 1000000 / 1000);
|
|
299
|
+
const buildNumber = version % 1000;
|
|
300
|
+
return new PackageVersion(major, minor, patch, undefined, buildNumber);
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
// https://regex101.com/r/LtGAu5/1
|
|
304
|
+
const logRegex = /console\.log\(\s*"([\w\s\.\(\)]+)\ *Copyright[\w\s\(\)\.]+(\d{4}|\d{4} - \d{4})([\w\s\(\)\.]+)?",?\s*\)/i;
|
|
305
|
+
const currentYear = new Date(Date.now()).getFullYear();
|
|
306
|
+
const getVersionFileHandler = (location)=>{
|
|
307
|
+
const filePath = path.join(location.scriptsDir, "Version.ts");
|
|
308
|
+
const invalidVersionFile = (versionFile)=>({
|
|
309
|
+
version: undefined,
|
|
310
|
+
write: (name, newVersion)=>{
|
|
311
|
+
const scriptsContent = fs.readdirSync(location.scriptsDir);
|
|
312
|
+
const tsFiles = scriptsContent.filter((file)=>file.endsWith(".ts"));
|
|
313
|
+
if (tsFiles.length > 0) {
|
|
314
|
+
return createVersionFileWriter([
|
|
315
|
+
currentYear
|
|
316
|
+
], "")(name, newVersion);
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
reset: ()=>{
|
|
320
|
+
if (versionFile !== undefined) {
|
|
321
|
+
fs.writeFileSync(filePath, versionFile, {
|
|
322
|
+
encoding: "utf8"
|
|
323
|
+
});
|
|
324
|
+
} else {
|
|
325
|
+
try {
|
|
326
|
+
fs.rmSync(filePath);
|
|
327
|
+
} catch (err) {
|
|
328
|
+
if (!isErrorENOENT(err)) {
|
|
329
|
+
throw err;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
const createVersionFileWriter = (copyright = [
|
|
336
|
+
currentYear
|
|
337
|
+
], copyrightStuff = "")=>(name, newVersion)=>{
|
|
338
|
+
const descriptionText = newVersion.toDescriptionString(name);
|
|
339
|
+
const copyrightText = createYearString(copyright);
|
|
340
|
+
const result = `console.log("${descriptionText}. Copyright (C) ${copyrightText}${copyrightStuff}");`;
|
|
341
|
+
fs.writeFileSync(filePath, result, {
|
|
342
|
+
encoding: "utf-8"
|
|
343
|
+
});
|
|
344
|
+
};
|
|
345
|
+
let rawVersionFile = readStringFromFileOrUndefined(filePath);
|
|
346
|
+
if (rawVersionFile === undefined) {
|
|
347
|
+
return invalidVersionFile(rawVersionFile);
|
|
348
|
+
}
|
|
349
|
+
const versionFile = rawVersionFile.replace(/\n/g, "");
|
|
350
|
+
const match = versionFile.match(logRegex);
|
|
351
|
+
if (!match) {
|
|
352
|
+
return invalidVersionFile(versionFile);
|
|
353
|
+
}
|
|
354
|
+
const [_full, _description, copyright, copyrightStuff] = match;
|
|
355
|
+
const copyrightYears = copyright.match(/^(\d+)( ?- ?(\d+))?$/);
|
|
356
|
+
let years;
|
|
357
|
+
if (copyrightYears === null) {
|
|
358
|
+
years = [
|
|
359
|
+
currentYear
|
|
360
|
+
];
|
|
361
|
+
} else {
|
|
362
|
+
years = [
|
|
363
|
+
Number(copyrightYears[1]),
|
|
364
|
+
currentYear
|
|
365
|
+
];
|
|
366
|
+
}
|
|
367
|
+
return {
|
|
368
|
+
write: createVersionFileWriter(years, copyrightStuff),
|
|
369
|
+
reset: ()=>{
|
|
370
|
+
fs.writeFileSync(filePath, versionFile, {
|
|
371
|
+
encoding: "utf8"
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
const createYearString = (years)=>{
|
|
377
|
+
if (years[1] === undefined || years[0] === years[1]) {
|
|
378
|
+
return years[0].toString();
|
|
379
|
+
}
|
|
380
|
+
return `${years[0]} - ${years[1]}`;
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
export { PackageVersion as P, getVersionInformationFromGit as a, getWorkspaceBannerText as b, parseVersionFromNumericVersion as c, getVersionFileHandler as g, parseVersionFromString as p };
|
|
384
|
+
//# sourceMappingURL=versionFile-cf6657c8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionFile-cf6657c8.js","sources":["../../tools.core/build/fs.mjs","../src/lib/git.ts","../src/lib/banner.ts","../src/lib/packageVersion.ts","../src/lib/parseVersion.ts","../src/lib/versionFile.ts"],"sourcesContent":["import * as fs from 'fs';\nimport { isErrorENOENT } from './error.mjs';\n\nconst readStringFromFile = (filePath)=>fs.readFileSync(filePath, {\n encoding: \"utf8\"\n });\nconst readStringFromFileOrUndefined = (filePath)=>{\n try {\n return readStringFromFile(filePath);\n } catch (err) {\n if (!isErrorENOENT(err)) {\n throw err;\n }\n return undefined;\n }\n};\n\nexport { readStringFromFile, readStringFromFileOrUndefined };\n//# sourceMappingURL=fs.mjs.map\n","import simpleGit from \"simple-git\";\nimport * as path from \"path\";\n\nimport { WorkspaceLocation } from \"./workspace\";\nimport { PackageLocation } from \"./package\";\n\nexport const getVersionInformationFromGit = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tpackageLocation: PackageLocation,\n) => {\n\ttry {\n\t\tconst git = simpleGit({\n\t\t\tbaseDir: workspaceLocation.path,\n\t\t});\n\n\t\t// check wether the files for a folder are changed\n\t\t// if so, mark as dirty\n\t\tconst diff = await git.diffSummary();\n\n\t\tconst dirty = diff.files.some((file) => {\n\t\t\tif (\n\t\t\t\tfile.file.toLowerCase().includes(\"releases\") ||\n\t\t\t\tfile.file.toLowerCase().endsWith(\"version.ts\") ||\n\t\t\t\tfile.file.toLowerCase().endsWith(\"package.json\")\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst fullPath = path.resolve(workspaceLocation.path, file.file);\n\t\t\tconst relativePath = path.relative(packageLocation.path, fullPath);\n\n\t\t\treturn !relativePath.startsWith(\"..\");\n\t\t});\n\n\t\tconst log = await git.log({ maxCount: 1 });\n\t\tconst commit = !log.latest?.hash\n\t\t\t? undefined\n\t\t\t: log.latest.hash.substring(0, 7);\n\n\t\treturn {\n\t\t\tcommit,\n\t\t\tdirty,\n\t\t\tcommitDate: log.latest?.date,\n\t\t};\n\t} catch (err) {\n\t\treturn {};\n\t}\n};\n","import { WorkspacePackageJSON } from \"./workspace\";\n\nexport const getWorkspaceBannerText = (manifest: WorkspacePackageJSON) => {\n\tlet bannerText = manifest?.packager?.banner;\n\n\tif (bannerText) {\n\t\tconst match = bannerText.match(/Copyright \\(C\\) (\\d+)( ?- ?(\\d+))?/);\n\n\t\tif (match !== null) {\n\t\t\tconst startYear = parseInt(match[1]);\n\t\t\tconst endYear = new Date().getFullYear();\n\n\t\t\tif (startYear !== endYear) {\n\t\t\t\tbannerText = bannerText.replace(\n\t\t\t\t\tmatch[0],\n\t\t\t\t\t`Copyright (C) ${startYear} - ${endYear}`,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tbannerText = bannerText.replace(\n\t\t\t\t\tmatch[0],\n\t\t\t\t\t`Copyright (C) ${startYear}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn bannerText;\n};\n","// Stolen from ig.tools.core\n\nexport interface PackageVersionToVersionStringParams {\n\tbuildNumber?: boolean;\n}\n\nexport class PackageVersion {\n\t// https://regex101.com/r/90PEY9/1\n\tpublic static fullTextMatcher =\n\t\t/(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?/;\n\tpublic static lineMatcher =\n\t\t/^(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?$/;\n\n\tpublic static extractFromText(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.fullTextMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not extract a version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static extractFromLine(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.lineMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not parse version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static equals(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tcheckPrerelease = false,\n\t) {\n\t\tif (a.major !== b.major || a.minor !== b.minor || a.patch !== b.patch) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (checkPrerelease === false) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === b.preRelease) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === undefined || b.preRelease === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\ta.preRelease.type === b.preRelease.type &&\n\t\t\ta.preRelease.version === b.preRelease.version\n\t\t);\n\t}\n\n\tprivate static fromMatch(\n\t\t[\n\t\t\t,\n\t\t\tmajor,\n\t\t\t,\n\t\t\tminor = \"0\",\n\t\t\t,\n\t\t\tpatch = \"0\",\n\t\t\t,\n\t\t\tbuild,\n\t\t\t,\n\t\t\tpreReleaseType,\n\t\t\tpreReleaseNumber,\n\t\t]: RegExpMatchArray,\n\t\tdescription?: string,\n\t) {\n\t\tlet preRelease: PackageVersion[\"preRelease\"] = undefined;\n\t\tlet buildNumber = 100;\n\n\t\tif (preReleaseType && preReleaseNumber) {\n\t\t\tpreRelease = {\n\t\t\t\ttype: preReleaseType,\n\t\t\t\tversion: parseInt(preReleaseNumber),\n\t\t\t};\n\t\t}\n\n\t\tif (build) {\n\t\t\tbuildNumber = Number(build);\n\t\t} else if (description) {\n\t\t\tconst descriptionMatch = description.match(/(\\d+)\\)$/);\n\n\t\t\tif (descriptionMatch) {\n\t\t\t\tbuildNumber = parseInt(descriptionMatch[1]);\n\t\t\t}\n\t\t}\n\n\t\treturn new PackageVersion(\n\t\t\tparseInt(major),\n\t\t\tparseInt(minor),\n\t\t\tparseInt(patch),\n\t\t\tpreRelease,\n\t\t\tbuildNumber,\n\t\t);\n\t}\n\n\tpublic static sort(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tascending: boolean = true,\n\t) {\n\t\tconst createSortResult = (a: number, b: number) =>\n\t\t\tascending ? a - b : b - a;\n\n\t\tif (a.major !== b.major) {\n\t\t\treturn createSortResult(a.major, b.major);\n\t\t}\n\n\t\tif (a.minor !== b.minor) {\n\t\t\treturn createSortResult(a.minor, b.minor);\n\t\t}\n\n\t\tif (a.patch !== b.patch) {\n\t\t\treturn createSortResult(a.patch, b.patch);\n\t\t}\n\n\t\treturn createSortResult(\n\t\t\ta.preRelease ? a.preRelease.version : 0,\n\t\t\tb.preRelease ? b.preRelease.version : 0,\n\t\t);\n\t}\n\n\tprivate static toNumber(version: PackageVersion) {\n\t\treturn (\n\t\t\t((version.major * 1000 + version.minor) * 1000 + version.patch) *\n\t\t\t\t1000 +\n\t\t\tversion.buildNumber\n\t\t);\n\t}\n\n\tconstructor(\n\t\tpublic major: number,\n\t\tpublic minor: number,\n\t\tpublic patch: number,\n\t\tpublic preRelease: { type: string; version: number } | undefined,\n\t\tpublic buildNumber: number,\n\t) {}\n\n\tpublic isPreRelease() {\n\t\treturn this.preRelease !== undefined;\n\t}\n\n\tpublic clone() {\n\t\treturn new PackageVersion(\n\t\t\tthis.major,\n\t\t\tthis.minor,\n\t\t\tthis.patch,\n\t\t\tthis.preRelease ? { ...this.preRelease } : undefined,\n\t\t\tthis.buildNumber,\n\t\t);\n\t}\n\n\tpublic incrementMajor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor = 0;\n\t\tthis.major++;\n\t}\n\n\tpublic incrementMinor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor++;\n\t}\n\n\tpublic incrementPatch() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch++;\n\t}\n\n\tpublic createPreRelease(type: string) {\n\t\tif (!this.preRelease) {\n\t\t\tthis.buildNumber = 1;\n\t\t} else {\n\t\t\tthis.buildNumber++;\n\t\t}\n\n\t\tif (this.preRelease && type === this.preRelease.type) {\n\t\t\tthis.preRelease.version++;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.preRelease = {\n\t\t\tversion: 0,\n\t\t\ttype,\n\t\t};\n\t}\n\n\tpublic createRelease() {\n\t\tthis.preRelease = undefined;\n\t\tthis.buildNumber = 100;\n\t}\n\n\tpublic toVersionString({\n\t\tbuildNumber,\n\t}: PackageVersionToVersionStringParams = {}) {\n\t\tlet version = [this.major, this.minor, this.patch].join(\".\");\n\n\t\tif (buildNumber) {\n\t\t\tversion += \".\" + this.buildNumber;\n\t\t}\n\n\t\tif (this.preRelease) {\n\t\t\tversion += `-${this.preRelease.type}.${this.preRelease.version}`;\n\t\t}\n\n\t\treturn version;\n\t}\n\n\tpublic toDescriptionString(packageName: string) {\n\t\tconst base = [this.major, this.minor, this.patch].join(\".\");\n\t\tconst parts: (number | string)[] = [packageName, base];\n\n\t\tif (this.preRelease) {\n\t\t\tparts.push(upperCaseFirst(this.preRelease.type));\n\t\t\tparts.push(this.preRelease.version);\n\t\t}\n\n\t\tparts.push(`(${base}.${this.buildNumber})`);\n\n\t\treturn parts.join(\" \");\n\t}\n\n\t/**\n\t * Determines wether the version is lesser than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isLesserThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) < PackageVersion.toNumber(version);\n\t}\n\n\t/**\n\t * Determines wether the version is greater than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isGreaterThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) > PackageVersion.toNumber(version);\n\t}\n}\n\nconst upperCaseFirst = (input: string) => {\n\treturn input.slice(0, 1).toUpperCase() + input.slice(1);\n};\n","import { PackageVersion } from \"./packageVersion\";\n\nexport const parseVersionFromString = (input: string) => {\n\tif (input === undefined) {\n\t\tthrow new Error(`Can not parse version from undefined`);\n\t}\n\n\tlet match: RegExpMatchArray | null;\n\n\tlet major!: string;\n\tlet minor!: string;\n\tlet patch!: string;\n\tlet build: string | undefined;\n\tlet preReleaseType: string | undefined;\n\tlet preReleaseNumber: string | undefined;\n\n\tif (\n\t\t// first try to find a full match with build number\n\t\t(match = input.match(\n\t\t\t/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)(-([^\\.]+)\\.(\\d+))?/,\n\t\t)) !== null\n\t) {\n\t\t[, major, minor, patch, build, preReleaseType, preReleaseNumber] =\n\t\t\tmatch;\n\t} else if (\n\t\t(match = input.match(/(\\d+)\\.(\\d+)\\.(\\d+)(-([^\\.]+)\\.(\\d+))?/)) !== null\n\t) {\n\t\t[, major, minor, patch, , preReleaseType, preReleaseNumber] = match;\n\t}\n\n\tif (match === null) {\n\t\tthrow new Error(`Could not parse version from input: ${input}`);\n\t}\n\n\tlet preRelease: PackageVersion[\"preRelease\"] = undefined;\n\tlet buildNumber = 100;\n\n\tif (preReleaseType && preReleaseNumber) {\n\t\tpreRelease = {\n\t\t\ttype: preReleaseType,\n\t\t\tversion: parseInt(preReleaseNumber),\n\t\t};\n\t}\n\n\tif (build) {\n\t\tbuildNumber = Number(build);\n\t} else if (input) {\n\t\tconst descriptionMatch = input.match(/(\\d+)\\)$/);\n\n\t\tif (descriptionMatch) {\n\t\t\tbuildNumber = parseInt(descriptionMatch[1]);\n\t\t}\n\t}\n\n\treturn new PackageVersion(\n\t\tparseInt(major),\n\t\tparseInt(minor),\n\t\tparseInt(patch),\n\t\tpreRelease,\n\t\tbuildNumber,\n\t);\n};\n\n// 1000001001 -> 1.0.1.1\n// 1002017001 -> 1.2.17.1\nexport const parseVersionFromNumericVersion = (\n\tversion: number,\n): PackageVersion => {\n\tconst major = Math.floor(version / 1000000000);\n\tconst minor = Math.floor((version % 1000000000) / 1000000);\n\tconst patch = Math.floor((version % 1000000) / 1000);\n\tconst buildNumber = version % 1000;\n\n\treturn new PackageVersion(major, minor, patch, undefined, buildNumber);\n};\n","import * as fs from \"fs\";\nimport * as path from \"path\";\n\nimport { isErrorENOENT } from \"./error\";\nimport { readStringFromFileOrUndefined } from \"./fs\";\nimport { PackageLocation } from \"./package\";\nimport { PackageVersion } from \"./packageVersion\";\n\n// https://regex101.com/r/LtGAu5/1\nconst logRegex =\n\t/console\\.log\\(\\s*\"([\\w\\s\\.\\(\\)]+)\\ *Copyright[\\w\\s\\(\\)\\.]+(\\d{4}|\\d{4} - \\d{4})([\\w\\s\\(\\)\\.]+)?\",?\\s*\\)/i;\nconst currentYear = new Date(Date.now()).getFullYear();\n\nexport const getVersionFileHandler = (location: PackageLocation) => {\n\tconst filePath = path.join(location.scriptsDir, \"Version.ts\");\n\n\tconst invalidVersionFile = (versionFile: string | undefined) => ({\n\t\tversion: undefined,\n\t\twrite: (name: string, newVersion: PackageVersion) => {\n\t\t\tconst scriptsContent = fs.readdirSync(location.scriptsDir);\n\t\t\tconst tsFiles = scriptsContent.filter((file) =>\n\t\t\t\tfile.endsWith(\".ts\"),\n\t\t\t);\n\n\t\t\tif (tsFiles.length > 0) {\n\t\t\t\treturn createVersionFileWriter([currentYear], \"\")(\n\t\t\t\t\tname,\n\t\t\t\t\tnewVersion,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\treset: () => {\n\t\t\tif (versionFile !== undefined) {\n\t\t\t\tfs.writeFileSync(filePath, versionFile, { encoding: \"utf8\" });\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tfs.rmSync(filePath);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t});\n\n\ttype CopyrightRange = [number, number?];\n\n\tconst createVersionFileWriter =\n\t\t(\n\t\t\tcopyright: CopyrightRange = [currentYear],\n\t\t\tcopyrightStuff: string = \"\",\n\t\t) =>\n\t\t(name: string, newVersion: PackageVersion) => {\n\t\t\tconst descriptionText = newVersion.toDescriptionString(name);\n\t\t\tconst copyrightText = createYearString(copyright);\n\n\t\t\tconst result = `console.log(\"${descriptionText}. Copyright (C) ${copyrightText}${copyrightStuff}\");`;\n\n\t\t\tfs.writeFileSync(filePath, result, { encoding: \"utf-8\" });\n\t\t};\n\n\tlet rawVersionFile = readStringFromFileOrUndefined(filePath);\n\n\tif (rawVersionFile === undefined) {\n\t\treturn invalidVersionFile(rawVersionFile);\n\t}\n\n\tconst versionFile = rawVersionFile.replace(/\\n/g, \"\");\n\n\tconst match = versionFile.match(logRegex);\n\n\tif (!match) {\n\t\treturn invalidVersionFile(versionFile);\n\t}\n\n\tconst [_full, _description, copyright, copyrightStuff] = match as [\n\t\tstring,\n\t\tstring,\n\t\tstring,\n\t\tstring?,\n\t];\n\n\tconst copyrightYears = copyright.match(/^(\\d+)( ?- ?(\\d+))?$/);\n\n\tlet years: [number, number?];\n\n\tif (copyrightYears === null) {\n\t\tyears = [currentYear];\n\t} else {\n\t\tyears = [Number(copyrightYears[1]), currentYear];\n\t}\n\n\treturn {\n\t\twrite: createVersionFileWriter(years, copyrightStuff),\n\t\treset: () => {\n\t\t\tfs.writeFileSync(filePath, versionFile, { encoding: \"utf8\" });\n\t\t},\n\t};\n};\n\nconst createYearString = (years: [number, number?]) => {\n\tif (years[1] === undefined || years[0] === years[1]) {\n\t\treturn years[0].toString();\n\t}\n\n\treturn `${years[0]} - ${years[1]}`;\n};\n"],"names":["readStringFromFile","filePath","fs","readFileSync","encoding","readStringFromFileOrUndefined","err","isErrorENOENT","undefined","getVersionInformationFromGit","workspaceLocation","packageLocation","log","git","simpleGit","baseDir","path","diff","diffSummary","dirty","files","some","file","toLowerCase","includes","endsWith","fullPath","resolve","relativePath","relative","startsWith","maxCount","commit","latest","hash","substring","commitDate","date","getWorkspaceBannerText","manifest","bannerText","packager","banner","match","startYear","parseInt","endYear","Date","getFullYear","replace","PackageVersion","fullTextMatcher","lineMatcher","extractFromText","input","description","Error","fromMatch","extractFromLine","equals","a","b","checkPrerelease","major","minor","patch","preRelease","type","version","build","preReleaseType","preReleaseNumber","buildNumber","Number","descriptionMatch","sort","ascending","createSortResult","toNumber","constructor","isPreRelease","clone","incrementMajor","incrementMinor","incrementPatch","createPreRelease","createRelease","toVersionString","join","toDescriptionString","packageName","base","parts","push","upperCaseFirst","isLesserThan","isGreaterThan","slice","toUpperCase","parseVersionFromString","parseVersionFromNumericVersion","Math","floor","logRegex","currentYear","now","getVersionFileHandler","location","scriptsDir","invalidVersionFile","versionFile","write","name","newVersion","scriptsContent","readdirSync","tsFiles","filter","length","createVersionFileWriter","reset","writeFileSync","rmSync","copyright","copyrightStuff","descriptionText","copyrightText","createYearString","result","rawVersionFile","_full","_description","copyrightYears","years","toString"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intelligentgraphics/ig.gfx.packager",
|
|
3
|
-
"version": "3.0.
|
|
4
|
-
"description": "IG.GFX.Packager 3.0.
|
|
3
|
+
"version": "3.0.10",
|
|
4
|
+
"description": "IG.GFX.Packager 3.0.10 (3.0.10.100)",
|
|
5
5
|
"author": "Michael Beier <mb@intelligentgraphics.biz>",
|
|
6
6
|
"main": "build/index.mjs",
|
|
7
7
|
"private": false,
|
|
@@ -45,14 +45,12 @@
|
|
|
45
45
|
"yargs": "^17.6.2"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@babel/core": "^7.21.3",
|
|
49
|
-
"@babel/preset-env": "^7.18.9",
|
|
50
|
-
"@babel/preset-typescript": "^7.18.6",
|
|
51
48
|
"@intelligentgraphics/ig.gfx.tools.core": "^1.0.0",
|
|
52
|
-
"@rollup/plugin-babel": "^6.0.3",
|
|
53
49
|
"@rollup/plugin-commonjs": "^24.0.0",
|
|
54
50
|
"@rollup/plugin-json": "^6.0.0",
|
|
55
51
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
52
|
+
"@rollup/plugin-swc": "^0.1.0",
|
|
53
|
+
"@swc/core": "^1.3.56",
|
|
56
54
|
"@types/glob": "^8.0.1",
|
|
57
55
|
"@types/inquirer": "^9.0.3",
|
|
58
56
|
"@types/node": "^18.15.3",
|
package/readme.md
CHANGED
|
@@ -380,12 +380,87 @@ The code snippet above will generate the following \_Index.json output:
|
|
|
380
380
|
]
|
|
381
381
|
```
|
|
382
382
|
|
|
383
|
+
Additionally when using the `--strictOptional`, this command will also mark non optional parameters as required.
|
|
384
|
+
|
|
385
|
+
**Example for non optional parameters**
|
|
386
|
+
|
|
387
|
+
```ts
|
|
388
|
+
namespace IG.Test {
|
|
389
|
+
interface Params {
|
|
390
|
+
/**
|
|
391
|
+
* Width of the corpus.
|
|
392
|
+
*
|
|
393
|
+
* Additional informations used to document the property internally
|
|
394
|
+
*
|
|
395
|
+
* @default 1.0
|
|
396
|
+
* @creatorType Float
|
|
397
|
+
* @summary Width of the corpus
|
|
398
|
+
*/
|
|
399
|
+
Corpus_Width: number | string;
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Type of the corpus
|
|
403
|
+
*
|
|
404
|
+
* @default "extra_wide"
|
|
405
|
+
* @creatorType String
|
|
406
|
+
*/
|
|
407
|
+
Corpus_Type: string;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* The description of my evaluator
|
|
412
|
+
*/
|
|
413
|
+
export class MyEvaluator extends IGX.IEvaluator {
|
|
414
|
+
public static Create(
|
|
415
|
+
productId: string,
|
|
416
|
+
path: string,
|
|
417
|
+
parameters: Params,
|
|
418
|
+
): IGX.EvalResponse {}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
The code snippet above will generate the following \_Index.json output:
|
|
424
|
+
|
|
425
|
+
```json
|
|
426
|
+
[
|
|
427
|
+
{
|
|
428
|
+
"Name": "IG.Test.MyEvaluator",
|
|
429
|
+
"Description": "The description of my evaluator",
|
|
430
|
+
"Type": "Evaluator",
|
|
431
|
+
"Parameters": [
|
|
432
|
+
{
|
|
433
|
+
"Name": "Corpus_Width",
|
|
434
|
+
"Description": "Width of the corpus",
|
|
435
|
+
"Default": 1.0,
|
|
436
|
+
"Type": "Float",
|
|
437
|
+
"DisplayIndex": 1,
|
|
438
|
+
"Required": true
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"Name": "Corpus_Type",
|
|
442
|
+
"Description": "Type of the corpus",
|
|
443
|
+
"Default": "extra_wide",
|
|
444
|
+
"Type": "String",
|
|
445
|
+
"DisplayIndex": 2,
|
|
446
|
+
"Required": true
|
|
447
|
+
}
|
|
448
|
+
]
|
|
449
|
+
}
|
|
450
|
+
]
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
The `Required` property will be used by the VSCode extension to show an error whenever a required parameter was not declared when configuring parameters for a script class.
|
|
454
|
+
|
|
383
455
|
**Migrating from a handwritten \_Index.json to an auto generated one:**
|
|
384
456
|
|
|
385
457
|
1. Make sure all Evaluators implement or extend the IGX.IEvaluator class.
|
|
386
458
|
2. Run the index generation. The output should be nearly identical. If an evaluator does not have an explicit Parameter type, the generator will reuse the informations from an existing \_Index.json file.
|
|
387
459
|
3. Now you can choose to add the parameter types either incrementally or all at once.
|
|
388
460
|
|
|
461
|
+
To aid with this migration you may also use the command `packager generateParameterType [directory] [name]` to generate a parameters interface for the class identified by the provided name using existing \_Index.json informations.
|
|
462
|
+
In order to generate a parameters interface for a class "AnimationInteractor" of the directory/package "Standard", you would execute the command `packager generateParameterType Standard AnimationInteractor`. This will generate txt file with the type next to the typescript files.
|
|
463
|
+
|
|
389
464
|
## Troubleshoot
|
|
390
465
|
|
|
391
466
|
### Definitions for ig libraries are not available even though they are registered as dependencies in the package.json
|
|
@@ -395,6 +470,15 @@ Afterwards you may need to reload your editor in order for the installed files t
|
|
|
395
470
|
|
|
396
471
|
## History
|
|
397
472
|
|
|
473
|
+
**IG.GFX.Packager 3.0.10**
|
|
474
|
+
|
|
475
|
+
- add strictOptional option for index generation -> see [\_Index.json generation](#_indexjson-generation)
|
|
476
|
+
|
|
477
|
+
**IG.GFX.Packager 3.0.9**
|
|
478
|
+
|
|
479
|
+
- exit with error code 1 on errors
|
|
480
|
+
- sort generateIndex output alphabetically for root level entries
|
|
481
|
+
|
|
398
482
|
**IG.GFX.Packager 3.0.8**
|
|
399
483
|
|
|
400
484
|
- allow typescript parameter type to be generated for \_index.json entries
|
|
@@ -437,8 +521,8 @@ Afterwards you may need to reload your editor in order for the installed files t
|
|
|
437
521
|
|
|
438
522
|
**IG.GFX.Packager 3.0.0**
|
|
439
523
|
|
|
440
|
-
- change packager to be installed globally (see [Migrating to ig.gfx.packager 3.0](#
|
|
441
|
-
- offer to upload dependencies, that are defined in the workspace package json, to a creator sub domain if they are not available or outdated (see [
|
|
524
|
+
- change packager to be installed globally (see [Migrating to ig.gfx.packager 3.0](#migrating-to-iggfxpackager-30))
|
|
525
|
+
- offer to upload dependencies, that are defined in the workspace package json, to a creator sub domain if they are not available or outdated (see [Using ig libraries](#using-ig-libraries))
|
|
442
526
|
|
|
443
527
|
**IG.GFX.Packager 3.0.0-beta.3**
|
|
444
528
|
|