namirasoft-sdk-generator 1.1.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.
- package/.gitlab-ci.yml +15 -0
- package/dist/BaseBuilder.d.ts +18 -0
- package/dist/BaseBuilder.js +101 -0
- package/dist/BaseBuilder.js.map +1 -0
- package/dist/BaseBuilderEnv.d.ts +11 -0
- package/dist/BaseBuilderEnv.js +124 -0
- package/dist/BaseBuilderEnv.js.map +1 -0
- package/dist/Logger.d.ts +16 -0
- package/dist/Logger.js +29 -0
- package/dist/Logger.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/dist/npm/NPMBuilder.d.ts +14 -0
- package/dist/npm/NPMBuilder.js +225 -0
- package/dist/npm/NPMBuilder.js.map +1 -0
- package/dist/npm/Ts.d.ts +15 -0
- package/dist/npm/Ts.js +72 -0
- package/dist/npm/Ts.js.map +1 -0
- package/dist/npm/TypeBuilder.d.ts +24 -0
- package/dist/npm/TypeBuilder.js +132 -0
- package/dist/npm/TypeBuilder.js.map +1 -0
- package/package.json +19 -0
- package/src/BaseBuilder.ts +79 -0
- package/src/BaseBuilderEnv.ts +98 -0
- package/src/Logger.ts +29 -0
- package/src/index.ts +40 -0
- package/src/npm/NPMBuilder.ts +232 -0
- package/src/npm/Ts.ts +56 -0
- package/src/npm/TypeBuilder.ts +106 -0
- package/tsconfig.json +30 -0
package/.gitlab-ci.yml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BaseBuilderEnv } from "./BaseBuilderEnv";
|
|
2
|
+
import { ApplicationSchema } from "namirasoft-schema";
|
|
3
|
+
export declare abstract class BaseBuilder {
|
|
4
|
+
protected src: BaseBuilderEnv;
|
|
5
|
+
protected dst: BaseBuilderEnv;
|
|
6
|
+
protected json: any;
|
|
7
|
+
protected schema: ApplicationSchema;
|
|
8
|
+
protected name: string;
|
|
9
|
+
protected title: string;
|
|
10
|
+
protected description: string;
|
|
11
|
+
protected url: string;
|
|
12
|
+
protected account: boolean;
|
|
13
|
+
constructor(src_directory: string, dst_directory: string);
|
|
14
|
+
protected getURL(name: any): string;
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
protected abstract _run(): Promise<void>;
|
|
17
|
+
copy(srcPath: string, dstPath: string): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
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 (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.BaseBuilder = void 0;
|
|
36
|
+
const fs = __importStar(require("fs"));
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const Logger_1 = require("./Logger");
|
|
39
|
+
const BaseBuilderEnv_1 = require("./BaseBuilderEnv");
|
|
40
|
+
const namirasoft_schema_1 = require("namirasoft-schema");
|
|
41
|
+
class BaseBuilder {
|
|
42
|
+
constructor(src_directory, dst_directory) {
|
|
43
|
+
this.account = false;
|
|
44
|
+
this.src = new BaseBuilderEnv_1.BaseBuilderEnv("src", src_directory);
|
|
45
|
+
this.dst = new BaseBuilderEnv_1.BaseBuilderEnv("dst", dst_directory);
|
|
46
|
+
this.json = JSON.parse(fs.readFileSync(path.join(src_directory, "package.json"), 'utf8'));
|
|
47
|
+
this.name = this.json.name.replace(/-api-v\d/gm, "");
|
|
48
|
+
this.title = this.json.title.replace(/\sAPI\sV\d/gm, "");
|
|
49
|
+
this.description = this.json.description.replace(/\sAPI\sVersion\s\d/gm, "");
|
|
50
|
+
this.url = this.getURL(this.json.name);
|
|
51
|
+
}
|
|
52
|
+
getURL(name) {
|
|
53
|
+
let toks = name.split('-');
|
|
54
|
+
let index = toks.indexOf("api");
|
|
55
|
+
let subIndex = 2;
|
|
56
|
+
if (index < subIndex)
|
|
57
|
+
subIndex = index;
|
|
58
|
+
let subdomain = "";
|
|
59
|
+
if (index > 1)
|
|
60
|
+
subdomain = toks[1];
|
|
61
|
+
let ans = "https://";
|
|
62
|
+
if (subdomain)
|
|
63
|
+
ans += subdomain + ".";
|
|
64
|
+
ans += "namirasoft.com";
|
|
65
|
+
for (let i = subIndex; i < toks.length; i++)
|
|
66
|
+
ans += "/" + toks[i];
|
|
67
|
+
return ans;
|
|
68
|
+
}
|
|
69
|
+
run() {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
// command
|
|
72
|
+
yield this.src.exec("ncu -u");
|
|
73
|
+
yield this.src.exec("npm i");
|
|
74
|
+
yield this.src.exec("tsc");
|
|
75
|
+
this.src.saveFileText(".env", `NAMIRASOFT_MUTE="true"\nBASE_PATH=/`);
|
|
76
|
+
yield this.src.exec("node ./dist/index.js");
|
|
77
|
+
this.schema = namirasoft_schema_1.ApplicationSchema.byFile(namirasoft_schema_1.ApplicationSchema, this.src.getPath("application.schema"));
|
|
78
|
+
this.account = this.schema.tags.account == "true";
|
|
79
|
+
yield this._run();
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
copy(srcPath, dstPath) {
|
|
83
|
+
Logger_1.Logger.success("Copying file ...");
|
|
84
|
+
let src = path.join(this.src.directory, srcPath);
|
|
85
|
+
let dst = path.join(this.dst.directory, dstPath);
|
|
86
|
+
Logger_1.Logger.log(" source: " + srcPath);
|
|
87
|
+
Logger_1.Logger.log(" destination: " + dstPath);
|
|
88
|
+
Logger_1.Logger.log(" source full path: " + src);
|
|
89
|
+
Logger_1.Logger.log(" destination full path: " + dst);
|
|
90
|
+
if (fs.existsSync(src)) {
|
|
91
|
+
fs.copyFileSync(src, dst);
|
|
92
|
+
Logger_1.Logger.log(" source file was not found.");
|
|
93
|
+
Logger_1.Logger.log(" nothing was copied.");
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
Logger_1.Logger.log(" finished.");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.BaseBuilder = BaseBuilder;
|
|
101
|
+
//# sourceMappingURL=BaseBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseBuilder.js","sourceRoot":"","sources":["../src/BaseBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class BaseBuilderEnv {
|
|
2
|
+
private name;
|
|
3
|
+
directory: string;
|
|
4
|
+
constructor(name: string, directory: string);
|
|
5
|
+
getPath(directory: string): string;
|
|
6
|
+
mkFolder(directory: string): void;
|
|
7
|
+
saveFileText(filePath: string, data: string): void;
|
|
8
|
+
saveFileJson(filePath: string, data: any): void;
|
|
9
|
+
exec(command: string): Promise<void>;
|
|
10
|
+
download(url: string, filePath: string): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
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 (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.BaseBuilderEnv = void 0;
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const axios_1 = __importDefault(require("axios"));
|
|
42
|
+
const child_process_1 = require("child_process");
|
|
43
|
+
const Logger_1 = require("./Logger");
|
|
44
|
+
class BaseBuilderEnv {
|
|
45
|
+
constructor(name, directory) {
|
|
46
|
+
this.name = name;
|
|
47
|
+
this.directory = directory;
|
|
48
|
+
}
|
|
49
|
+
getPath(directory) {
|
|
50
|
+
return path.join(this.directory, directory);
|
|
51
|
+
}
|
|
52
|
+
mkFolder(directory) {
|
|
53
|
+
Logger_1.Logger.success("Making directory ...");
|
|
54
|
+
Logger_1.Logger.log(" env: " + this.name);
|
|
55
|
+
Logger_1.Logger.log(" path: " + directory);
|
|
56
|
+
fs.mkdirSync(this.getPath(directory), { recursive: true });
|
|
57
|
+
Logger_1.Logger.log(" finished.");
|
|
58
|
+
}
|
|
59
|
+
saveFileText(filePath, data) {
|
|
60
|
+
Logger_1.Logger.success("Making file ...");
|
|
61
|
+
let src = this.getPath(filePath);
|
|
62
|
+
Logger_1.Logger.log(" env: " + this.name);
|
|
63
|
+
Logger_1.Logger.log(" name: " + filePath);
|
|
64
|
+
Logger_1.Logger.log(" path: " + src);
|
|
65
|
+
fs.writeFileSync(src, data);
|
|
66
|
+
Logger_1.Logger.log(" finished.");
|
|
67
|
+
}
|
|
68
|
+
saveFileJson(filePath, data) {
|
|
69
|
+
this.saveFileText(filePath, JSON.stringify(data, null, 4));
|
|
70
|
+
}
|
|
71
|
+
exec(command) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
try {
|
|
74
|
+
Logger_1.Logger.success(command);
|
|
75
|
+
Logger_1.Logger.log(" env: " + this.name);
|
|
76
|
+
Logger_1.Logger.log(" cwd: " + this.directory);
|
|
77
|
+
let x = yield (0, child_process_1.execSync)(command, { cwd: this.directory, encoding: 'utf-8' });
|
|
78
|
+
Logger_1.Logger.log(x);
|
|
79
|
+
Logger_1.Logger.log(" finished.");
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
let e = error;
|
|
83
|
+
if (e.stdout)
|
|
84
|
+
Logger_1.Logger.error(e.stdout);
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
download(url, filePath) {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
Logger_1.Logger.success("Donwloading file");
|
|
92
|
+
Logger_1.Logger.log(" env: " + this.name);
|
|
93
|
+
Logger_1.Logger.log(" file path: " + filePath);
|
|
94
|
+
Logger_1.Logger.log(" url: " + url);
|
|
95
|
+
try {
|
|
96
|
+
const response = yield (0, axios_1.default)({
|
|
97
|
+
method: 'get',
|
|
98
|
+
url: url,
|
|
99
|
+
responseType: 'stream',
|
|
100
|
+
});
|
|
101
|
+
const writer = fs.createWriteStream(this.getPath(filePath));
|
|
102
|
+
response.data.pipe(writer);
|
|
103
|
+
return new Promise((resolve, reject) => {
|
|
104
|
+
writer.on('finish', () => {
|
|
105
|
+
Logger_1.Logger.log(" finished succressfully");
|
|
106
|
+
resolve();
|
|
107
|
+
});
|
|
108
|
+
writer.on('error', reject);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
if (error instanceof Error)
|
|
113
|
+
Logger_1.Logger.error('Error downloading file: ' + error.message);
|
|
114
|
+
else {
|
|
115
|
+
Logger_1.Logger.error('Error downloading file: ');
|
|
116
|
+
console.log(error);
|
|
117
|
+
}
|
|
118
|
+
throw error;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.BaseBuilderEnv = BaseBuilderEnv;
|
|
124
|
+
//# sourceMappingURL=BaseBuilderEnv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseBuilderEnv.js","sourceRoot":"","sources":["../src/BaseBuilderEnv.ts"],"names":[],"mappings":"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"}
|
package/dist/Logger.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class Logger {
|
|
2
|
+
static colors: {
|
|
3
|
+
reset: string;
|
|
4
|
+
red: string;
|
|
5
|
+
green: string;
|
|
6
|
+
yellow: string;
|
|
7
|
+
blue: string;
|
|
8
|
+
magenta: string;
|
|
9
|
+
cyan: string;
|
|
10
|
+
white: string;
|
|
11
|
+
};
|
|
12
|
+
static log(message: string): void;
|
|
13
|
+
static info(message: string): void;
|
|
14
|
+
static success(message: string): void;
|
|
15
|
+
static error(message: string): void;
|
|
16
|
+
}
|
package/dist/Logger.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Logger = void 0;
|
|
4
|
+
class Logger {
|
|
5
|
+
static log(message) {
|
|
6
|
+
console.info(Logger.colors.white + message + Logger.colors.reset);
|
|
7
|
+
}
|
|
8
|
+
static info(message) {
|
|
9
|
+
console.info(Logger.colors.blue + message + Logger.colors.reset);
|
|
10
|
+
}
|
|
11
|
+
static success(message) {
|
|
12
|
+
console.info(Logger.colors.green + message + Logger.colors.reset);
|
|
13
|
+
}
|
|
14
|
+
static error(message) {
|
|
15
|
+
console.error(Logger.colors.red + message + Logger.colors.reset);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.Logger = Logger;
|
|
19
|
+
Logger.colors = {
|
|
20
|
+
reset: '\x1b[0m',
|
|
21
|
+
red: '\x1b[31m',
|
|
22
|
+
green: '\x1b[32m',
|
|
23
|
+
yellow: '\x1b[33m',
|
|
24
|
+
blue: '\x1b[34m',
|
|
25
|
+
magenta: '\x1b[35m',
|
|
26
|
+
cyan: '\x1b[36m',
|
|
27
|
+
white: '\x1b[37m',
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAYf,MAAM,CAAC,GAAG,CAAC,OAAe;QAEtB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,OAAe;QAEvB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,OAAe;QAE1B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,OAAe;QAExB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;;AA3BL,wBA4BC;AA1BU,aAAM,GAAG;IACZ,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;CACpB,CAAC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
27
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
28
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
29
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
30
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
31
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
32
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const Logger_1 = require("./Logger");
|
|
37
|
+
const NPMBuilder_1 = require("./npm/NPMBuilder");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
if (process.argv.length != 5) {
|
|
40
|
+
Logger_1.Logger.error("Error - invalid argument count.");
|
|
41
|
+
Logger_1.Logger.log(" Please use the following format");
|
|
42
|
+
Logger_1.Logger.log(" namirasoft-sdk-generator {platform name} {source directory} {destination directory}");
|
|
43
|
+
Logger_1.Logger.log(" example");
|
|
44
|
+
Logger_1.Logger.log(" namirasoft-sdk-generator npm . ./npm");
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
let platform = process.argv[2].toLowerCase();
|
|
48
|
+
let src_directory = path.resolve(process.argv[3].toLowerCase());
|
|
49
|
+
let dst_directory = path.resolve(process.argv[4].toLowerCase());
|
|
50
|
+
Logger_1.Logger.info(`----------------------------------------------------------------`);
|
|
51
|
+
Logger_1.Logger.info(`| Generating package |`);
|
|
52
|
+
Logger_1.Logger.info(`----------------------------------------------------------------`);
|
|
53
|
+
Logger_1.Logger.log(`Source directory: "${src_directory}"`);
|
|
54
|
+
Logger_1.Logger.log(`Destination directory: "${dst_directory}"`);
|
|
55
|
+
Logger_1.Logger.log(``);
|
|
56
|
+
function main() {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
if (platform == "npm") {
|
|
59
|
+
let builder = new NPMBuilder_1.NPMBuilder(src_directory, dst_directory);
|
|
60
|
+
yield builder.run();
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
Logger_1.Logger.error("Error - invalid platform value: " + platform);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
Logger_1.Logger.log(`Destination directory: "${dst_directory}"`);
|
|
67
|
+
Logger_1.Logger.success(`Pakcage was successfully generated.`);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
main();
|
|
71
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qCAAkC;AAClC,iDAA6C;AAC7C,2CAA4B;AAE5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAC5B;IACI,eAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAC/C,eAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACtD,eAAM,CAAC,GAAG,CAAC,gGAAgG,CAAC,CAAC;IAC7G,eAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9B,eAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACnB;AACD,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAChE,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAEhE,eAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;AAChF,eAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;AAChF,eAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;AAChF,eAAM,CAAC,GAAG,CAAC,qCAAqC,aAAa,GAAG,CAAC,CAAC;AAClE,eAAM,CAAC,GAAG,CAAC,qCAAqC,aAAa,GAAG,CAAC,CAAC;AAClE,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACf,SAAe,IAAI;;QAEf,IAAI,QAAQ,IAAI,KAAK,EACrB;YACI,IAAI,OAAO,GAAG,IAAI,uBAAU,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YAC3D,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;SACvB;aAED;YACI,eAAM,CAAC,KAAK,CAAC,kCAAkC,GAAG,QAAQ,CAAC,CAAA;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;QACD,eAAM,CAAC,GAAG,CAAC,qCAAqC,aAAa,GAAG,CAAC,CAAC;QAClE,eAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC1D,CAAC;CAAA;AACD,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseTypeSchema, ControllerSchema, ObjectSchema } from "namirasoft-schema";
|
|
2
|
+
import { BaseBuilder } from "../BaseBuilder";
|
|
3
|
+
import { Ts } from "./Ts";
|
|
4
|
+
export declare class NPMBuilder extends BaseBuilder {
|
|
5
|
+
protected _run(): Promise<void>;
|
|
6
|
+
save(ts: Ts): void;
|
|
7
|
+
getIndex(...all: Ts[]): Ts;
|
|
8
|
+
getRow(schema: ObjectSchema): Promise<Ts>;
|
|
9
|
+
getServer(tags: string[]): Ts;
|
|
10
|
+
getServerBase(): Ts;
|
|
11
|
+
getServerTag(tag: string): Ts;
|
|
12
|
+
addFunction(schema: ControllerSchema, ts: Ts): Promise<void>;
|
|
13
|
+
addFunction_GetType(schema: BaseTypeSchema | null, ts: Ts): Promise<string>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.NPMBuilder = void 0;
|
|
13
|
+
const namirasoft_schema_1 = require("namirasoft-schema");
|
|
14
|
+
const namirasoft_core_1 = require("namirasoft-core");
|
|
15
|
+
const BaseBuilder_1 = require("../BaseBuilder");
|
|
16
|
+
const Ts_1 = require("./Ts");
|
|
17
|
+
const TypeBuilder_1 = require("./TypeBuilder");
|
|
18
|
+
class NPMBuilder extends BaseBuilder_1.BaseBuilder {
|
|
19
|
+
_run() {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
// folder
|
|
22
|
+
yield this.dst.mkFolder("src");
|
|
23
|
+
yield this.dst.mkFolder("src/row");
|
|
24
|
+
// copy
|
|
25
|
+
yield this.copy("logo.png", "logo.png");
|
|
26
|
+
// download
|
|
27
|
+
yield this.dst.download("https://static.namirasoft.com/template/node/.gitignore", ".gitignore");
|
|
28
|
+
yield this.dst.download("https://static.namirasoft.com/template/node/ts/tsconfig.json", "tsconfig.json");
|
|
29
|
+
yield this.dst.download("https://static.namirasoft.com/template/gitlab-ci.yml/js/npm-publish.yml", ".gitlab-ci.yml");
|
|
30
|
+
let json = {
|
|
31
|
+
name: this.name,
|
|
32
|
+
description: this.description + " NPM Package",
|
|
33
|
+
"icon": "logo.png",
|
|
34
|
+
"version": "1.1.0",
|
|
35
|
+
"main": "./dist/index.js",
|
|
36
|
+
"types": "./dist/index.d.ts",
|
|
37
|
+
"scripts": {},
|
|
38
|
+
"author": "Amir Abolhasani",
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"namirasoft-core": "^1.1.0"
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
if (this.account)
|
|
45
|
+
json.dependencies["namirasoft-account"] = "^1.1.0";
|
|
46
|
+
// file
|
|
47
|
+
this.dst.saveFileJson("package.json", json);
|
|
48
|
+
// command
|
|
49
|
+
yield this.dst.exec("ncu -u");
|
|
50
|
+
yield this.dst.exec("npm i");
|
|
51
|
+
// codes
|
|
52
|
+
let looper = new namirasoft_schema_1.ApplicationLooper(this.schema);
|
|
53
|
+
let objs = yield looper.getObjects(true);
|
|
54
|
+
let tags = [...new Set(this.schema.controllers.map(c => c.tag))];
|
|
55
|
+
let rows = [];
|
|
56
|
+
for (let i = 0; i < objs.length; i++) {
|
|
57
|
+
const obj = objs[i];
|
|
58
|
+
let c = yield this.getRow(obj);
|
|
59
|
+
rows.push(c);
|
|
60
|
+
}
|
|
61
|
+
let server = this.getServer(tags);
|
|
62
|
+
let server_base = this.getServerBase();
|
|
63
|
+
let server_tags = {};
|
|
64
|
+
let servers = [];
|
|
65
|
+
tags.forEach(tag => {
|
|
66
|
+
let s = this.getServerTag(tag);
|
|
67
|
+
server_tags[tag] = s;
|
|
68
|
+
servers.push(s);
|
|
69
|
+
});
|
|
70
|
+
for (let i = 0; i < this.schema.controllers.length; i++) {
|
|
71
|
+
const c = this.schema.controllers[i];
|
|
72
|
+
yield this.addFunction(c, server_tags[c.tag]);
|
|
73
|
+
}
|
|
74
|
+
let all = [...rows, server, server_base, ...servers];
|
|
75
|
+
let index = this.getIndex(...all);
|
|
76
|
+
all.forEach(x => this.save(x));
|
|
77
|
+
this.save(index);
|
|
78
|
+
// command
|
|
79
|
+
yield this.dst.exec("tsc");
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
save(ts) {
|
|
83
|
+
this.dst.saveFileText(ts.getFilePath(), ts.getContent());
|
|
84
|
+
}
|
|
85
|
+
getIndex(...all) {
|
|
86
|
+
let ts = new Ts_1.Ts("./src", "", "index", "", false);
|
|
87
|
+
all.forEach(x => ts.imports.push(`export * from "${x.exportPath}/${x.name}";`));
|
|
88
|
+
return ts;
|
|
89
|
+
}
|
|
90
|
+
getRow(schema) {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
let name = TypeBuilder_1.TypeBuilder.getClassName(schema.name);
|
|
93
|
+
let ts = new Ts_1.Ts("./src/row", "./row", name, undefined, false);
|
|
94
|
+
ts.scripts.push(`export type ${name} = `);
|
|
95
|
+
ts.scripts.push(`{`);
|
|
96
|
+
if (schema.fields)
|
|
97
|
+
for (let i = 0; i < schema.fields.length; i++) {
|
|
98
|
+
const field = schema.fields[i];
|
|
99
|
+
let build = new TypeBuilder_1.TypeBuilder(field.type);
|
|
100
|
+
let type = yield build.run();
|
|
101
|
+
ts.scripts.push(` ${field.name}: ${type};`);
|
|
102
|
+
if (field.name) {
|
|
103
|
+
let looper = new namirasoft_schema_1.TypeLooper(field.type);
|
|
104
|
+
let rows = yield looper.getObjects(true);
|
|
105
|
+
if (rows) {
|
|
106
|
+
for (let j = 0; j < rows.length; j++) {
|
|
107
|
+
const row = rows[j];
|
|
108
|
+
let typename = TypeBuilder_1.TypeBuilder.getClassName(row.name);
|
|
109
|
+
ts.imports.push(`import { ${typename} } from "./${typename}";`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
ts.scripts.push(`}`);
|
|
115
|
+
return ts;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
getServer(tags) {
|
|
119
|
+
let className = this.title.replace(/\s/gm, "") + "Server";
|
|
120
|
+
let ts = new Ts_1.Ts("./src", "./", className);
|
|
121
|
+
ts.imports.push(`import { TokenManager } from "namirasoft-account";`);
|
|
122
|
+
tags.forEach(tag => ts.imports.push(`import { ${className}${tag} } from "./${className}${tag}";`));
|
|
123
|
+
tags.forEach(tag => ts.fields.push(`${tag.toLowerCase()}: ${className}${tag};`));
|
|
124
|
+
ts.constructors.push(`constructor(manager: TokenManager, onError: (error: Error) => void)`);
|
|
125
|
+
ts.constructors.push(`{`);
|
|
126
|
+
if (this.account)
|
|
127
|
+
tags.forEach(tag => ts.constructors.push(` this.${tag.toLowerCase()} = new ${className}${tag}(manager, onError);`));
|
|
128
|
+
else
|
|
129
|
+
tags.forEach(tag => ts.constructors.push(` this.${tag.toLowerCase()} = new ${className}${tag}(onError);`));
|
|
130
|
+
ts.constructors.push(`}`);
|
|
131
|
+
return ts;
|
|
132
|
+
}
|
|
133
|
+
getServerBase() {
|
|
134
|
+
let className = this.title.replace(/\s/gm, "") + "ServerBase";
|
|
135
|
+
let parentName = this.account ? "NamirasoftServerBase" : "BaseServer";
|
|
136
|
+
let ts = new Ts_1.Ts("./src", "./", className, parentName);
|
|
137
|
+
if (this.account) {
|
|
138
|
+
ts.imports.push(`import { NamirasoftServerBase } from "namirasoft-account";`);
|
|
139
|
+
ts.imports.push(`import { TokenManager } from "namirasoft-account";`);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
ts.imports.push(`import { BaseServer } from "namirasoft-core";`);
|
|
143
|
+
}
|
|
144
|
+
if (this.account)
|
|
145
|
+
ts.constructors.push(`constructor(manager: TokenManager, onError: (error: Error) => void)`);
|
|
146
|
+
else
|
|
147
|
+
ts.constructors.push(`constructor(onError: (error: Error) => void)`);
|
|
148
|
+
ts.constructors.push(`{`);
|
|
149
|
+
if (this.account)
|
|
150
|
+
ts.constructors.push(` super("${this.url}", manager, onError);`);
|
|
151
|
+
else {
|
|
152
|
+
ts.fields.push("protected onError;");
|
|
153
|
+
ts.constructors.push(` super("${this.url}");`);
|
|
154
|
+
ts.constructors.push(` this.onError = onError;`);
|
|
155
|
+
ts.functions.push(`protected override onBeforeRequest()`);
|
|
156
|
+
ts.functions.push(`{`);
|
|
157
|
+
ts.functions.push(`}`);
|
|
158
|
+
ts.functions.push(`protected onAfterRequest()`);
|
|
159
|
+
ts.functions.push(`{`);
|
|
160
|
+
ts.functions.push(`}`);
|
|
161
|
+
}
|
|
162
|
+
ts.constructors.push(`}`);
|
|
163
|
+
return ts;
|
|
164
|
+
}
|
|
165
|
+
getServerTag(tag) {
|
|
166
|
+
let baseName = this.title.replace(/\s/gm, "") + "Server";
|
|
167
|
+
let parentName = baseName + "Base";
|
|
168
|
+
let className = baseName + tag;
|
|
169
|
+
let ts = new Ts_1.Ts("./src", "./", className, parentName);
|
|
170
|
+
ts.imports.push(`import { ${parentName} } from "./${parentName}";`);
|
|
171
|
+
return ts;
|
|
172
|
+
}
|
|
173
|
+
addFunction(schema, ts) {
|
|
174
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
175
|
+
let pars = [];
|
|
176
|
+
for (let i = 0; i < schema.parameters.length; i++) {
|
|
177
|
+
const parameter = schema.parameters[i];
|
|
178
|
+
let parameter_type = yield this.addFunction_GetType(parameter.type, ts);
|
|
179
|
+
pars.push(parameter.name + ": " + parameter_type);
|
|
180
|
+
}
|
|
181
|
+
let queries = [];
|
|
182
|
+
for (let i = 0; i < schema.queries.length; i++) {
|
|
183
|
+
const parameter = schema.queries[i];
|
|
184
|
+
let parameter_type = yield this.addFunction_GetType(parameter.type, ts);
|
|
185
|
+
pars.push(parameter.name + ": " + parameter_type);
|
|
186
|
+
queries.push(`${parameter.name}`);
|
|
187
|
+
}
|
|
188
|
+
let body = "";
|
|
189
|
+
if (schema.body) {
|
|
190
|
+
let parameter_type = yield this.addFunction_GetType(schema.body, ts);
|
|
191
|
+
pars.push("body" + ": " + parameter_type);
|
|
192
|
+
body = ", body";
|
|
193
|
+
}
|
|
194
|
+
let type_output = yield this.addFunction_GetType(schema.output, ts);
|
|
195
|
+
let query = "{ " + queries.join(",") + " }";
|
|
196
|
+
ts.functions.push(`async ${schema.name}(${pars.join(", ")}): Promise<${type_output}>`);
|
|
197
|
+
ts.functions.push(`{`);
|
|
198
|
+
ts.functions.push(` let path = \`${schema.path.replace(/\{/gm, '${')}\`;`);
|
|
199
|
+
ts.functions.push(` let { data } = await this._${namirasoft_core_1.HTTPMethod[schema.method].toLowerCase()}<${type_output}>(path, ${query}${body});`);
|
|
200
|
+
ts.functions.push(` return data;`);
|
|
201
|
+
ts.functions.push(`}`);
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
addFunction_GetType(schema, ts) {
|
|
205
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
206
|
+
let type_output = null;
|
|
207
|
+
if (schema) {
|
|
208
|
+
let builder = new TypeBuilder_1.TypeBuilder(schema);
|
|
209
|
+
type_output = yield builder.run();
|
|
210
|
+
let looper = new namirasoft_schema_1.TypeLooper(schema, false);
|
|
211
|
+
let rows = yield looper.getObjects(true);
|
|
212
|
+
if (rows) {
|
|
213
|
+
for (let j = 0; j < rows.length; j++) {
|
|
214
|
+
const row = rows[j];
|
|
215
|
+
let typename = TypeBuilder_1.TypeBuilder.getClassName(row.name);
|
|
216
|
+
ts.imports.push(`import { ${typename} } from "./row/${typename}";`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return type_output !== null && type_output !== void 0 ? type_output : "string";
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
exports.NPMBuilder = NPMBuilder;
|
|
225
|
+
//# sourceMappingURL=NPMBuilder.js.map
|