@ayasofyazilim/saas 0.0.26 → 0.0.28

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/generator.mjs CHANGED
@@ -1,10 +1,11 @@
1
+ #! /usr/bin/env node
1
2
  import { createClient } from "@hey-api/openapi-ts";
2
3
  import SwaggerParser from "@apidevtools/swagger-parser";
3
4
  import fs from "fs";
4
5
 
5
6
  const BASE_URL = "http://192.168.1.105:";
6
7
  const WEBGATEWAY_PORT = 44336;
7
- const api_list = [
8
+ var initial_api_list = [
8
9
  {
9
10
  input: "swagger-json/AuthServer",
10
11
  output: "Account",
@@ -47,7 +48,7 @@ const api_list = [
47
48
  input: "swagger-json/Setting",
48
49
  output: "Setting",
49
50
  port: 44335,
50
- dereference: false,
51
+ dereference: true,
51
52
  },
52
53
  {
53
54
  input: "swagger-json/Merchant",
@@ -79,30 +80,56 @@ function getCircularReplacer() {
79
80
  return value;
80
81
  };
81
82
  }
82
-
83
- for (const api of api_list) {
84
- console.log(`✨ Processing ${api.output}...`);
85
- const port = api?.port ? api.port : WEBGATEWAY_PORT;
86
- const apiURL = clean_URL(
87
- `${BASE_URL + port}/${api.input}` + "/swagger/v1/swagger.json"
88
- );
89
- const swaggerText = await SwaggerParser.dereference(apiURL);
90
- let temp_swagger = apiURL;
91
- if (api.dereference) {
92
- console.log(typeof swaggerText);
93
- console.log(`🎁 Dereferencing ${api.output} is from ${apiURL} done.`);
94
- temp_swagger = `temp_${api.output}_swagger.json`;
95
- fs.writeFileSync(
96
- temp_swagger,
97
- JSON.stringify(swaggerText, getCircularReplacer())
83
+ async function generateApi(api_list) {
84
+ for (const api of api_list) {
85
+ console.log(`✨ Processing ${api.output}...`);
86
+ const port = api?.port ? api.port : WEBGATEWAY_PORT;
87
+ const apiURL = clean_URL(
88
+ `${BASE_URL + port}/${api.input}` + "/swagger/v1/swagger.json",
98
89
  );
90
+ const swaggerText = await SwaggerParser.dereference(apiURL);
91
+ let temp_swagger = apiURL;
92
+ if (api.dereference) {
93
+ console.log(typeof swaggerText);
94
+ console.log(`🎁 Dereferencing ${api.output} is from ${apiURL} done.`);
95
+ temp_swagger = `temp_${api.output}_swagger.json`;
96
+ fs.writeFileSync(
97
+ temp_swagger,
98
+ JSON.stringify(swaggerText, getCircularReplacer()),
99
+ );
100
+ }
101
+ await createClient({
102
+ input: temp_swagger,
103
+ output: api.output + "Service",
104
+ name: api.output + "ServiceClient",
105
+ client: "fetch",
106
+ });
107
+ if (api.dereference) fs.unlinkSync(temp_swagger);
108
+ console.log(`✅ Generating ${api.output} is done.`);
109
+ }
110
+ }
111
+
112
+ const args = process.argv.filter(val => val.startsWith('--'));
113
+ const isAll = args.filter(val => val === '--all').length > 0;
114
+ const hasFilter = args.filter(val => val.startsWith('--filter')).length > 0;
115
+ const knownArgs = ["--all", "--filter"];
116
+ const unknownArgs = args.filter(val => !knownArgs.includes(val) && !knownArgs.includes(val.split('=').at(0)));
117
+ async function init() {
118
+ if (unknownArgs.length > 0) {
119
+ return console.error(`❌ Unknown arguments: ${unknownArgs.join(', ')}`);
120
+ }
121
+ if (isAll && hasFilter) {
122
+ return console.error(`❌ Cannot use --all and --filter at the same time.`);
123
+ }
124
+ if (hasFilter) {
125
+ const filter = args.filter(val => val.startsWith('--filter'))[0].split('=')[1];
126
+ const filterArgs = filter.split(',');
127
+ initial_api_list = initial_api_list.filter(val => filterArgs.includes(val.output))
128
+ if (initial_api_list.length === 0) {
129
+ return console.error(`❌ Unknown filter: ${filter}`);
130
+ }
131
+ console.log(`📃 Generating with filters: ${filter}`);
99
132
  }
100
- await createClient({
101
- input: temp_swagger,
102
- output: api.output + "Service",
103
- name: api.output + "ServiceClient",
104
- client: "fetch",
105
- });
106
- if (api.dereference) fs.unlinkSync(temp_swagger);
107
- console.log(`✅ Generating ${api.output} is done.`);
133
+ await generateApi(initial_api_list);
108
134
  }
135
+ init()
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@ayasofyazilim/saas",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "description": "Ayasofyazılım SAAS",
5
+ "main": "generator.mjs",
6
+ "bin": {
7
+ "generate": "generator.mjs"
8
+ },
5
9
  "exports": {
6
10
  "./AccountService": "./AccountService/index.ts",
7
11
  "./ProjectService": "./ProjectService/index.ts",
@@ -14,7 +18,7 @@
14
18
  "./MerchantService": "./MerchantService/index.ts"
15
19
  },
16
20
  "scripts": {
17
- "gen:all": "node generator.mjs",
21
+ "gen:all": "node generator.mjs --all",
18
22
  "init-release": "publish --access public",
19
23
  "release": "release-it"
20
24
  },