@siyavuyachagi/typesharp 0.1.5 → 0.2.0

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.
Files changed (52) hide show
  1. package/README.md +50 -33
  2. package/bin/typesharp.js +4 -1
  3. package/dist/cli/index.js +14 -18
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/core/create-sample-config.d.ts.map +1 -1
  6. package/dist/core/create-sample-config.js +7 -47
  7. package/dist/core/create-sample-config.js.map +1 -1
  8. package/dist/core/index.d.ts +1 -1
  9. package/dist/core/index.d.ts.map +1 -1
  10. package/dist/core/index.js +67 -184
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/generator/index.d.ts +7 -3
  13. package/dist/generator/index.d.ts.map +1 -1
  14. package/dist/generator/index.js +61 -65
  15. package/dist/generator/index.js.map +1 -1
  16. package/dist/helpers/change-tracker.d.ts.map +1 -1
  17. package/dist/helpers/change-tracker.js +7 -46
  18. package/dist/helpers/change-tracker.js.map +1 -1
  19. package/dist/index.d.ts +4 -4
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +3 -10
  22. package/dist/index.js.map +1 -1
  23. package/dist/parser/index.d.ts +2 -2
  24. package/dist/parser/index.d.ts.map +1 -1
  25. package/dist/parser/index.js +11 -46
  26. package/dist/parser/index.js.map +1 -1
  27. package/dist/parser/parse-classes-from-file.d.ts +1 -1
  28. package/dist/parser/parse-classes-from-file.d.ts.map +1 -1
  29. package/dist/parser/parse-classes-from-file.js +7 -10
  30. package/dist/parser/parse-classes-from-file.js.map +1 -1
  31. package/dist/parser/parse-properties.d.ts +1 -1
  32. package/dist/parser/parse-properties.d.ts.map +1 -1
  33. package/dist/parser/parse-properties.js +3 -7
  34. package/dist/parser/parse-properties.js.map +1 -1
  35. package/dist/parser/resolve-project-files-from-source.d.ts.map +1 -1
  36. package/dist/parser/resolve-project-files-from-source.js +7 -40
  37. package/dist/parser/resolve-project-files-from-source.js.map +1 -1
  38. package/dist/scripts/pre-unistall.d.ts +2 -0
  39. package/dist/scripts/pre-unistall.d.ts.map +1 -0
  40. package/dist/scripts/pre-unistall.js +10 -0
  41. package/dist/scripts/pre-unistall.js.map +1 -0
  42. package/dist/types/index.d.ts +3 -3
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/types/index.js +1 -2
  45. package/dist/types/naming-convention-config.d.ts +1 -1
  46. package/dist/types/naming-convention-config.d.ts.map +1 -1
  47. package/dist/types/naming-convention-config.js +1 -2
  48. package/dist/types/naming-convention.js +1 -2
  49. package/dist/types/typesharp-config.d.ts +2 -6
  50. package/dist/types/typesharp-config.d.ts.map +1 -1
  51. package/dist/types/typesharp-config.js +1 -2
  52. package/package.json +16 -5
package/README.md CHANGED
@@ -129,7 +129,6 @@ This creates `typesharp.config.json`:
129
129
  "C:/Users/User/Desktop/MyApp/Domain/Domain.csproj"
130
130
  ],
131
131
  "outputPath": "./app/types",
132
- "targetAnnotation": "TypeSharp",
133
132
  "singleOutputFile": false,
134
133
  "namingConvention": "camel"
135
134
  }
@@ -153,14 +152,13 @@ For more advanced usage [docs/usage](docs/usage.md)
153
152
 
154
153
  ### 1. Configuration Options
155
154
 
156
- | Option | Type | Default | Description |
157
- | ------------------ | ----------------------------------------- | ------------- | ------------------------------------------------------------- |
158
- | `source` | `string \| string[]` | _required_ | Full path(s) to your C# .csproj file(s) |
159
- | `outputPath` | `string` | _required_ | Where to generate TypeScript files |
160
- | `targetAnnotation` | `string` | `'TypeSharp'` | C# attribute name to look for |
161
- | `singleOutputFile` | `boolean` | `false` | Generate one file or multiple files (see below) |
162
- | `namingConvention` | `string \| { dir: string, file: string }` | `'camel'` | Property/file/dir naming: `kebab`, `camel`, `pascal`, `snake` |
163
- | `fileSuffix` | `string` | _optional_ | Suffix appended to generated file names: `user-dto.ts` |
155
+ | Option | Type | Default | Description |
156
+ | ------------------ | ----------------------------------------- | ---------- | ------------------------------------------------------------- |
157
+ | `source` | `string \| string[]` | _required_ | Full path(s) to your C# .csproj file(s) |
158
+ | `outputPath` | `string` | _required_ | Where to generate TypeScript files |
159
+ | `singleOutputFile` | `boolean` | `false` | Generate one file or multiple files (see below) |
160
+ | `namingConvention` | `string \| { dir: string, file: string }` | `'camel'` | Property/file/dir naming: `kebab`, `camel`, `pascal`, `snake` |
161
+ | `fileSuffix` | `string` | _optional_ | Suffix appended to generated file names: `user-dto.ts` |
164
162
 
165
163
  ### 2. Naming Convention
166
164
 
@@ -193,7 +191,7 @@ TypeSharp preserves your C# file organization. Here's how it works:
193
191
 
194
192
  TypeSharp supports multiple configuration formats:
195
193
 
196
- **JSON** (`typesharp.config.json`): (recommended)
194
+ **JSON** (`typesharp.config.json`): ⭐ **recommended**
197
195
 
198
196
  ```json
199
197
  {
@@ -202,27 +200,36 @@ TypeSharp supports multiple configuration formats:
202
200
  }
203
201
  ```
204
202
 
205
- **TypeScript** (`typesharp.config.ts`):
206
-
207
- ```typescript
208
- import { TypeSharpConfig } from "typesharp";
203
+ **JavaScript** (`typesharp.config.js`):
209
204
 
210
- const config: TypeSharpConfig = {
211
- source: ["C:/Users/User/Desktop/MyApp/Domain/Domain.csproj"],
212
- outputPath: "./src/types",
205
+ ```javascript
206
+ const config = {
207
+ source: ['C:/Users/User/Desktop/MyApp/Domain/Domain.csproj'],
208
+ outputPath: './src/types',
213
209
  };
214
210
 
215
211
  export default config;
216
212
  ```
217
213
 
218
- **JavaScript** (`typesharp.config.js`):
214
+ **TypeScript** (`typesharp.config.ts`): ⚠️ **requires special setup**
219
215
 
220
- ```javascript
221
- module.exports = {
222
- source: ["C:/Users/User/Desktop/MyApp/Domain/Domain.csproj"],
223
- outputPath: "./src/types",
224
- };
225
- ```
216
+ TypeScript config files require one of the following approaches:
217
+
218
+ 1. Convert to JavaScript first (recommended):
219
+
220
+ ```bash
221
+ tsc typesharp.config.ts --module nodenext
222
+ ```
223
+
224
+ 2. Run with tsx loader:
225
+
226
+ ```bash
227
+ node --loader tsx/cjs ./node_modules/@siyavuyachagi/typesharp/bin/typesharp.js
228
+ ```
229
+
230
+ 3. Or use a `.js` config file instead (simplest)
231
+
232
+ If you prefer TypeScript configs, JSON format is the easiest alternative that provides type safety through JSDoc in most editors.
226
233
 
227
234
  ## Usage in package.json
228
235
 
@@ -515,8 +522,8 @@ export interface auth_response {
515
522
 
516
523
  ```typescript
517
524
  const config: TypeSharpConfig = {
518
- source: "./Backend/Backend.csproj",
519
- outputPath: "./src/types",
525
+ source: './Backend/Backend.csproj',
526
+ outputPath: './src/types',
520
527
  singleOutputFile: true,
521
528
  };
522
529
  ```
@@ -525,11 +532,11 @@ const config: TypeSharpConfig = {
525
532
 
526
533
  ```typescript
527
534
  const config: TypeSharpConfig = {
528
- source: "./Backend/Backend.csproj",
529
- outputPath: "./src/types",
535
+ source: './Backend/Backend.csproj',
536
+ outputPath: './src/types',
530
537
  namingConvention: {
531
- dir: "kebab",
532
- file: "camel",
538
+ dir: 'kebab',
539
+ file: 'camel',
533
540
  },
534
541
  };
535
542
  ```
@@ -564,15 +571,25 @@ const config: TypeSharpConfig = {
564
571
  ## Programmatic Usage
565
572
 
566
573
  ```typescript
567
- import { generate } from "typesharp";
574
+ import { generate } from 'typesharp';
568
575
 
569
576
  async function generateTypes() {
570
- await generate("./path/to/config.ts");
577
+ await generate('./path/to/config.ts');
571
578
  }
572
579
 
573
580
  generateTypes();
574
581
  ```
575
582
 
583
+ ## Preview
584
+
585
+ ### Terminal Output
586
+
587
+ ![Terminal output](public/images/terminal.png)
588
+
589
+ ### Test Results
590
+
591
+ ![Test results](public/images/tests.png)
592
+
576
593
  ## Requirements
577
594
 
578
595
  - Node.js >= 20
@@ -591,4 +608,4 @@ MIT © Siyavuya Chagi
591
608
 
592
609
  ---
593
610
 
594
- Built with ❤️ in South Africa 🇿🇦
611
+ Built with ❤️ in South Africa 🇿🇦
package/bin/typesharp.js CHANGED
@@ -1,3 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- require('../dist/cli/index.js');
3
+ import('../dist/cli/index.js').catch(err => {
4
+ console.error(err);
5
+ process.exit(1);
6
+ });
package/dist/cli/index.js CHANGED
@@ -1,19 +1,15 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const commander_1 = require("commander");
8
- const core_1 = require("../core");
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(package_json_1.name)
15
- .description(package_json_1.description)
16
- .version(package_json_1.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 (0, core_1.generate)(options.config, options.incremental !== false);
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(chalk_1.default.red.bold('❌ Invalid format.') + ' Use: ' + chalk_1.default.yellow('json, ts, ') + 'or' + chalk_1.default.yellow(' js'));
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
- (0, create_sample_config_1.createSampleConfig)(format);
41
+ createSampleConfig(format);
46
42
  process.exit(0);
47
43
  }
48
44
  catch (error) {
49
45
  if (error instanceof Error) {
50
- console.error(chalk_1.default.red.bold(`❌ Error:`), chalk_1.default.white(error.message));
46
+ console.error(chalk.red.bold(`❌ Error:`), chalk.white(error.message));
51
47
  }
52
48
  process.exit(1);
53
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kCAAmC;AACnC,kDAA0B;AAC1B,qDAAgE;AAChE,uEAAkE;AAClE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,mBAAI,CAAC;KACV,WAAW,CAAC,0BAAW,CAAC;KACxB,OAAO,CAAC,sBAAO,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,IAAA,eAAQ,EAAC,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,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,QAAQ,GAAG,eAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACxH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAA,yCAAkB,EAAC,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,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,eAAK,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
+ {"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 +1 @@
1
- {"version":3,"file":"create-sample-config.d.ts","sourceRoot":"","sources":["../../src/core/create-sample-config.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,MAAM,KAAG,IA2CjE,CAAA"}
1
+ {"version":3,"file":"create-sample-config.d.ts","sourceRoot":"","sources":["../../src/core/create-sample-config.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,MAAM,KAAG,IA0CjE,CAAA"}
@@ -1,54 +1,14 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
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',
49
10
  ],
50
11
  outputPath: './app/types',
51
- targetAnnotation: 'TypeSharp',
52
12
  singleOutputFile: false,
53
13
  namingConvention: 'camel',
54
14
  fileSuffix: ''
@@ -65,7 +25,7 @@ const createSampleConfig = (format) => {
65
25
  }
66
26
  else {
67
27
  fileName = 'typesharp.config.ts';
68
- let namespace = '@siyavuyachagi/typesharp';
28
+ const namespace = '@siyavuyachagi/typesharp';
69
29
  content = [
70
30
  `import type { TypeSharpConfig } from '${namespace}';`,
71
31
  ``,
@@ -78,16 +38,16 @@ const createSampleConfig = (format) => {
78
38
  const allConfigFiles = ['typesharp.config.ts', 'typesharp.config.js', 'typesharp.config.json'];
79
39
  const existingConfig = allConfigFiles.find(f => fs.existsSync(f));
80
40
  if (existingConfig) {
81
- console.log(chalk_1.default.yellow.bold('❗ Warning:'), chalk_1.default.white(`${existingConfig} already exists. Skipping creation.`));
41
+ console.log(chalk.yellow.bold('❗ Warning:'), chalk.white(`${existingConfig} already exists. Skipping creation.`));
82
42
  return;
83
43
  }
84
44
  fs.writeFileSync(fileName, content, 'utf-8');
85
- console.log(chalk_1.default.green.bold(' Created'), chalk_1.default.white(`./${fileName}`));
45
+ console.log(chalk.gray('└── ') + chalk.blue(`./${fileName}`));
86
46
  };
87
- exports.createSampleConfig = createSampleConfig;
88
47
  /**
89
48
  * Format a plain object as a JS/TS object literal (no quoted keys)
90
49
  */
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
51
  const formatAsJsObject = (obj, indent = 0) => {
92
52
  const pad = ' '.repeat(indent + 2);
93
53
  const closePad = ' '.repeat(indent);
@@ -1 +1 @@
1
- {"version":3,"file":"create-sample-config.js","sourceRoot":"","sources":["../../src/core/create-sample-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-sample-config.js","sourceRoot":"","sources":["../../src/core/create-sample-config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TypeSharpConfig } from '../types/typesharp-config';
1
+ import { TypeSharpConfig } from '../types/typesharp-config.js';
2
2
  /**
3
3
  * Merge user config with defaults
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA8C5D;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,OAAO,CAAC,eAAe,CAAC,KAAG,eAsBpE,CAAC;AAOF,wBAAsB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC9F;AAkHD;;;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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAsD/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;AAuCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,QAoB/C;AAkCD;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAqB9E"}