d5-api-initializer 0.0.2-alpha.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,105 @@
1
+ declare namespace jsWapi {
2
+
3
+ type JSWapiInvoker = {
4
+ setFilters(filters: any): JSWapiInvoker;
5
+ setParams(params: any): JSWapiInvoker;
6
+ setRowsPerPage(number: number): JSWapiInvoker;
7
+ setPage(number: number): JSWapiInvoker;
8
+ setPagesPredict(number: number): JSWapiInvoker;
9
+ setColumns(columns: string[]): JSWapiInvoker;
10
+ addColumns(columns: string[]): JSWapiInvoker;
11
+ setSorts(sorts: string[]): JSWapiInvoker;
12
+ addSorts(sorts: string[]): JSWapiInvoker;
13
+ setAggregatedColumns(columns: any): JSWapiInvoker;
14
+ putAggregatedColumns(columns: any): JSWapiInvoker;
15
+ setNestedColumns(columns: any): JSWapiInvoker;
16
+ putNestedColumns(columns: any): JSWapiInvoker;
17
+ setHierarchy(parentColumn: string, requestKind?: number): JSWapiInvoker;
18
+ setSrcRequest(srcRequest: any): JSWapiInvoker;
19
+ setFirstRows(number: number): JSWapiInvoker;
20
+ setOperRightCheck(check: boolean): JSWapiInvoker;
21
+ putRequest(objectName: string, req: any): JSWapiInvoker;
22
+ setRequest(req: any): JSWapiInvoker;
23
+ getRequest(objectName?: string): Record<string, any>[]
24
+ getSrcRequest(): Record<string, any>[]
25
+ getFirstRows(): number
26
+ invoke(): JSWapiResponse
27
+ }
28
+
29
+ type JSWapiRequest = {
30
+ getColumns():string[];
31
+ getSorts():string[];
32
+ getAggregatedColumns():any
33
+ getNestedColumns():any;
34
+ getFilters():any;
35
+ getParams():any;
36
+ getUserId():number;
37
+ getPage():number;
38
+ getFirstRows():number;
39
+ getRowsPerPage():number;
40
+ getLanguage():string;
41
+ getRequest(object: string): Record<string, any>[];
42
+ getFilter(filterName: string): any;
43
+ getFilterEqualOneValue(filterName: string): any;
44
+ getParam(filterName: string): any;
45
+ getExcelFileAsJson(fileRequestId: string): any;
46
+ getFileAsString(fileRequestId: string): any;
47
+ setColumns(columns: string[]): JSWapiRequest;
48
+ setSorts(sorts: string[]): JSWapiRequest;
49
+ setAggregatedColumns(columns: any): JSWapiRequest;
50
+ setNestedColumns(columns: any): JSWapiRequest;
51
+ setFilters(filters: any): JSWapiRequest;
52
+ setParams(params: any): JSWapiRequest;
53
+ setPage(number: number): JSWapiRequest;
54
+ setRowsPerPage(number: number): JSWapiRequest;
55
+ setFirstRows(number: number): JSWapiRequest;
56
+ setRequest(request: any): JSWapiRequest;
57
+ setHierarchy(parentColumn: string, requestKind?: number): JSWapiRequest;
58
+ };
59
+
60
+ type JSWapiResponse = {};
61
+ type BinaryDataStream = unknown;
62
+
63
+ interface JSWapiHttpResponse {
64
+ getStatusCode(): number;
65
+ getBody(): string;
66
+ getBodyAsInputStream(): BinaryDataStream;
67
+ getHeader(name: string): string;
68
+ isSuccessful(): boolean;
69
+ }
70
+ type IHttpCallback = (resp: JSWapiHttpResponse) => any;
71
+
72
+ interface JSWapiHttp {
73
+ setHeader(key: string, value: string): JSWapiHttp;
74
+ setTimeout(milliseconds: number): JSWapiHttp;
75
+ GET(cb: IHttpCallback): any;
76
+ POST(body: string,cb: IHttpCallback): any;
77
+ PUT(body: string,cb: IHttpCallback): any;
78
+ PATCH(body: string,cb: IHttpCallback): any;
79
+ }
80
+
81
+ type JSWapiMeta<Params = {}> = {
82
+ parameters?: Params,
83
+ externalObject?: string,
84
+ objectName: string;
85
+ externalFieldsMap?: Record<string, string>
86
+ }
87
+
88
+ interface JSWapiObject {
89
+ getName(): string;
90
+ newJSWapiHttp(url: string): JSWapiHttp;
91
+ putJSWapiOper(operation: string, callback: (request: JSWapiRequest, response: JSWapiResponse) => void): void
92
+ }
93
+ function putJSWapiObject(objectName: string, init: (object: JSWapiObject) => void): void;
94
+
95
+
96
+ interface JSWapiEngine {
97
+ getExternalName(): string;
98
+ getExternalObjectFields(): Record<string, string> //<ExternalName, Name>;
99
+ getExternalSystemParameters(): Record<string, any> //<Parameter, Value>;
100
+ getName(): string;
101
+ newJSWapiHttp(url: string): JSWapiHttp;
102
+ putJSWapiOper(operation: string, callback: (jsWapiRequest: JSWapiRequest, jsWapiResponse: JSWapiResponse) => void): void
103
+ }
104
+ function setJSWapiEngine(init: (object: JSWapiEngine) => void): void;
105
+ }
@@ -0,0 +1,44 @@
1
+ const path = require('path');
2
+
3
+ //development
4
+ // const mode = process.env.NODE_ENV || 'production';
5
+ const mode = process.env.NODE_ENV || 'development';
6
+
7
+ module.exports = {
8
+ target: 'node',
9
+ entry: {
10
+ api: {
11
+ import: './src/index.ts',
12
+ library: {
13
+ name: 'ApiObjectInitializer',
14
+ type: 'var',
15
+ export: 'default',
16
+ },
17
+ },
18
+ engine: {
19
+ import: './src/engine-index.ts',
20
+ library: {
21
+ name: 'EngineInitializer',
22
+ type: 'var',
23
+ export: 'default',
24
+ },
25
+ }
26
+ },
27
+ mode,
28
+ devtool: false,
29
+ module: {
30
+ rules: [
31
+ {
32
+ test: /\.ts?$/,
33
+ use: 'ts-loader',
34
+ exclude: /node_modules/
35
+ },
36
+ ],
37
+ },
38
+ resolve: {
39
+ extensions: ['.ts', '.js'],
40
+ },
41
+ output: {
42
+ path: path.resolve(__dirname, 'dist')
43
+ }
44
+ };
package/zip-build.js ADDED
@@ -0,0 +1,50 @@
1
+ require('dotenv').config();
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+ const archiver = require('archiver');
5
+
6
+ /**
7
+ * @typedef {Object} FileObject
8
+ * @property {string} source папка, которую нужно запаковать в архив
9
+ * @property {string} dest как назвать ее в архиве
10
+ */
11
+
12
+ /**
13
+ * Утилита для архивации
14
+ * @param {FileObject[]} files конфиг файлов, пример: [{source: 'js', dest: 'scripts'}, {source: 'css', dest: 'styles'}]
15
+ * @param {string} path путь к архиву, в который запакуются ресурсы
16
+ * @returns {Promise}
17
+ */
18
+ async function zipDirectories(files, path) {
19
+ const archive = archiver('zip', {zlib: {level: 9}});
20
+ const stream = fs.createWriteStream(path);
21
+
22
+ return new Promise((resolve, reject) => {
23
+ stream.on('close', function () {
24
+ resolve();
25
+ });
26
+
27
+ files.forEach(({source, dest, put_at_root}) => {
28
+ archive
29
+ .directory(source, put_at_root ? false : dest)
30
+ .on('error', error => reject(error));
31
+ });
32
+
33
+ archive.pipe(stream);
34
+ archive.finalize();
35
+ });
36
+ }
37
+
38
+ const archivePath = path.resolve(__dirname, 'build/initializer.zip');
39
+
40
+ fs.mkdirSync('build', {recursive: true});
41
+
42
+
43
+ zipDirectories([{
44
+ 'source': path.resolve(__dirname, 'dist'),
45
+ 'put_at_root': true
46
+ }], archivePath);
47
+
48
+ module.exports = {
49
+ zipDirectories,
50
+ }