mirror of
https://github.com/valitydev/control-center.git
synced 2024-11-06 02:25:17 +00:00
FRONTEND-484: New thrift gen config (#254)
This commit is contained in:
parent
d5b90f6c1d
commit
fd7dc44b32
2
.gitignore
vendored
2
.gitignore
vendored
@ -39,7 +39,9 @@ testem.log
|
||||
Thumbs.db
|
||||
|
||||
/src/assets/meta-*.json
|
||||
/src/assets/api-meta/
|
||||
/src/app/thrift-services/**/gen-*/
|
||||
/src/app/api/**/gen-*/
|
||||
|
||||
# Sonar
|
||||
.scannerwork
|
||||
|
1
Makefile
1
Makefile
@ -44,6 +44,7 @@ init:
|
||||
|
||||
compile:
|
||||
npm run compile-thrift
|
||||
npm run compile-thrift-depricated
|
||||
|
||||
build: check lint compile
|
||||
npm run build
|
||||
|
330
package-lock.json
generated
330
package-lock.json
generated
@ -1298,6 +1298,19 @@
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"convert-source-map": {
|
||||
@ -1500,6 +1513,19 @@
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@babel/template": {
|
||||
@ -1685,6 +1711,17 @@
|
||||
"js-tokens": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
@ -2443,6 +2480,19 @@
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"js-tokens": {
|
||||
@ -2499,6 +2549,19 @@
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
@ -5670,13 +5733,54 @@
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
|
||||
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
|
||||
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"chardet": {
|
||||
@ -5896,6 +6000,17 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
|
||||
"integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -8047,24 +8162,38 @@
|
||||
"dev": true
|
||||
},
|
||||
"eslint-plugin-react": {
|
||||
"version": "7.22.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz",
|
||||
"integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==",
|
||||
"version": "7.23.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.1.tgz",
|
||||
"integrity": "sha512-MvFGhZjI8Z4HusajmSw0ougGrq3Gs4vT/0WgwksZgf5RrLrRa2oYAw56okU4tZJl8+j7IYNuTM+2RnFEuTSdRQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"array-includes": "^3.1.1",
|
||||
"array.prototype.flatmap": "^1.2.3",
|
||||
"array-includes": "^3.1.3",
|
||||
"array.prototype.flatmap": "^1.2.4",
|
||||
"doctrine": "^2.1.0",
|
||||
"has": "^1.0.3",
|
||||
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
|
||||
"object.entries": "^1.1.2",
|
||||
"object.fromentries": "^2.0.2",
|
||||
"object.values": "^1.1.1",
|
||||
"minimatch": "^3.0.4",
|
||||
"object.entries": "^1.1.3",
|
||||
"object.fromentries": "^2.0.4",
|
||||
"object.values": "^1.1.3",
|
||||
"prop-types": "^15.7.2",
|
||||
"resolve": "^1.18.1",
|
||||
"string.prototype.matchall": "^4.0.2"
|
||||
"resolve": "^2.0.0-next.3",
|
||||
"string.prototype.matchall": "^4.0.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"array-includes": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz",
|
||||
"integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3",
|
||||
"es-abstract": "^1.18.0-next.2",
|
||||
"get-intrinsic": "^1.1.1",
|
||||
"is-string": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"doctrine": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
|
||||
@ -8074,15 +8203,122 @@
|
||||
"esutils": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"es-abstract": {
|
||||
"version": "1.18.0",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz",
|
||||
"integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"function-bind": "^1.1.1",
|
||||
"get-intrinsic": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.2",
|
||||
"is-callable": "^1.2.3",
|
||||
"is-negative-zero": "^2.0.1",
|
||||
"is-regex": "^1.1.2",
|
||||
"is-string": "^1.0.5",
|
||||
"object-inspect": "^1.9.0",
|
||||
"object-keys": "^1.1.1",
|
||||
"object.assign": "^4.1.2",
|
||||
"string.prototype.trimend": "^1.0.4",
|
||||
"string.prototype.trimstart": "^1.0.4",
|
||||
"unbox-primitive": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"get-intrinsic": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
|
||||
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"has-symbols": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
|
||||
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
|
||||
"dev": true
|
||||
},
|
||||
"is-callable": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
|
||||
"integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
|
||||
"integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"has-symbols": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"object-inspect": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
|
||||
"integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==",
|
||||
"dev": true
|
||||
},
|
||||
"object.assign": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
|
||||
"integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.0",
|
||||
"define-properties": "^1.1.3",
|
||||
"has-symbols": "^1.0.1",
|
||||
"object-keys": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"object.values": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz",
|
||||
"integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3",
|
||||
"es-abstract": "^1.18.0-next.2",
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.20.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
|
||||
"integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
|
||||
"version": "2.0.0-next.3",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
|
||||
"integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-core-module": "^2.2.0",
|
||||
"path-parse": "^1.0.6"
|
||||
}
|
||||
},
|
||||
"string.prototype.trimend": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
|
||||
"integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3"
|
||||
}
|
||||
},
|
||||
"string.prototype.trimstart": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
|
||||
"integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -16707,6 +16943,19 @@
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"split-string": {
|
||||
@ -17384,6 +17633,19 @@
|
||||
"stable": "^0.1.8",
|
||||
"unquote": "~1.1.1",
|
||||
"util.promisify": "~1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"symbol-observable": {
|
||||
@ -18472,15 +18734,23 @@
|
||||
}
|
||||
},
|
||||
"unbox-primitive": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz",
|
||||
"integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==",
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
|
||||
"integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"function-bind": "^1.1.1",
|
||||
"has-bigints": "^1.0.0",
|
||||
"has-symbols": "^1.0.0",
|
||||
"which-boxed-primitive": "^1.0.1"
|
||||
"has-bigints": "^1.0.1",
|
||||
"has-symbols": "^1.0.2",
|
||||
"which-boxed-primitive": "^1.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"has-symbols": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
|
||||
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"unc-path-regex": {
|
||||
@ -19292,6 +19562,16 @@
|
||||
"yargs": "^12.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"find-up": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
||||
|
@ -12,6 +12,7 @@
|
||||
"prettier:fix": "npm run prettier-preset -- --write",
|
||||
"fix": "npm run lint:fix; npm run prettier:fix",
|
||||
"e2e": "ng e2e",
|
||||
"compile-thrift-depricated": "ts-node --project tools/tsconfig.json tools/compile-thrift-depricated",
|
||||
"compile-thrift": "ts-node --project tools/tsconfig.json tools/compile-thrift",
|
||||
"postinstall": "ngcc"
|
||||
},
|
||||
@ -83,6 +84,7 @@
|
||||
"@types/uuid": "~3.4.3",
|
||||
"@typescript-eslint/eslint-plugin": "4.3.0",
|
||||
"@typescript-eslint/parser": "4.3.0",
|
||||
"chalk": "^4.1.0",
|
||||
"codelyzer": "^6.0.0",
|
||||
"del": "^5.1.0",
|
||||
"eslint": "^7.6.0",
|
||||
|
0
src/app/api/.gitkeep
Normal file
0
src/app/api/.gitkeep
Normal file
@ -8,5 +8,31 @@
|
||||
"ank": "./node_modules/ank-proto/proto",
|
||||
"skipper": { "path": "./node_modules/skipper-proto/proto", "meta": true },
|
||||
"deanonimus": { "path": "./node_modules/deanonimus-proto/proto", "meta": true }
|
||||
},
|
||||
"config": [
|
||||
{
|
||||
"namespace": "fistful",
|
||||
"baseUrl": "./node_modules/fistful-proto/proto",
|
||||
"services": [
|
||||
{
|
||||
"outputFolder": "wallet",
|
||||
"definitionFile": "wallet.thrift"
|
||||
},
|
||||
{
|
||||
"outputFolder": "deposit",
|
||||
"definitionFile": "deposit.thrift"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"namespace": "damsel",
|
||||
"baseUrl": "./node_modules/damsel/proto",
|
||||
"services": [
|
||||
{
|
||||
"outputFolder": "domain-config",
|
||||
"definitionFile": "domain_config.thrift"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
103
tools/compile-thrift-depricated.ts
Normal file
103
tools/compile-thrift-depricated.ts
Normal file
@ -0,0 +1,103 @@
|
||||
import { exec } from 'child_process';
|
||||
import * as del from 'del';
|
||||
import { glob } from 'glob';
|
||||
import * as path from 'path';
|
||||
|
||||
import * as config from '../thrift-config.json';
|
||||
|
||||
const ROOT_DIR = path.join(__dirname, '..');
|
||||
const THRIFT_PATH = 'woody_js/dist/thrift';
|
||||
|
||||
const OUTPUT_PATH = './src/app/thrift-services';
|
||||
const GEN_MODEL_DIR = 'gen-model';
|
||||
const GEN_CLIENT_DIR = 'gen-nodejs';
|
||||
const META_PATH = 'src/assets';
|
||||
|
||||
async function execWithLog(cmd: string) {
|
||||
console.log(`> ${cmd}`);
|
||||
return await new Promise<string>((res, rej) =>
|
||||
exec(
|
||||
cmd,
|
||||
{
|
||||
cwd: ROOT_DIR,
|
||||
},
|
||||
(error, stdout, stderr) => {
|
||||
if (error === null) {
|
||||
console.log(stderr);
|
||||
res(stdout);
|
||||
} else {
|
||||
console.error(error);
|
||||
console.error(stderr);
|
||||
rej(error);
|
||||
}
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
async function genClient(name: string, thriftPath: string) {
|
||||
const out = path.join(OUTPUT_PATH, name);
|
||||
await del([path.join(OUTPUT_PATH, GEN_CLIENT_DIR)]);
|
||||
return await execWithLog(
|
||||
`thrift -r -gen js:node,runtime_package=${THRIFT_PATH} -o ${out} ${thriftPath};`
|
||||
);
|
||||
}
|
||||
|
||||
async function genModel(name: string, protoPath: string) {
|
||||
const out = path.join(OUTPUT_PATH, name, GEN_MODEL_DIR);
|
||||
await del([path.join(OUTPUT_PATH, GEN_MODEL_DIR)]);
|
||||
return await execWithLog(`thrift-ts ${protoPath} -o ${out} -d false`);
|
||||
}
|
||||
|
||||
async function genMeta(name: string, protoPath: string) {
|
||||
const out = path.join(META_PATH, `meta-${name}.json`);
|
||||
await del([out]);
|
||||
return await execWithLog(`thrift-ts ${protoPath} -o ${out} --json --pack --prettify`);
|
||||
}
|
||||
|
||||
async function compileProto(protoName: string, proto: string | { path: string; meta: boolean }) {
|
||||
let protoPath: string;
|
||||
let withMeta = false;
|
||||
if (typeof proto === 'object') {
|
||||
protoPath = proto.path;
|
||||
withMeta = proto.meta;
|
||||
} else {
|
||||
protoPath = proto;
|
||||
}
|
||||
|
||||
const globPattern = path.join(`${protoPath}/**/*.thrift`);
|
||||
const thriftFiles = await new Promise<string[]>((res, rej) =>
|
||||
glob(globPattern, {}, (err, files) => {
|
||||
if (err) {
|
||||
rej(err);
|
||||
}
|
||||
res(files);
|
||||
})
|
||||
);
|
||||
|
||||
console.log(`Compile ${protoName}: ${protoPath}`);
|
||||
const genList: Promise<any>[] = [];
|
||||
genList.push(genModel(protoName, protoPath));
|
||||
if (withMeta) {
|
||||
genList.push(genMeta(protoName, protoPath));
|
||||
}
|
||||
for (const f of thriftFiles) {
|
||||
genList.push(genClient(protoName, f));
|
||||
}
|
||||
await Promise.all(genList);
|
||||
}
|
||||
|
||||
async function compileProtos() {
|
||||
try {
|
||||
await Promise.all(
|
||||
Object.entries(config.proto).map(([protoName, proto]) => compileProto(protoName, proto))
|
||||
);
|
||||
console.log('Generated');
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
console.error('Not generated');
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
compileProtos();
|
@ -1,103 +1,160 @@
|
||||
import { exec } from 'child_process';
|
||||
import * as del from 'del';
|
||||
import { glob } from 'glob';
|
||||
import * as path from 'path';
|
||||
import * as fs from 'fs';
|
||||
import * as chalk from 'chalk';
|
||||
import * as del from 'del';
|
||||
|
||||
import * as config from '../thrift-config.json';
|
||||
import * as configDefinition from '../thrift-config.json';
|
||||
|
||||
const ROOT_DIR = path.join(__dirname, '..');
|
||||
const THRIFT_PATH = 'woody_js/dist/thrift';
|
||||
const log = console.log;
|
||||
const error = console.error;
|
||||
|
||||
const OUTPUT_PATH = './src/app/thrift-services';
|
||||
const GEN_MODEL_DIR = 'gen-model';
|
||||
const GEN_CLIENT_DIR = 'gen-nodejs';
|
||||
const META_PATH = 'src/assets';
|
||||
interface ServiceDefinition {
|
||||
definitionFile: string;
|
||||
outputFolder: string;
|
||||
}
|
||||
|
||||
async function execWithLog(cmd: string) {
|
||||
console.log(`> ${cmd}`);
|
||||
interface NamespaceDefinition {
|
||||
namespace: string;
|
||||
baseUrl: string;
|
||||
services: ServiceDefinition[];
|
||||
}
|
||||
|
||||
interface PathsConfig {
|
||||
outputNamespacePath: string;
|
||||
model: {
|
||||
definitionsFolder: string;
|
||||
outputFolder: string;
|
||||
};
|
||||
services: {
|
||||
definitionFile: string;
|
||||
outputFolder: string;
|
||||
}[];
|
||||
meta: {
|
||||
definitionsFolder: string;
|
||||
outputFile: string;
|
||||
};
|
||||
}
|
||||
|
||||
async function execute(cmd: string, cwd = path.join(__dirname, '..')) {
|
||||
return await new Promise<string>((res, rej) =>
|
||||
exec(
|
||||
cmd,
|
||||
{
|
||||
cwd: ROOT_DIR,
|
||||
cwd,
|
||||
},
|
||||
(error, stdout, stderr) => {
|
||||
if (error === null) {
|
||||
console.log(stderr);
|
||||
res(stdout);
|
||||
} else {
|
||||
console.error(error);
|
||||
console.error(stderr);
|
||||
rej(error);
|
||||
rej(stderr);
|
||||
}
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
async function genClient(name: string, thriftPath: string) {
|
||||
const out = path.join(OUTPUT_PATH, name);
|
||||
await del([path.join(OUTPUT_PATH, GEN_CLIENT_DIR)]);
|
||||
return await execWithLog(
|
||||
`thrift -r -gen js:node,runtime_package=${THRIFT_PATH} -o ${out} ${thriftPath};`
|
||||
);
|
||||
function mkdirIfNotExist(path: string) {
|
||||
if (!fs.existsSync(path)) {
|
||||
fs.mkdirSync(path);
|
||||
}
|
||||
}
|
||||
|
||||
async function genModel(name: string, protoPath: string) {
|
||||
const out = path.join(OUTPUT_PATH, name, GEN_MODEL_DIR);
|
||||
await del([path.join(OUTPUT_PATH, GEN_MODEL_DIR)]);
|
||||
return await execWithLog(`thrift-ts ${protoPath} -o ${out} -d false`);
|
||||
}
|
||||
|
||||
async function genMeta(name: string, protoPath: string) {
|
||||
const out = path.join(META_PATH, `meta-${name}.json`);
|
||||
await del([out]);
|
||||
return await execWithLog(`thrift-ts ${protoPath} -o ${out} --json --pack --prettify`);
|
||||
}
|
||||
|
||||
async function compileProto(protoName: string, proto: string | { path: string; meta: boolean }) {
|
||||
let protoPath: string;
|
||||
let withMeta = false;
|
||||
if (typeof proto === 'object') {
|
||||
protoPath = proto.path;
|
||||
withMeta = proto.meta;
|
||||
} else {
|
||||
protoPath = proto;
|
||||
}
|
||||
|
||||
const globPattern = path.join(`${protoPath}/**/*.thrift`);
|
||||
const thriftFiles = await new Promise<string[]>((res, rej) =>
|
||||
glob(globPattern, {}, (err, files) => {
|
||||
if (err) {
|
||||
rej(err);
|
||||
}
|
||||
res(files);
|
||||
})
|
||||
);
|
||||
|
||||
console.log(`Compile ${protoName}: ${protoPath}`);
|
||||
const genList: Promise<any>[] = [];
|
||||
genList.push(genModel(protoName, protoPath));
|
||||
if (withMeta) {
|
||||
genList.push(genMeta(protoName, protoPath));
|
||||
}
|
||||
for (const f of thriftFiles) {
|
||||
genList.push(genClient(protoName, f));
|
||||
}
|
||||
await Promise.all(genList);
|
||||
}
|
||||
|
||||
async function compileProtos() {
|
||||
async function compileTsDefinitions(definitionsPath: string, outputPath: string) {
|
||||
try {
|
||||
await Promise.all(
|
||||
Object.entries(config.proto).map(([protoName, proto]) => compileProto(protoName, proto))
|
||||
);
|
||||
console.log('Generated');
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
console.error('Not generated');
|
||||
throw e;
|
||||
log('Compiling typescript definition');
|
||||
await execute(`thrift-ts ${definitionsPath} -o ${outputPath} -d false`);
|
||||
} catch (err) {
|
||||
log(`Typescript definition ${chalk.red('compilation failed')}`);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
compileProtos();
|
||||
async function compileJsonMetadata(definitionsPath: string, outputFilePath: string) {
|
||||
try {
|
||||
log('Compiling JSON metadata');
|
||||
await execute(`thrift-ts ${definitionsPath} -o ${outputFilePath} --json --pack --prettify`);
|
||||
} catch (err) {
|
||||
log(`JSON metadata ${chalk.red('compilation failed')}`);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
async function compileService(definitionFilePath: string, outputPath: string) {
|
||||
try {
|
||||
log(`Compiling service: ${definitionFilePath}`);
|
||||
await execute(
|
||||
`thrift -r -gen js:node,runtime_package=woody_js/dist/thrift -o ${outputPath} ${definitionFilePath};`
|
||||
);
|
||||
} catch (err) {
|
||||
log(`Service: ${definitionFilePath} ${chalk.red('compilation failed')}`);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
function toPathConfig(
|
||||
{ baseUrl, namespace, services }: NamespaceDefinition,
|
||||
baseOutputPath = 'src/app/api',
|
||||
outputModelDirName = 'gen-model',
|
||||
baseOutputMetaPath = 'src/assets/api-meta'
|
||||
): PathsConfig {
|
||||
const outputNamespacePath = path.join(baseOutputPath, namespace);
|
||||
return {
|
||||
outputNamespacePath,
|
||||
model: {
|
||||
definitionsFolder: baseUrl,
|
||||
outputFolder: path.join(outputNamespacePath, outputModelDirName),
|
||||
},
|
||||
services: services.map(({ definitionFile, outputFolder }) => ({
|
||||
definitionFile: path.join(baseUrl, definitionFile),
|
||||
outputFolder: path.join(outputNamespacePath, outputFolder),
|
||||
})),
|
||||
meta: {
|
||||
definitionsFolder: baseUrl,
|
||||
outputFile: path.join(baseOutputMetaPath, `${namespace}.json`),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
async function clear({ model, meta, services }: PathsConfig) {
|
||||
await del([model.outputFolder, ...services.map((s) => s.outputFolder), meta.outputFile]);
|
||||
}
|
||||
|
||||
function prepareOutputDirs({ services, outputNamespacePath }: PathsConfig) {
|
||||
mkdirIfNotExist(outputNamespacePath);
|
||||
for (const service of services) {
|
||||
mkdirIfNotExist(service.outputFolder);
|
||||
}
|
||||
}
|
||||
|
||||
async function compileNamespace(namespaceDefinition: NamespaceDefinition) {
|
||||
log(
|
||||
chalk.cyan(
|
||||
`Namespace ${chalk.bold.cyan(namespaceDefinition.namespace)} compilation started`
|
||||
)
|
||||
);
|
||||
const pathsConfig = toPathConfig(namespaceDefinition);
|
||||
await clear(pathsConfig);
|
||||
prepareOutputDirs(pathsConfig);
|
||||
await compileTsDefinitions(pathsConfig.model.definitionsFolder, pathsConfig.model.outputFolder);
|
||||
for (const config of pathsConfig.services) {
|
||||
await compileService(config.definitionFile, config.outputFolder);
|
||||
}
|
||||
await compileJsonMetadata(pathsConfig.meta.definitionsFolder, pathsConfig.meta.outputFile);
|
||||
}
|
||||
|
||||
async function compile(definitions: NamespaceDefinition[]) {
|
||||
try {
|
||||
log(chalk.bold.magenta('Thrift services compilation started'));
|
||||
for (const def of definitions) {
|
||||
await compileNamespace(def);
|
||||
}
|
||||
log(chalk.bold.green('Thrift services compilation finished'));
|
||||
} catch (e) {
|
||||
error(e);
|
||||
error(chalk.bold.red('Thrift services compilation failed'));
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
compile(configDefinition.config);
|
||||
|
Loading…
Reference in New Issue
Block a user