@siyavuyachagi/typesharp 0.1.5 → 0.1.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/README.md +23 -14
- package/bin/typesharp.js +4 -1
- package/dist/cli/index.js +14 -18
- package/dist/cli/index.js.map +1 -1
- package/dist/core/create-sample-config.js +5 -45
- package/dist/core/create-sample-config.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +66 -145
- package/dist/core/index.js.map +1 -1
- package/dist/generator/index.d.ts +3 -3
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +47 -63
- package/dist/generator/index.js.map +1 -1
- package/dist/helpers/change-tracker.js +7 -46
- package/dist/helpers/change-tracker.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -10
- package/dist/index.js.map +1 -1
- package/dist/parser/index.d.ts +2 -2
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +9 -45
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/parse-classes-from-file.d.ts +1 -1
- package/dist/parser/parse-classes-from-file.d.ts.map +1 -1
- package/dist/parser/parse-classes-from-file.js +6 -9
- package/dist/parser/parse-classes-from-file.js.map +1 -1
- package/dist/parser/parse-properties.d.ts +1 -1
- package/dist/parser/parse-properties.d.ts.map +1 -1
- package/dist/parser/parse-properties.js +2 -6
- package/dist/parser/parse-properties.js.map +1 -1
- package/dist/parser/resolve-project-files-from-source.js +3 -39
- package/dist/parser/resolve-project-files-from-source.js.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -2
- package/dist/types/naming-convention-config.d.ts +1 -1
- package/dist/types/naming-convention-config.d.ts.map +1 -1
- package/dist/types/naming-convention-config.js +1 -2
- package/dist/types/naming-convention.js +1 -2
- package/dist/types/typesharp-config.d.ts +2 -2
- package/dist/types/typesharp-config.d.ts.map +1 -1
- package/dist/types/typesharp-config.js +1 -2
- package/package.json +7 -5
package/README.md
CHANGED
|
@@ -193,7 +193,7 @@ TypeSharp preserves your C# file organization. Here's how it works:
|
|
|
193
193
|
|
|
194
194
|
TypeSharp supports multiple configuration formats:
|
|
195
195
|
|
|
196
|
-
**JSON** (`typesharp.config.json`):
|
|
196
|
+
**JSON** (`typesharp.config.json`): ⭐ **recommended**
|
|
197
197
|
|
|
198
198
|
```json
|
|
199
199
|
{
|
|
@@ -202,12 +202,10 @@ TypeSharp supports multiple configuration formats:
|
|
|
202
202
|
}
|
|
203
203
|
```
|
|
204
204
|
|
|
205
|
-
**
|
|
206
|
-
|
|
207
|
-
```typescript
|
|
208
|
-
import { TypeSharpConfig } from "typesharp";
|
|
205
|
+
**JavaScript** (`typesharp.config.js`):
|
|
209
206
|
|
|
210
|
-
|
|
207
|
+
```javascript
|
|
208
|
+
const config = {
|
|
211
209
|
source: ["C:/Users/User/Desktop/MyApp/Domain/Domain.csproj"],
|
|
212
210
|
outputPath: "./src/types",
|
|
213
211
|
};
|
|
@@ -215,14 +213,25 @@ const config: TypeSharpConfig = {
|
|
|
215
213
|
export default config;
|
|
216
214
|
```
|
|
217
215
|
|
|
218
|
-
**
|
|
216
|
+
**TypeScript** (`typesharp.config.ts`): ⚠️ **requires special setup**
|
|
219
217
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
218
|
+
TypeScript config files require one of the following approaches:
|
|
219
|
+
|
|
220
|
+
1. Convert to JavaScript first (recommended):
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
tsc typesharp.config.ts --module nodenext
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
2. Run with tsx loader:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
node --loader tsx/cjs ./node_modules/@siyavuyachagi/typesharp/bin/typesharp.js
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
3. Or use a `.js` config file instead (simplest)
|
|
233
|
+
|
|
234
|
+
If you prefer TypeScript configs, JSON format is the easiest alternative that provides type safety through JSDoc in most editors.
|
|
226
235
|
|
|
227
236
|
## Usage in package.json
|
|
228
237
|
|
|
@@ -591,4 +600,4 @@ MIT © Siyavuya Chagi
|
|
|
591
600
|
|
|
592
601
|
---
|
|
593
602
|
|
|
594
|
-
Built with ❤️ in South Africa 🇿🇦
|
|
603
|
+
Built with ❤️ in South Africa 🇿🇦
|
package/bin/typesharp.js
CHANGED
package/dist/cli/index.js
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
-
const package_json_1 = require("../../package.json");
|
|
11
|
-
const create_sample_config_1 = require("../core/create-sample-config");
|
|
12
|
-
const program = new commander_1.Command();
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { generate } from '../core/index.js';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import pkg from '../../package.json' with { type: 'json' };
|
|
6
|
+
import { createSampleConfig } from '../core/create-sample-config.js';
|
|
7
|
+
const { version, name, description } = pkg;
|
|
8
|
+
const program = new Command();
|
|
13
9
|
program
|
|
14
|
-
.name(
|
|
15
|
-
.description(
|
|
16
|
-
.version(
|
|
10
|
+
.name(name)
|
|
11
|
+
.description(description)
|
|
12
|
+
.version(version)
|
|
17
13
|
.usage('[command] [options]');
|
|
18
14
|
// Generate command (default)
|
|
19
15
|
program
|
|
@@ -23,7 +19,7 @@ program
|
|
|
23
19
|
.option('--no-incremental', 'Disable incremental generation (full clean)')
|
|
24
20
|
.action(async (options) => {
|
|
25
21
|
try {
|
|
26
|
-
await
|
|
22
|
+
await generate(options.config, options.incremental !== false);
|
|
27
23
|
process.exit(0);
|
|
28
24
|
}
|
|
29
25
|
catch (error) {
|
|
@@ -39,15 +35,15 @@ program
|
|
|
39
35
|
try {
|
|
40
36
|
const format = options.format;
|
|
41
37
|
if (!['ts', 'js', 'json'].includes(format)) {
|
|
42
|
-
console.error(
|
|
38
|
+
console.error(chalk.red.bold('❌ Invalid format.') + ' Use: ' + chalk.yellow('json, ts, ') + 'or' + chalk.yellow(' js'));
|
|
43
39
|
process.exit(1);
|
|
44
40
|
}
|
|
45
|
-
|
|
41
|
+
createSampleConfig(format);
|
|
46
42
|
process.exit(0);
|
|
47
43
|
}
|
|
48
44
|
catch (error) {
|
|
49
45
|
if (error instanceof Error) {
|
|
50
|
-
console.error(
|
|
46
|
+
console.error(chalk.red.bold(`❌ Error:`), chalk.white(error.message));
|
|
51
47
|
}
|
|
52
48
|
process.exit(1);
|
|
53
49
|
}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,WAAW,CAAC;KACxB,OAAO,CAAC,OAAO,CAAC;KAChB,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAEhC,6BAA6B;AAC7B,OAAO;KACJ,OAAO,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACxC,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,kBAAkB,EAAE,6CAA6C,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,uBAAuB,EAAE,0CAA0C,EAAE,IAAI,CAAC,CAAC,kBAAkB;KACpG,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAA8B,CAAC;QAEtD,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACxH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1,48 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.createSampleConfig = void 0;
|
|
40
|
-
const fs = __importStar(require("fs"));
|
|
41
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import chalk from "chalk";
|
|
42
3
|
/**
|
|
43
4
|
* Create a sample configuration file
|
|
44
5
|
*/
|
|
45
|
-
const createSampleConfig = (format) => {
|
|
6
|
+
export const createSampleConfig = (format) => {
|
|
46
7
|
const sampleConfig = {
|
|
47
8
|
source: [
|
|
48
9
|
'C:/Users/User/Desktop/MyApp/MyApp.sln',
|
|
@@ -78,13 +39,12 @@ const createSampleConfig = (format) => {
|
|
|
78
39
|
const allConfigFiles = ['typesharp.config.ts', 'typesharp.config.js', 'typesharp.config.json'];
|
|
79
40
|
const existingConfig = allConfigFiles.find(f => fs.existsSync(f));
|
|
80
41
|
if (existingConfig) {
|
|
81
|
-
console.log(
|
|
42
|
+
console.log(chalk.yellow.bold('❗ Warning:'), chalk.white(`${existingConfig} already exists. Skipping creation.`));
|
|
82
43
|
return;
|
|
83
44
|
}
|
|
84
45
|
fs.writeFileSync(fileName, content, 'utf-8');
|
|
85
|
-
console.log(
|
|
46
|
+
console.log(chalk.green.bold('✅ Created'), chalk.white(`./${fileName}`));
|
|
86
47
|
};
|
|
87
|
-
exports.createSampleConfig = createSampleConfig;
|
|
88
48
|
/**
|
|
89
49
|
* Format a plain object as a JS/TS object literal (no quoted keys)
|
|
90
50
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-sample-config.js","sourceRoot":"","sources":["../../src/core/create-sample-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-sample-config.js","sourceRoot":"","sources":["../../src/core/create-sample-config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAwD/D;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,OAAO,CAAC,eAAe,CAAC,KAAG,eAsBpE,CAAC;AAMF,wBAAsB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C9F;AAgDD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,QAiB/C;AAkCD;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAqB9E"}
|
package/dist/core/index.js
CHANGED
|
@@ -1,52 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.mergeWithDefaults = void 0;
|
|
40
|
-
exports.generate = generate;
|
|
41
|
-
exports.cleanOutputDirectory = cleanOutputDirectory;
|
|
42
|
-
exports.loadConfig = loadConfig;
|
|
43
|
-
const fs = __importStar(require("fs"));
|
|
44
|
-
const path = __importStar(require("path"));
|
|
45
|
-
const parser_1 = require("../parser");
|
|
46
|
-
const generator_1 = require("../generator");
|
|
47
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
48
|
-
const url_1 = require("url");
|
|
49
|
-
const resolve_project_files_from_source_1 = require("../parser/resolve-project-files-from-source");
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { parseCSharpFiles } from '../parser/index.js';
|
|
4
|
+
import { convertFileName, generateTypeScriptFiles } from '../generator/index.js';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { pathToFileURL } from 'url';
|
|
7
|
+
import { resolveProjectFilesFromSource } from '../parser/resolve-project-files-from-source.js';
|
|
50
8
|
/**
|
|
51
9
|
* Default configuration values
|
|
52
10
|
*/
|
|
@@ -63,31 +21,41 @@ async function loadConfigFromFile(filePath) {
|
|
|
63
21
|
if (ext === '.json') {
|
|
64
22
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
65
23
|
const config = JSON.parse(content);
|
|
66
|
-
return
|
|
24
|
+
return mergeWithDefaults(config);
|
|
67
25
|
}
|
|
68
26
|
if (ext === '.js') {
|
|
69
|
-
const fileUrl =
|
|
70
|
-
const module = await
|
|
27
|
+
const fileUrl = pathToFileURL(path.resolve(filePath)).href;
|
|
28
|
+
const module = await import(fileUrl);
|
|
71
29
|
const exportedConfig = module.default || module;
|
|
72
|
-
return
|
|
30
|
+
return mergeWithDefaults(exportedConfig);
|
|
73
31
|
}
|
|
74
32
|
if (ext === '.ts') {
|
|
75
|
-
//
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
33
|
+
// In ESM mode, .ts config files need special handling
|
|
34
|
+
// Try to import directly (works if tsx is registered as a loader)
|
|
35
|
+
try {
|
|
36
|
+
const fileUrl = pathToFileURL(path.resolve(filePath)).href;
|
|
37
|
+
const module = await import(fileUrl);
|
|
38
|
+
const exportedConfig = module.default || module;
|
|
39
|
+
return mergeWithDefaults(exportedConfig);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
throw new Error(`Failed to load TypeScript config file: ${filePath}\n` +
|
|
43
|
+
`In ESM mode, you have two options:\n` +
|
|
44
|
+
`1. Use a .json config file instead\n` +
|
|
45
|
+
`2. Use a .js config file (compile your TypeScript first)\n` +
|
|
46
|
+
`3. Run TypeSharp with: node --loader tsx/cjs ./bin/typesharp.js\n` +
|
|
47
|
+
`Original error: ${error instanceof Error ? error.message : String(error)}`);
|
|
48
|
+
}
|
|
81
49
|
}
|
|
82
50
|
throw new Error(`Unsupported config file format: ${ext}`);
|
|
83
51
|
}
|
|
84
52
|
/**
|
|
85
53
|
* Merge user config with defaults
|
|
86
54
|
*/
|
|
87
|
-
const mergeWithDefaults = (config) => {
|
|
55
|
+
export const mergeWithDefaults = (config) => {
|
|
88
56
|
// Deprecation warning
|
|
89
57
|
if (config.projectFiles && !config.source) {
|
|
90
|
-
console.warn(
|
|
58
|
+
console.warn(chalk.yellow.bold('⚠ Deprecation:'), chalk.white('`projectFiles` is deprecated. Please rename it to `source` in your config.'));
|
|
91
59
|
config.source = config.source || config.projectFiles;
|
|
92
60
|
}
|
|
93
61
|
if (!config.source && !config.projectFiles) {
|
|
@@ -101,130 +69,83 @@ const mergeWithDefaults = (config) => {
|
|
|
101
69
|
...config,
|
|
102
70
|
};
|
|
103
71
|
};
|
|
104
|
-
|
|
105
|
-
async function generate(configPath, incremental = true) {
|
|
72
|
+
export async function generate(configPath, incremental = true) {
|
|
106
73
|
try {
|
|
107
|
-
console.log(
|
|
74
|
+
console.log(chalk.cyan.bold('\n🚀 TypeSharp - Starting generation...'));
|
|
108
75
|
const config = await loadConfig(configPath);
|
|
109
|
-
console.log(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
console.log(
|
|
113
|
-
|
|
76
|
+
console.log(chalk.green.bold('\n✓ Configuration loaded'));
|
|
77
|
+
console.log(chalk.cyan(`-> Output:`), chalk.white(config.outputPath));
|
|
78
|
+
console.log(chalk.cyan(`-> Annotation:`), chalk.white(`[${config.targetAnnotation}]`));
|
|
79
|
+
console.log(chalk.cyan(`-> Single file:`), chalk.white(config.singleOutputFile));
|
|
80
|
+
console.log(chalk.cyan('\n⧖ Parsing C# files...'));
|
|
81
|
+
const parseResults = await parseCSharpFiles(config);
|
|
114
82
|
if (parseResults.length === 0) {
|
|
115
|
-
console.warn(
|
|
83
|
+
console.warn(chalk.yellow.bold('❗ Warning:'), chalk.white(`No C# files found with [${config.targetAnnotation}] attribute\n`));
|
|
116
84
|
return;
|
|
117
85
|
}
|
|
118
|
-
// NEW: Incremental cleanup
|
|
119
86
|
if (incremental) {
|
|
120
|
-
await cleanOnlyChangedOutputFiles(config, parseResults);
|
|
87
|
+
const changedFiles = await cleanOnlyChangedOutputFiles(config, parseResults);
|
|
88
|
+
generateTypeScriptFiles(config, parseResults, changedFiles);
|
|
121
89
|
}
|
|
122
90
|
else {
|
|
123
|
-
cleanOutputDirectory(config.outputPath);
|
|
91
|
+
cleanOutputDirectory(config.outputPath);
|
|
92
|
+
generateTypeScriptFiles(config, parseResults);
|
|
124
93
|
}
|
|
125
94
|
const allClasses = parseResults.flatMap(result => result.classes);
|
|
126
|
-
console.log(
|
|
127
|
-
console.log(
|
|
128
|
-
|
|
129
|
-
console.log(
|
|
95
|
+
console.log(chalk.green.bold(`✓ Found ${allClasses.length} class(es) with [${config.targetAnnotation}] attribute`));
|
|
96
|
+
console.log(chalk.blue.cyan('\n⧖ Generating TypeScript files...'));
|
|
97
|
+
generateTypeScriptFiles(config, parseResults);
|
|
98
|
+
console.log(chalk.green.bold('✅ Generation completed successfully!\n'));
|
|
130
99
|
}
|
|
131
100
|
catch (error) {
|
|
132
|
-
|
|
101
|
+
if (error instanceof Error) {
|
|
102
|
+
console.error(chalk.red.bold(`\n❌ Error:`), chalk.white(error.message));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
console.error(chalk.red.bold(`\n❌ An unknown error occurred`));
|
|
106
|
+
}
|
|
107
|
+
throw error;
|
|
133
108
|
}
|
|
134
109
|
}
|
|
135
|
-
// export async function generate(configPath?: string): Promise<void> {
|
|
136
|
-
// try {
|
|
137
|
-
// console.log(chalk.cyan.bold('\n🚀 TypeSharp - Starting generation...'));
|
|
138
|
-
// // Load configuration
|
|
139
|
-
// const config = await loadConfig(configPath);
|
|
140
|
-
// console.log(chalk.green.bold('\n✓ Configuration loaded'));
|
|
141
|
-
// // Display project files
|
|
142
|
-
// const projectFiles = Array.isArray(config.projectFiles)
|
|
143
|
-
// ? config.projectFiles
|
|
144
|
-
// : [config.projectFiles];
|
|
145
|
-
// if (projectFiles.length === 1) {
|
|
146
|
-
// console.log(chalk.cyan(`-> Target:`), chalk.white(projectFiles[0]));
|
|
147
|
-
// } else {
|
|
148
|
-
// console.log(chalk.cyan(`-> Targets (${projectFiles.length} projects):`));
|
|
149
|
-
// projectFiles.forEach((file, index) => {
|
|
150
|
-
// console.log(chalk.cyan(` ${index + 1}.`), chalk.white(file));
|
|
151
|
-
// });
|
|
152
|
-
// }
|
|
153
|
-
// console.log(chalk.cyan(`-> Output:`), chalk.white(config.outputPath));
|
|
154
|
-
// console.log(chalk.cyan(`-> Annotation:`), chalk.white(`[${config.targetAnnotation}]`));
|
|
155
|
-
// console.log(chalk.cyan(`-> Single file:`), chalk.white(config.singleOutputFile));
|
|
156
|
-
// if (config.fileSuffix) {
|
|
157
|
-
// console.log(chalk.cyan(`-> File suffix:`), chalk.white(config.fileSuffix));
|
|
158
|
-
// }
|
|
159
|
-
// // Validate configuration
|
|
160
|
-
// console.log(chalk.cyan('\n⧖ Configuration validation...'));
|
|
161
|
-
// validateConfig(config);
|
|
162
|
-
// console.log(chalk.green.bold('✓ Configuration validated'));
|
|
163
|
-
// // Clean output directory
|
|
164
|
-
// cleanOutputDirectory(config.outputPath);
|
|
165
|
-
// // Parse C# files from all projects
|
|
166
|
-
// console.log(chalk.cyan('\n⧖ Parsing C# files...'));
|
|
167
|
-
// const parseResults = await parseCSharpFiles(config);
|
|
168
|
-
// if (parseResults.length === 0) {
|
|
169
|
-
// console.warn(chalk.yellow.bold('❗ Warning:'), chalk.white(`No C# files found with [${config.targetAnnotation}] attribute\n`));
|
|
170
|
-
// return;
|
|
171
|
-
// }
|
|
172
|
-
// // Collect all classes
|
|
173
|
-
// const allClasses = parseResults.flatMap(result => result.classes);
|
|
174
|
-
// console.log(chalk.green.bold(`✓ Found ${allClasses.length} class(es) with [${config.targetAnnotation}] attribute`));
|
|
175
|
-
// // Generate TypeScript files
|
|
176
|
-
// console.log(chalk.blue.cyan('\n⧖ Generating TypeScript files...'));
|
|
177
|
-
// generateTypeScriptFiles(config, parseResults);
|
|
178
|
-
// console.log(chalk.green.bold('✅ Generation completed successfully!\n'));
|
|
179
|
-
// } catch (error) {
|
|
180
|
-
// if (error instanceof Error) {
|
|
181
|
-
// console.error(chalk.red.bold(`\n❌ Error:`), chalk.white(error.message));
|
|
182
|
-
// } else {
|
|
183
|
-
// console.error(chalk.red.bold(`\n❌ An unknown error occurred`));
|
|
184
|
-
// }
|
|
185
|
-
// throw error;
|
|
186
|
-
// }
|
|
187
|
-
// }
|
|
188
110
|
/**
|
|
189
111
|
* Clean only output files corresponding to changed C# files
|
|
190
112
|
*/
|
|
191
113
|
async function cleanOnlyChangedOutputFiles(config, parseResults) {
|
|
192
|
-
const { loadPreviousHashes, savePreviousHashes, getChangedFiles, computeFileHash } = await
|
|
114
|
+
const { loadPreviousHashes, savePreviousHashes, getChangedFiles, computeFileHash } = await import('../helpers/change-tracker.js');
|
|
193
115
|
const csharpFiles = parseResults.map(r => r.filePath);
|
|
194
116
|
const previousHashes = loadPreviousHashes();
|
|
195
117
|
const { changed, deleted } = getChangedFiles(csharpFiles, previousHashes);
|
|
196
118
|
console.log('\n🔍 Change Detection:');
|
|
197
119
|
if (changed.length > 0) {
|
|
198
|
-
console.log(
|
|
199
|
-
changed.forEach(f => console.log(
|
|
120
|
+
console.log(chalk.yellow(` Changed files: ${changed.length}`));
|
|
121
|
+
changed.forEach((f) => console.log(chalk.yellow(` ↳ ${f}`)));
|
|
200
122
|
}
|
|
201
123
|
if (deleted.length > 0) {
|
|
202
|
-
console.log(
|
|
203
|
-
deleted.forEach(f => console.log(
|
|
124
|
+
console.log(chalk.red(` Deleted files: ${deleted.length}`));
|
|
125
|
+
deleted.forEach((f) => console.log(chalk.red(` ↳ ${f}`)));
|
|
204
126
|
}
|
|
205
|
-
// Remove TS files for deleted C# files
|
|
206
127
|
for (const deletedFile of deleted) {
|
|
207
128
|
removeCorrespondingTsFile(config, deletedFile);
|
|
208
129
|
}
|
|
209
|
-
// Save current hashes for next run
|
|
210
130
|
const currentHashes = new Map();
|
|
211
131
|
for (const file of csharpFiles) {
|
|
212
132
|
currentHashes.set(file, computeFileHash(file));
|
|
213
133
|
}
|
|
214
134
|
savePreviousHashes(currentHashes);
|
|
135
|
+
return new Set(changed);
|
|
215
136
|
}
|
|
216
137
|
/**
|
|
217
138
|
* Deletes all contents of a directory but keeps the directory itself.
|
|
218
139
|
* @param dir Path to the directory to clean
|
|
219
140
|
*/
|
|
220
|
-
function cleanOutputDirectory(dir) {
|
|
141
|
+
export function cleanOutputDirectory(dir) {
|
|
221
142
|
if (!fs.existsSync(dir))
|
|
222
143
|
return;
|
|
223
144
|
const entries = fs.readdirSync(dir);
|
|
224
145
|
console.log('\nRemoving:');
|
|
225
146
|
for (const entry of entries) {
|
|
226
147
|
const fullPath = path.join(dir, entry);
|
|
227
|
-
console.log(
|
|
148
|
+
console.log(chalk.red('-', chalk.strikethrough(`${fullPath}`)));
|
|
228
149
|
const stat = fs.lstatSync(fullPath);
|
|
229
150
|
if (stat.isDirectory()) {
|
|
230
151
|
fs.rmSync(fullPath, { recursive: true, force: true });
|
|
@@ -248,17 +169,17 @@ function removeCorrespondingTsFile(config, csharpFilePath) {
|
|
|
248
169
|
if (config.fileSuffix) {
|
|
249
170
|
baseName = `${baseName}${config.fileSuffix}`;
|
|
250
171
|
}
|
|
251
|
-
const tsFileName =
|
|
172
|
+
const tsFileName = convertFileName(baseName, fileConvention) + '.ts';
|
|
252
173
|
const tsFilePath = path.join(outputPath, path.dirname(relativePath), tsFileName);
|
|
253
174
|
if (fs.existsSync(tsFilePath)) {
|
|
254
175
|
fs.unlinkSync(tsFilePath);
|
|
255
|
-
console.log(
|
|
176
|
+
console.log(chalk.red(` Removed: ${tsFilePath}`));
|
|
256
177
|
}
|
|
257
178
|
}
|
|
258
179
|
/**
|
|
259
180
|
* Load configuration from file or use provided config
|
|
260
181
|
*/
|
|
261
|
-
async function loadConfig(configPath) {
|
|
182
|
+
export async function loadConfig(configPath) {
|
|
262
183
|
if (configPath && fs.existsSync(configPath)) {
|
|
263
184
|
return await loadConfigFromFile(configPath);
|
|
264
185
|
}
|
|
@@ -280,7 +201,7 @@ async function loadConfig(configPath) {
|
|
|
280
201
|
*/
|
|
281
202
|
function validateConfig(config) {
|
|
282
203
|
// Convert single project to array for unified handling
|
|
283
|
-
const projectFiles =
|
|
204
|
+
const projectFiles = resolveProjectFilesFromSource(config.source);
|
|
284
205
|
// Validate each project file
|
|
285
206
|
for (const projectFile of projectFiles) {
|
|
286
207
|
if (!fs.existsSync(projectFile)) {
|
|
@@ -302,7 +223,7 @@ function validateConfig(config) {
|
|
|
302
223
|
// Remove spaces, [ and ]
|
|
303
224
|
config.targetAnnotation = config.targetAnnotation.replace(/[ \[\]]/g, '');
|
|
304
225
|
if (config.targetAnnotation !== original) {
|
|
305
|
-
console.warn(
|
|
226
|
+
console.warn(chalk.yellow.bold('❗ Warning:'), chalk.white(`remove invalid characters (space, [ or ]) from your`), chalk.bold('targetAnnotation'), `\n`);
|
|
306
227
|
}
|
|
307
228
|
}
|
|
308
229
|
}
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { NamingConvention } from '../types';
|
|
2
|
-
import type { ParseResult, TypeSharpConfig } from '../types';
|
|
1
|
+
import { NamingConvention } from '../types/index.js';
|
|
2
|
+
import type { ParseResult, TypeSharpConfig } from '../types/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Generate TypeScript files from parsed C# classes
|
|
5
5
|
*/
|
|
6
|
-
export declare function generateTypeScriptFiles(config: TypeSharpConfig, parseResults: ParseResult[]): void;
|
|
6
|
+
export declare function generateTypeScriptFiles(config: TypeSharpConfig, parseResults: ParseResult[], changedFiles?: Set<string>): void;
|
|
7
7
|
/**
|
|
8
8
|
* Convert file name to specified convention
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGtE;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,WAAW,EAAE,EAC3B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,IAAI,CAaN;AA2YD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAalF"}
|