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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NPMBuilder.js","sourceRoot":"","sources":["../../src/npm/NPMBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare class Ts {
2
+ path: string;
3
+ exportPath: string;
4
+ name: string;
5
+ parent_name: string;
6
+ has_class: boolean;
7
+ imports: string[];
8
+ scripts: string[];
9
+ fields: string[];
10
+ constructors: string[];
11
+ functions: string[];
12
+ constructor(path: string, exportPath: string, name: string, parent_name?: string, has_class?: boolean);
13
+ getFilePath(): string;
14
+ getContent(): string;
15
+ }
package/dist/npm/Ts.js ADDED
@@ -0,0 +1,72 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Ts = void 0;
27
+ const path = __importStar(require("path"));
28
+ class Ts {
29
+ constructor(path, exportPath, name, parent_name = "", has_class = true) {
30
+ this.imports = [];
31
+ this.scripts = [];
32
+ this.fields = [];
33
+ this.constructors = [];
34
+ this.functions = [];
35
+ this.path = path;
36
+ this.exportPath = exportPath;
37
+ this.name = name;
38
+ this.parent_name = parent_name;
39
+ this.has_class = has_class;
40
+ }
41
+ getFilePath() {
42
+ let ans = path.join(this.path, this.name + ".ts");
43
+ if (this.path.startsWith("./"))
44
+ if (!ans.startsWith("./"))
45
+ ans = "./" + ans;
46
+ return ans;
47
+ }
48
+ getContent() {
49
+ let lines = [];
50
+ if (this.imports.length > 0) {
51
+ let is = [...new Set(this.imports)];
52
+ is.sort();
53
+ lines.push(...is);
54
+ lines.push("");
55
+ }
56
+ if (this.scripts.length > 0) {
57
+ lines.push(...this.scripts);
58
+ lines.push("");
59
+ }
60
+ if (this.has_class) {
61
+ lines.push("export class " + this.name + (this.parent_name ? (" extends " + this.parent_name) : ""));
62
+ lines.push("{");
63
+ lines.push(...(this.fields.map(x => " " + x)));
64
+ lines.push(...(this.constructors.map(x => " " + x)));
65
+ lines.push(...(this.functions.map(x => " " + x)));
66
+ lines.push("}");
67
+ }
68
+ return lines.join("\n");
69
+ }
70
+ }
71
+ exports.Ts = Ts;
72
+ //# sourceMappingURL=Ts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ts.js","sourceRoot":"","sources":["../../src/npm/Ts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,MAAa,EAAE;IAYX,YAAY,IAAY,EAAE,UAAkB,EAAE,IAAY,EAAE,cAAsB,EAAE,EAAE,YAAqB,IAAI;QAL/G,YAAO,GAAa,EAAE,CAAC;QACvB,YAAO,GAAa,EAAE,CAAC;QACvB,WAAM,GAAa,EAAE,CAAC;QACtB,iBAAY,GAAa,EAAE,CAAC;QAC5B,cAAS,GAAa,EAAE,CAAC;QAGrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACD,WAAW;QAEP,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrB,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;QACzB,OAAO,GAAG,CAAC;IACf,CAAC;IACD,UAAU;QAEN,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAC3B;YACI,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClB;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAC3B;YACI,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClB;QACD,IAAI,IAAI,CAAC,SAAS,EAClB;YACI,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnB;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACJ;AAtDD,gBAsDC"}
@@ -0,0 +1,24 @@
1
+ import { AnySchema, ArraySchema, BaseTypeBuilder, BigIntSchema, BoolSchema, DateSchema, DateTimeSchema, DecimalSchema, DoubleSchema, FloatSchema, IntegerSchema, MediumIntSchema, ObjectSchema, RealSchema, SmallIntSchema, StringSchema, TimeSchema, TinyIntSchema } from "namirasoft-schema";
2
+ import { EnumSchema } from "namirasoft-schema/dist/schema/type/EnumSchema";
3
+ export declare class TypeBuilder extends BaseTypeBuilder<string> {
4
+ private toBase;
5
+ protected _toAny(schema: AnySchema): Promise<string>;
6
+ protected _toBool(schema: BoolSchema): Promise<string>;
7
+ protected _toTinyInt(schema: TinyIntSchema): Promise<string>;
8
+ protected _toSmallInt(schema: SmallIntSchema): Promise<string>;
9
+ protected _toMediumInt(schema: MediumIntSchema): Promise<string>;
10
+ protected _toInteger(schema: IntegerSchema): Promise<string>;
11
+ protected _toBigInt(schema: BigIntSchema): Promise<string>;
12
+ protected _toFloat(schema: FloatSchema): Promise<string>;
13
+ protected _toDouble(schema: DoubleSchema): Promise<string>;
14
+ protected _toDecimal(schema: DecimalSchema): Promise<string>;
15
+ protected _toReal(schema: RealSchema): Promise<string>;
16
+ protected _toString(schema: StringSchema): Promise<string>;
17
+ protected _toDateTime(schema: DateTimeSchema): Promise<string>;
18
+ protected _toDate(schema: DateSchema): Promise<string>;
19
+ protected _toTime(schema: TimeSchema): Promise<string>;
20
+ protected _toEnum(schema: EnumSchema): Promise<string>;
21
+ protected _toArray(schema: ArraySchema): Promise<string>;
22
+ protected _toObject(schema: ObjectSchema): Promise<string>;
23
+ static getClassName(name: string): string;
24
+ }
@@ -0,0 +1,132 @@
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.TypeBuilder = void 0;
13
+ const namirasoft_schema_1 = require("namirasoft-schema");
14
+ class TypeBuilder extends namirasoft_schema_1.BaseTypeBuilder {
15
+ toBase(schema, type) {
16
+ if (!schema.required)
17
+ type += " | null";
18
+ return type;
19
+ }
20
+ _toAny(schema) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ return this.toBase(schema, "any");
23
+ });
24
+ }
25
+ _toBool(schema) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ return this.toBase(schema, "boolean");
28
+ });
29
+ }
30
+ _toTinyInt(schema) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ return this.toBase(schema, "number");
33
+ });
34
+ }
35
+ _toSmallInt(schema) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ return this.toBase(schema, "number");
38
+ });
39
+ }
40
+ _toMediumInt(schema) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ return this.toBase(schema, "number");
43
+ });
44
+ }
45
+ _toInteger(schema) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ return this.toBase(schema, "number");
48
+ });
49
+ }
50
+ _toBigInt(schema) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ return this.toBase(schema, "number");
53
+ });
54
+ }
55
+ _toFloat(schema) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ return this.toBase(schema, "number");
58
+ });
59
+ }
60
+ _toDouble(schema) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ return this.toBase(schema, "number");
63
+ });
64
+ }
65
+ _toDecimal(schema) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ return this.toBase(schema, "number");
68
+ });
69
+ }
70
+ _toReal(schema) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ return this.toBase(schema, "number");
73
+ });
74
+ }
75
+ _toString(schema) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ return this.toBase(schema, "string");
78
+ });
79
+ }
80
+ _toDateTime(schema) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ return this.toBase(schema, "Date");
83
+ });
84
+ }
85
+ _toDate(schema) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ return this.toBase(schema, "");
88
+ });
89
+ }
90
+ _toTime(schema) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ return this.toBase(schema, "");
93
+ });
94
+ }
95
+ _toEnum(schema) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ return this.toBase(schema, "");
98
+ });
99
+ }
100
+ _toArray(schema) {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ let names = [];
103
+ for (let i = 0; i < schema.items.length; i++) {
104
+ const item = schema.items[i];
105
+ let builder = new TypeBuilder(item);
106
+ let name = yield builder.run();
107
+ names.push(name !== null && name !== void 0 ? name : "any");
108
+ }
109
+ names = [...new Set(names)];
110
+ let ans = "";
111
+ if (names.length == 0)
112
+ ans = "any";
113
+ else if (names.length == 1)
114
+ ans = names[0];
115
+ else
116
+ ans = "(" + names.join(" | ") + ")";
117
+ return this.toBase(schema, ans + "[]");
118
+ });
119
+ }
120
+ _toObject(schema) {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ return this.toBase(schema, TypeBuilder.getClassName(schema.name));
123
+ });
124
+ }
125
+ static getClassName(name) {
126
+ let ns = name.split('_');
127
+ ns = ns.map(n => n[0].toUpperCase() + n.substring(1).toLowerCase());
128
+ return ns.join("") + "Row";
129
+ }
130
+ }
131
+ exports.TypeBuilder = TypeBuilder;
132
+ //# sourceMappingURL=TypeBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeBuilder.js","sourceRoot":"","sources":["../../src/npm/TypeBuilder.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "namirasoft-sdk-generator",
3
+ "description": "Namira Software SDK Generator NPM Package",
4
+ "version": "1.1.0",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "scripts": {},
8
+ "author": "Amir Abolhasani",
9
+ "license": "MIT",
10
+ "bin": {
11
+ "namirasoft-sdk-generator": "./dist/index.js"
12
+ },
13
+ "dependencies": {
14
+ "@types/node": "^20.10.0",
15
+ "axios": "^1.6.2",
16
+ "namirasoft-log": "^1.1.3",
17
+ "namirasoft-schema": "^1.1.53"
18
+ }
19
+ }
@@ -0,0 +1,79 @@
1
+ import * as fs from "fs"
2
+ import * as path from "path"
3
+ import { Logger } from "./Logger";
4
+ import { BaseBuilderEnv } from "./BaseBuilderEnv";
5
+ import { ApplicationSchema } from "namirasoft-schema";
6
+
7
+ export abstract class BaseBuilder
8
+ {
9
+ protected src: BaseBuilderEnv;
10
+ protected dst: BaseBuilderEnv;
11
+ protected json: any;
12
+ protected schema!: ApplicationSchema;
13
+ protected name: string;
14
+ protected title: string;
15
+ protected description: string;
16
+ protected url: string;
17
+ protected account: boolean = false;
18
+ constructor(src_directory: string, dst_directory: string)
19
+ {
20
+ this.src = new BaseBuilderEnv("src", src_directory);
21
+ this.dst = new BaseBuilderEnv("dst", dst_directory);
22
+ this.json = JSON.parse(fs.readFileSync(path.join(src_directory, "package.json"), 'utf8'));
23
+ this.name = this.json.name.replace(/-api-v\d/gm, "");
24
+ this.title = this.json.title.replace(/\sAPI\sV\d/gm, "");
25
+ this.description = this.json.description.replace(/\sAPI\sVersion\s\d/gm, "");
26
+ this.url = this.getURL(this.json.name);
27
+ }
28
+ protected getURL(name: any): string
29
+ {
30
+ let toks = name.split('-');
31
+ let index = toks.indexOf("api");
32
+ let subIndex = 2;
33
+ if (index < subIndex)
34
+ subIndex = index;
35
+ let subdomain = "";
36
+ if (index > 1)
37
+ subdomain = toks[1];
38
+ let ans = "https://";
39
+ if (subdomain)
40
+ ans += subdomain + ".";
41
+ ans += "namirasoft.com";
42
+ for (let i = subIndex; i < toks.length; i++)
43
+ ans += "/" + toks[i];
44
+ return ans;
45
+ }
46
+ async run(): Promise<void>
47
+ {
48
+ // command
49
+ await this.src.exec("ncu -u");
50
+ await this.src.exec("npm i");
51
+ await this.src.exec("tsc");
52
+ this.src.saveFileText(".env", `NAMIRASOFT_MUTE="true"\nBASE_PATH=/`);
53
+ await this.src.exec("node ./dist/index.js");
54
+ this.schema = ApplicationSchema.byFile(ApplicationSchema, this.src.getPath("application.schema"));
55
+ this.account = this.schema.tags.account == "true";
56
+ await this._run();
57
+ }
58
+ protected abstract _run(): Promise<void>;
59
+ copy(srcPath: string, dstPath: string): void
60
+ {
61
+ Logger.success("Copying file ...");
62
+ let src = path.join(this.src.directory, srcPath);
63
+ let dst = path.join(this.dst.directory, dstPath);
64
+ Logger.log(" source: " + srcPath);
65
+ Logger.log(" destination: " + dstPath);
66
+ Logger.log(" source full path: " + src);
67
+ Logger.log(" destination full path: " + dst);
68
+ if (fs.existsSync(src))
69
+ {
70
+ fs.copyFileSync(src, dst);
71
+ Logger.log(" source file was not found.");
72
+ Logger.log(" nothing was copied.");
73
+ }
74
+ else
75
+ {
76
+ Logger.log(" finished.");
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,98 @@
1
+ import * as fs from "fs"
2
+ import * as path from "path"
3
+ import axios from "axios"
4
+ import { execSync } from 'child_process';
5
+ import { Logger } from "./Logger";
6
+ export class BaseBuilderEnv
7
+ {
8
+ private name: string;
9
+ public directory: string;
10
+ constructor(name: string, directory: string)
11
+ {
12
+ this.name = name;
13
+ this.directory = directory;
14
+ }
15
+ getPath(directory: string)
16
+ {
17
+ return path.join(this.directory, directory);
18
+ }
19
+ mkFolder(directory: string)
20
+ {
21
+ Logger.success("Making directory ...");
22
+ Logger.log(" env: " + this.name);
23
+ Logger.log(" path: " + directory);
24
+ fs.mkdirSync(this.getPath(directory), { recursive: true });
25
+ Logger.log(" finished.");
26
+ }
27
+ saveFileText(filePath: string, data: string): void
28
+ {
29
+ Logger.success("Making file ...");
30
+ let src = this.getPath(filePath);
31
+ Logger.log(" env: " + this.name);
32
+ Logger.log(" name: " + filePath);
33
+ Logger.log(" path: " + src);
34
+ fs.writeFileSync(src, data);
35
+ Logger.log(" finished.");
36
+ }
37
+ saveFileJson(filePath: string, data: any): void
38
+ {
39
+ this.saveFileText(filePath, JSON.stringify(data, null, 4));
40
+ }
41
+ async exec(command: string)
42
+ {
43
+ try
44
+ {
45
+ Logger.success(command);
46
+ Logger.log(" env: " + this.name);
47
+ Logger.log(" cwd: " + this.directory);
48
+ let x = await execSync(command, { cwd: this.directory, encoding: 'utf-8' });
49
+ Logger.log(x);
50
+ Logger.log(" finished.");
51
+ } catch (error)
52
+ {
53
+ let e = error as any;
54
+ if (e.stdout)
55
+ Logger.error(e.stdout);
56
+ throw error;
57
+ }
58
+ }
59
+ async download(url: string, filePath: string): Promise<void>
60
+ {
61
+ Logger.success("Donwloading file");
62
+ Logger.log(" env: " + this.name);
63
+ Logger.log(" file path: " + filePath);
64
+ Logger.log(" url: " + url);
65
+ try
66
+ {
67
+ const response = await axios({
68
+ method: 'get',
69
+ url: url,
70
+ responseType: 'stream',
71
+ });
72
+
73
+ const writer = fs.createWriteStream(this.getPath(filePath));
74
+
75
+ response.data.pipe(writer);
76
+
77
+ return new Promise((resolve, reject) =>
78
+ {
79
+ writer.on('finish', () =>
80
+ {
81
+ Logger.log(" finished succressfully");
82
+ resolve();
83
+ });
84
+ writer.on('error', reject);
85
+ });
86
+ } catch (error)
87
+ {
88
+ if (error instanceof Error)
89
+ Logger.error('Error downloading file: ' + error.message);
90
+ else
91
+ {
92
+ Logger.error('Error downloading file: ');
93
+ console.log(error)
94
+ }
95
+ throw error;
96
+ }
97
+ }
98
+ }
package/src/Logger.ts ADDED
@@ -0,0 +1,29 @@
1
+ export class Logger
2
+ {
3
+ static colors = {
4
+ reset: '\x1b[0m',
5
+ red: '\x1b[31m',
6
+ green: '\x1b[32m',
7
+ yellow: '\x1b[33m',
8
+ blue: '\x1b[34m',
9
+ magenta: '\x1b[35m',
10
+ cyan: '\x1b[36m',
11
+ white: '\x1b[37m',
12
+ };
13
+ static log(message: string)
14
+ {
15
+ console.info(Logger.colors.white + message + Logger.colors.reset);
16
+ }
17
+ static info(message: string)
18
+ {
19
+ console.info(Logger.colors.blue + message + Logger.colors.reset);
20
+ }
21
+ static success(message: string)
22
+ {
23
+ console.info(Logger.colors.green + message + Logger.colors.reset);
24
+ }
25
+ static error(message: string)
26
+ {
27
+ console.error(Logger.colors.red + message + Logger.colors.reset);
28
+ }
29
+ }
package/src/index.ts ADDED
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+ import { Logger } from "./Logger";
3
+ import { NPMBuilder } from "./npm/NPMBuilder"
4
+ import * as path from "path"
5
+
6
+ if (process.argv.length != 5)
7
+ {
8
+ Logger.error("Error - invalid argument count.")
9
+ Logger.log(" Please use the following format");
10
+ Logger.log(" namirasoft-sdk-generator {platform name} {source directory} {destination directory}");
11
+ Logger.log(" example");
12
+ Logger.log(" namirasoft-sdk-generator npm . ./npm");
13
+ process.exit(1);
14
+ }
15
+ let platform = process.argv[2].toLowerCase();
16
+ let src_directory = path.resolve(process.argv[3].toLowerCase());
17
+ let dst_directory = path.resolve(process.argv[4].toLowerCase());
18
+
19
+ Logger.info(`----------------------------------------------------------------`);
20
+ Logger.info(`| Generating package |`);
21
+ Logger.info(`----------------------------------------------------------------`);
22
+ Logger.log(`Source directory: "${src_directory}"`);
23
+ Logger.log(`Destination directory: "${dst_directory}"`);
24
+ Logger.log(``);
25
+ async function main()
26
+ {
27
+ if (platform == "npm")
28
+ {
29
+ let builder = new NPMBuilder(src_directory, dst_directory);
30
+ await builder.run();
31
+ }
32
+ else
33
+ {
34
+ Logger.error("Error - invalid platform value: " + platform)
35
+ process.exit(1);
36
+ }
37
+ Logger.log(`Destination directory: "${dst_directory}"`);
38
+ Logger.success(`Pakcage was successfully generated.`);
39
+ }
40
+ main();