@nathapp/na-cli 1.0.0-rc.15 → 1.0.0-rc.17
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/.npm/_cacache/content-v2/sha512/16/1a/51cdff76ecc35075164fd09e432c87535e18cb6337944e62c0bbaf669d592c2c7f42258dc8b9278481b294922ec64199b45aa0e41b3cb18eed846460f6c0 +0 -0
- package/.npm/_cacache/content-v2/sha512/c2/9c/59b3d368c596891122462194f20c4698a65d0529203e141f5a262c9e98a84cc24c5083ade1e13d4a2605061e94ea3c33517269982ee82b46326506d5af44 +0 -0
- package/.npm/_cacache/content-v2/sha512/ec/63/ba1e08640397d81bd4d89cdc62d78ffb2bd7f9a1c70c969df35c0b92c67ec2282c6df716cd586ef217c85309251c8657d649edee2e694f7e281ebd122dcd +0 -0
- package/.npm/_cacache/content-v2/sha512/f3/ef/56a9e6db173a57f4e47e59ae8edbd6ac22881e44ccdc1ad00835da4c1c7c80835d1fd3969215505b704a867ff3d7c35123019faadbf6c4060dc3beeacadd +0 -0
- package/.npm/_cacache/index-v5/05/34/1929926becc54c1f69c0921ab74c461c1777ab3d43213900acd4779dbf27 +1 -1
- package/.npm/_cacache/index-v5/0b/57/19385728919a097d1777ef98285f6cdfca14b66511276b641ec4a3af64bc +1 -1
- package/.npm/_cacache/index-v5/0b/90/c147816be94e86ed9bbb4b9e20409e4791a8991fcfd41d7a44489dedd29b +1 -1
- package/.npm/_cacache/index-v5/0b/ac/1bc19a224468b5a9e4382b946d33bb4c236306c2cefe190e5e2db1ded98a +1 -1
- package/.npm/_cacache/index-v5/12/6d/f094b1c476935fbda8814b43ee001b439b1f793c265ee5bd97d566143fb4 +1 -1
- package/.npm/_cacache/index-v5/12/80/c192e66daf6ba49f528ae81b986857735e6d257bdf4b0b1758eb795cae9b +1 -1
- package/.npm/_cacache/index-v5/13/32/a5865acd35ae515cde972c2d6cbff2863e694975883870de78b62a80f30e +1 -1
- package/.npm/_cacache/index-v5/14/33/be443b6e6c3ef0ff8f09987bc62d5ef9e61259f3331c422182f6bb74fdeb +1 -1
- package/.npm/_cacache/index-v5/14/f7/87042931e5944467d47331c350feb4384bf9143ab6ceebf7108a55905843 +1 -1
- package/.npm/_cacache/index-v5/14/fa/f87baceab26935686548c742091e7014930673bc1f077574c54c4c6c2d2d +1 -1
- package/.npm/_cacache/index-v5/15/26/abf1072208668be6e34a4311ad25f34fc908c21abc17ef01b5836cef1879 +1 -1
- package/.npm/_cacache/index-v5/1a/fd/532a4c7bf52c908d567ded2bb11b0f3282f0733d0d079a5291c2f72e0077 +1 -1
- package/.npm/_cacache/index-v5/1b/15/2ed036cc76081b7f1bfb3aa59d491eb3b3602c9381ec8d81435ceecf56b5 +1 -1
- package/.npm/_cacache/index-v5/27/b7/7f36d855e73b72c900bef7ba44a2a553de3d77b218493b4ddb6ae6fce516 +1 -1
- package/.npm/_cacache/index-v5/27/cc/afd4aa090b087c509f17e75196209f498c916da50ee4e9f26bd8424fd6f7 +1 -1
- package/.npm/_cacache/index-v5/2d/80/b5e9ca2e40744e7fa089861626d2a29c62363c01729964f4cf0c3e8ee632 +1 -1
- package/.npm/_cacache/index-v5/2d/ed/7f785cb92982f557fdc81aec4081952ce428eb449dd91fa0867b6676fa17 +1 -1
- package/.npm/_cacache/index-v5/2e/30/64338ba8469bd5c48ab7843f9d06a83992a346cfd592194af9c6d4d6dc48 +1 -1
- package/.npm/_cacache/index-v5/2e/a8/503d5f11e5dcde5786e3973ff160d2acc4736af22f9cd5a883c26adc7824 +1 -1
- package/.npm/_cacache/index-v5/30/98/41b0d8db0052e964e4843260ec8a0b12f2541721317cd5ee90b07b6a4d59 +1 -1
- package/.npm/_cacache/index-v5/31/64/15cefe5f3b923ebb9c684b37db7451ccf335632aab377fa3c730ec2e79cd +1 -1
- package/.npm/_cacache/index-v5/31/ac/4d241faeb3fea9ec8318fd93dd55eb70a87cc8a6e3f849ccef9863882b4b +3 -3
- package/.npm/_cacache/index-v5/31/ca/a8c3ab0670811a3887ede187dcd3856d14272349a18f6844f7c8007cc05e +1 -1
- package/.npm/_cacache/index-v5/34/a0/f70f68dcf9baef2ff21f29fdd206513fe5b10736be36ddd2f65a654a8f23 +1 -1
- package/.npm/_cacache/index-v5/34/f7/8879c3cd1412a0890461590276aa13d0344cb4e09494a4b3d854a7c7660a +1 -1
- package/.npm/_cacache/index-v5/35/e5/adb97753b463aa67dc9f26f39e8a52f68bf467cf1187509be7da174c057d +1 -1
- package/.npm/_cacache/index-v5/37/53/b5dccfb634beb6de718b268b6434849f27d3cf60d426dc19472a642a3f01 +1 -1
- package/.npm/_cacache/index-v5/38/2e/fe53691fa43d2f5ac447c8a2431535ec49118be55bf483c6362d4f72c79b +1 -1
- package/.npm/_cacache/index-v5/3c/f6/26a7f7dccb969c764b8bdecb3667023c64bc1159e674fbeeca633c54964c +1 -1
- package/.npm/_cacache/index-v5/3d/dd/3e8c6b6c875addf2057fb5fa152fff0fab217f78a8e51c0aa457a925bf12 +1 -1
- package/.npm/_cacache/index-v5/3e/77/916dd3c99bb6e83a0217305b0a2a541f122d977edcb92fa6b58eed796c17 +1 -1
- package/.npm/_cacache/index-v5/40/62/d04e75208dec117f72a95a5989f81fac7565a530fd22f70ea5e3abc377c3 +2 -2
- package/.npm/_cacache/index-v5/42/89/e110619623b1c9111a6392de4b1a62a904fb08d0601f87b9c8e1d493f5d6 +1 -1
- package/.npm/_cacache/index-v5/46/5b/f3ce50d3f54a5d65ac316d3c71ef8a8f8bdb072b6dfabc2c69018c3e942a +1 -1
- package/.npm/_cacache/index-v5/48/17/0ecf04bc0839b23c609ec7bfea9d339fa2cc3ee5982716cf7465ffaea675 +1 -1
- package/.npm/_cacache/index-v5/53/aa/b41f4759346e1d3b6651322d78c7983a4a546cdd6c18c3eb56c944571e4b +1 -1
- package/.npm/_cacache/index-v5/57/4d/cdafdfd03e43ca95652cbbb0b23bbbbeef3e16fa307726cb2ae8a5658531 +1 -1
- package/.npm/_cacache/index-v5/58/c9/9f8c27572bf3034e8fa9cc74fc00878e45fa7d75d4570d4430e82bfb5ef3 +1 -1
- package/.npm/_cacache/index-v5/5a/8c/47e273da29b52c911f59eca44c62faa84be4bb59b1de259ba100ff968559 +1 -1
- package/.npm/_cacache/index-v5/5e/89/be4afbbaa5c56c070a74790be14bd112b9e1b3f251324d766264b2c5f880 +1 -1
- package/.npm/_cacache/index-v5/5e/e7/453bd89145eccf9d67f5797fb09e5a017b5b13f1ac45cb7b70bda45940ec +2 -2
- package/.npm/_cacache/index-v5/5f/57/67c3b0c63ea4198903509c050bb99de2eabd6a2fba583067c4f587dc25f7 +1 -1
- package/.npm/_cacache/index-v5/60/8c/b74a2ae1c6978d635a1a21438c553d956a762176742b2749d09db964bf4d +1 -1
- package/.npm/_cacache/index-v5/68/6b/1f834b2ea43c7a9d1ffd80eb09f9d44af0895dc31dc3955d4b4c797ea825 +1 -1
- package/.npm/_cacache/index-v5/6d/61/c9e7e8446341cea439547eb023fbf47c954ba932e6944a3fd50413c1e861 +1 -1
- package/.npm/_cacache/index-v5/6d/b3/82949bd186224f1f51cb3fabdad6a93aa6a64c685b395a36f0a34af15119 +1 -1
- package/.npm/_cacache/index-v5/6f/d8/170c71ac7185da1b8040f10243c7294ff9a667a27fffc3479ba2f222f014 +1 -1
- package/.npm/_cacache/index-v5/74/d3/f9a4984e5548c5f72b3dc858046781cc3a892b34b6b7e7c353fbc93aa060 +1 -1
- package/.npm/_cacache/index-v5/75/ec/5dd4c902abf3f9ae589620cd4fd5b6ccfe045b8abdfbfa050d1a5ba8c01e +1 -1
- package/.npm/_cacache/index-v5/77/be/4d3f23909fd5905444d34cb0ce78d5bf6ce157670ae6ed614389a2027d18 +1 -1
- package/.npm/_cacache/index-v5/7d/8f/423d7e791f7fedd6bef784f0f467761c619f209ce9c788f08b63e968a880 +1 -1
- package/.npm/_cacache/index-v5/80/da/c34ca077ec2051cad25b3313e4e75ff4ad2dc2b12a9c250cb9545c0adc4b +1 -1
- package/.npm/_cacache/index-v5/84/d7/a5acf52705a1beb66603196f4bc44e583052d0f1d5a23dfb5316da1811d3 +1 -1
- package/.npm/_cacache/index-v5/86/7a/c59a43ec4985d34346e5714968f7220d176ea3a61b55464a7fecae01ac47 +1 -1
- package/.npm/_cacache/index-v5/87/55/e56d34b37c3170079064597cabb288d076b0d0468eaba3b8a0cf8686ce1f +1 -1
- package/.npm/_cacache/index-v5/8a/c9/c10bf71d66461aba0899e81d7a146332c45dbbacb1693c38fc2e4e578e39 +3 -3
- package/.npm/_cacache/index-v5/8a/ee/e3e86b627c10a9fc4ed610c15792507293ba1c14e7ba839e22aec609f1e0 +1 -1
- package/.npm/_cacache/index-v5/8b/ee/c2ea22c4bf9c5ddcd0333850e543442de3364478847c7ebc382b1ff3a70d +2 -2
- package/.npm/_cacache/index-v5/8c/2d/fc95c0f3896963b4fe4b745b6d2bbc04a2a75f31f108ff740215559617f0 +1 -1
- package/.npm/_cacache/index-v5/8e/95/715914a073e3319f22dfec7ffac9df9f293d150c0d6723a60ce08ab7f735 +1 -1
- package/.npm/_cacache/index-v5/91/73/ad583fa49e5575064791f28a81fa97fa62a4c7483b74960a58010efa1e77 +2 -0
- package/.npm/_cacache/index-v5/92/a4/7b5bd924b74993fc2b0de1a458842881545ca2cc22f6bc104a0db4fafdab +1 -1
- package/.npm/_cacache/index-v5/96/3a/a15f6c4dc3aeb3fd89c0b7a8c3ba58cb31a9b72c98e3b11a8ef1647b537f +1 -1
- package/.npm/_cacache/index-v5/96/b2/def9b882b950a49a7096d71afd5fce3a6a9454795fc060b1901e41d44620 +1 -1
- package/.npm/_cacache/index-v5/98/64/01faddae5e2bf199c5f8953942897841c5634b1800e246226ea5489f4584 +1 -1
- package/.npm/_cacache/index-v5/99/a9/8e746181ef13bc400da207da412881206f4d2004d75453373f6ee7b25ffa +1 -1
- package/.npm/_cacache/index-v5/9a/fc/baddd71f459a50b3c710a007fa7d59fa62febef98033b7331374bf02db64 +1 -1
- package/.npm/_cacache/index-v5/9b/55/1bc87872916d09156d5c7056d7ac2b245e7a7638b817eb3dbeafa9d33be8 +1 -1
- package/.npm/_cacache/index-v5/9b/b8/d45062af43674e433f967d20768d308ed6ce195be6acadfb7cfd21d11e67 +1 -1
- package/.npm/_cacache/index-v5/9c/0e/3faaf557a9613fb7f09b5cecc63ebe78da10371a1f2f58b636f8dcb9a914 +1 -1
- package/.npm/_cacache/index-v5/9c/b1/fff150691ce095677426e98bb894621ce4a88097d4b2c5c342224e1852ae +1 -1
- package/.npm/_cacache/index-v5/9d/6b/339b9832e323abb280eb874ec64f59486423026430be7b1c2ec42ca7e1b7 +2 -0
- package/.npm/_cacache/index-v5/9d/eb/0927bbd589e18b447a3726f591019d6728da728f603e77a1ded3f78dc6eb +1 -1
- package/.npm/_cacache/index-v5/9f/43/3636172cbc03abf2262c921f9f71572e6b049aa3db8c65d166bcfe5aca5f +1 -1
- package/.npm/_cacache/index-v5/a0/9e/5b7b95cdee86846e4fbe92c9e16e0e7f337c77d2c12de9778522b15bed2e +1 -1
- package/.npm/_cacache/index-v5/a1/ff/6532bc014331c9b572482a4bd805bf54a7ff8b4ca179b1c811aff3dec690 +1 -1
- package/.npm/_cacache/index-v5/a7/11/13f3c5864a7e9d12ca50a19b99d77d88fbcebb1ceb7455eb7ff77f158b64 +1 -1
- package/.npm/_cacache/index-v5/aa/9b/8b6d9e0f45dde1c6af2a4fc211f9b3a74f14041dc04a8a20490a478660b2 +1 -1
- package/.npm/_cacache/index-v5/aa/c4/489c0e6a9e4cbd64a8acd4fbfda113e9dfdd114f464830471fda53fff0cd +1 -1
- package/.npm/_cacache/index-v5/ab/47/d7a88d46cb8996b726bc7ed9280b5eea26889ab7c848149032a6e8911e4b +1 -1
- package/.npm/_cacache/index-v5/ac/4c/71e880f5d5c742e0e3807e7f3c398e920dd019bbf723586f0a7342715580 +1 -1
- package/.npm/_cacache/index-v5/ac/86/c0732592365d753d382502d91754a3c88f8b20e22cc25a0327beb9429687 +1 -1
- package/.npm/_cacache/index-v5/b0/9b/1a1d76c3ad82dd54353bb8ac8397667df4c5db97e42abf0de3fab68065bb +1 -1
- package/.npm/_cacache/index-v5/b3/b3/05a8af0a671c32b41850c1223429fe74449cfcb4c7cac54a9c7c213dfcae +3 -3
- package/.npm/_cacache/index-v5/b3/ba/fbf7da5c8eb06d9cc72143e3d36d7f701447b4e0a221c40d4960e06c7296 +1 -1
- package/.npm/_cacache/index-v5/b5/5f/1a200e91b7580c5893016e1b1397b6a076ff51cc7c5d382c3b1f1e52edd5 +1 -1
- package/.npm/_cacache/index-v5/b6/a8/3bf06da815e92239da2bd4ef7322819b458ee23ae8db9f02dc9a3dca722f +1 -1
- package/.npm/_cacache/index-v5/b7/38/992d3e6c01fc9098d137f7dbccfcaa5f5124ba9c487e582e6e0d83f99d30 +1 -1
- package/.npm/_cacache/index-v5/b7/d6/b5986a5f5d44d726090a94a22a8dff7a7c391df4a4fa4862bb50b1da196b +1 -1
- package/.npm/_cacache/index-v5/ba/d5/f7d95a8e3571758f8b5d095a21909a8f6cdfe7fd2349f7f72b2801eef079 +1 -1
- package/.npm/_cacache/index-v5/bb/8a/9c0052bb21f628e48a1e8d25084ee4adb402eba28c747d0299ebf4c3185d +1 -1
- package/.npm/_cacache/index-v5/be/a3/c0779c8e0be92c748c91a7dad4e6f0fe57ba0158b6bb1bcfddd8fc56c934 +1 -1
- package/.npm/_cacache/index-v5/be/c2/aa68eca6cebd477430ae24727732ec08ee9fc9ef2482df77932eb2f413d9 +1 -1
- package/.npm/_cacache/index-v5/bf/7c/375aec77f76404d91225e72006a0105b2a6ec04bb02cfa365ebcd4a0232b +1 -1
- package/.npm/_cacache/index-v5/c0/15/8b360dbe06b62052f2a43702140af0bca66e2e4064d7d2016efb4a2a149a +1 -1
- package/.npm/_cacache/index-v5/c2/a4/488f71f39bc65742422faf2c74e3b330852ef2192dbb3198fed044e60c20 +1 -1
- package/.npm/_cacache/index-v5/c4/89/38b2ab5b89326ead12dbed7a2076caa44d1207dd6cdb3f9f93273843dcf5 +1 -1
- package/.npm/_cacache/index-v5/c4/ac/4511be3eecea50ee9cadc09a612f9be8598d7b29d5c8b1253c75fa283cc5 +1 -1
- package/.npm/_cacache/index-v5/c5/2d/90031096314e15f4fcc35c804c2180f88214a7851b531aa27bd64064f740 +1 -1
- package/.npm/_cacache/index-v5/c7/5e/2acc90bb8fd9d3150354ec8b2f7e7cc2c8e0e59efd575a1963f1ca66cbed +1 -1
- package/.npm/_cacache/index-v5/c9/f5/c4a24d8834c4e9523cc24e10c6db63876e3eecdb2cf33762b159e3a1e92f +1 -1
- package/.npm/_cacache/index-v5/cc/2d/3cc1e00b73d00c921b8f8c92faaae480a160fc63637ba7b098518db79e02 +1 -1
- package/.npm/_cacache/index-v5/cf/56/427919eefb09afe942b12902069325293191afa7d59ff0f2b016c402b4ec +1 -1
- package/.npm/_cacache/index-v5/d1/86/f4ec8df7e9b3ceb2ae6c610f3231b693689e2ce78bd03413adef8d029a63 +2 -0
- package/.npm/_cacache/index-v5/d3/ba/564670f99cd2d757d1ac6209834faf1ce9a94ed856243cf090249d9b2b38 +1 -1
- package/.npm/_cacache/index-v5/d5/f4/0913a74f5e223a4fe6108493dd3b03c2d47259df459926160659513c9ad3 +1 -1
- package/.npm/_cacache/index-v5/dd/03/456ce7d8bffee20c3acf7e18ef6501b637d59a6fa3fa7bac5ed160b6be3f +1 -1
- package/.npm/_cacache/index-v5/e3/6a/b90e45414a9e52cdf1e4a96698065357795b9400d7af079b0a75ee8fd76d +1 -1
- package/.npm/_cacache/index-v5/e7/16/c0952e37a6a02b506441a59ee6b0e7fa873a515247763df9dddd162bbcf0 +1 -1
- package/.npm/_cacache/index-v5/e8/50/601e38974398787a5a8a8b8d835e29447814cd68ff6fe2e9629738e124c6 +1 -1
- package/.npm/_cacache/index-v5/ee/47/02714e9e61ca394444a92772fe85340de8bd216b58f59e1af25d5618303f +1 -1
- package/.npm/_cacache/index-v5/ef/23/134a34866512795c8a5025d0b968f2e44b5be8ab3a05b400c089c32a272e +2 -0
- package/.npm/_cacache/index-v5/ef/74/026f830458505ca7ae44dac678900360af24ed6e76521eb12df5fadcf26f +1 -1
- package/.npm/_cacache/index-v5/f1/75/91238e32e2ac4d9c4976deec39a2e6ca85c0c678a4466a50ca4412272a7c +1 -1
- package/.npm/_cacache/index-v5/f2/1f/c662626ec8eafafa54476678b9f71799a74ee368f2b7845a6ec9f9174a4d +3 -3
- package/.npm/_cacache/index-v5/f5/a4/ca599571c5bcfc5351ca53c418a6cd9d162539528b1ed87a692a1677020e +1 -1
- package/.npm/_cacache/index-v5/f6/18/16e565c66306149a0b31bb2af01babb55bd65ef7cb85a8a11d486d933b60 +1 -1
- package/.npm/_cacache/index-v5/f8/f5/f04b833fa130e113a9093088ad108d8cf9b2b1d5a0336e48cbf0916b8686 +1 -1
- package/.npm/_cacache/index-v5/fa/88/31cbd6ca584e75edf3642c6f8b079c1f2b5eca1d7b2780ce2e86c24f1e84 +1 -1
- package/.npm/_cacache/index-v5/fb/ae/46c38299837b3b4dcee9dc45854a6901355864326b4e64c730727ca1c88a +1 -1
- package/.npm/_cacache/index-v5/fc/1c/958fc085ebdc42fa37d4985cba976a5cca21f678c751c968f8fe9b259455 +1 -1
- package/.npm/_cacache/index-v5/fd/2e/6ead8880f4d02a536a570e21b13b4e7c9700082833e556cd53e9e92bfd1b +1 -1
- package/.npm/_cacache/index-v5/fd/46/fa56121e15b7f090f8050d0c954bbc9452e4c7ddde82777b2e00552c4220 +1 -1
- package/dist/index.js +50 -2
- package/dist/index.js.map +1 -1
- package/dist/templates/db-schema/001_Schema.sql +1 -0
- package/dist/templates/db-schema/910_DB_Grant_User.sql +0 -0
- package/dist/templates/db-schema/910_DB_Grant_User.sql.example +9 -0
- package/dist/templates/db-schema/990_SAMPLE_Init_Data.sql.example +27 -0
- package/dist/templates/db-schema/DEV_MODE.txt +1 -0
- package/dist/templates/db-schema/Dockerfile +3 -0
- package/dist/templates/db-schema/GET_VERSION.sql +47 -0
- package/dist/templates/db-schema/Makefile +885 -0
- package/dist/templates/db-schema/README.md +106 -0
- package/dist/templates/db-schema/SET_VERSION.sql +5 -0
- package/dist/templates/db-schema/docker-compose.yaml +47 -0
- package/dist/templates/db-schema/package.json +3 -0
- package/dist/templates/db-schema/push.sh +0 -0
- package/dist/utils/env.js +146 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/template.js +33 -5
- package/dist/utils/template.js.map +1 -1
- package/package.json +4 -1
- package/src/index.ts +63 -15
- package/src/utils/env.ts +79 -0
- package/src/utils/template.ts +23 -5
- package/templates/db-schema/001_Schema.sql +1 -0
- package/templates/db-schema/910_DB_Grant_User.sql +0 -0
- package/templates/db-schema/910_DB_Grant_User.sql.example +9 -0
- package/templates/db-schema/990_SAMPLE_Init_Data.sql.example +27 -0
- package/templates/db-schema/DEV_MODE.txt +1 -0
- package/templates/db-schema/Dockerfile +3 -0
- package/templates/db-schema/GET_VERSION.sql +47 -0
- package/templates/db-schema/Makefile +885 -0
- package/templates/db-schema/README.md +106 -0
- package/templates/db-schema/SET_VERSION.sql +5 -0
- package/templates/db-schema/docker-compose.yaml +47 -0
- package/templates/db-schema/package.json +3 -0
- package/templates/db-schema/push.sh +0 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# DB Schema Report
|
|
2
|
+
|
|
3
|
+
DB Schema For Development Environment
|
|
4
|
+
|
|
5
|
+
Project Code: X43
|
|
6
|
+
|
|
7
|
+
## File Naming Convention (Project Code: X43)
|
|
8
|
+
001 - Schema level
|
|
9
|
+
|
|
10
|
+
1XX - Table (auto generate from DEV_7XX)
|
|
11
|
+
|
|
12
|
+
3XX - Init data (auto generate from DEV_890)
|
|
13
|
+
|
|
14
|
+
5XX - Stored procedure (auto generate from DEV_8XX, except DEEV_890)
|
|
15
|
+
|
|
16
|
+
6XX - Migration
|
|
17
|
+
|
|
18
|
+
DEV_7XX - Version patch**
|
|
19
|
+
|
|
20
|
+
DEV_8XX - Release patch**
|
|
21
|
+
|
|
22
|
+
DEV_890 - Release patch init data**
|
|
23
|
+
|
|
24
|
+
DEV_899 - Release patch grant user account access**
|
|
25
|
+
|
|
26
|
+
910 - Grant user account access (auto generate from DEV_899)
|
|
27
|
+
|
|
28
|
+
990 - Generate init data for file 3XX
|
|
29
|
+
|
|
30
|
+
##### ** Maintain by developer
|
|
31
|
+
##### ** Note: During version release, The 7XX, 8XX files will be created and clear after version released.
|
|
32
|
+
##### ** If there is any new changes, developer should copy from the 3XX, 5XX, 910 files and rename it to DEV_8XX_*.sql
|
|
33
|
+
* File 3XX_*.sql --> DEV_890_*.sql
|
|
34
|
+
* File 5XX_*.sql --> DEV_8XX_*.sql
|
|
35
|
+
* File 910_*.sql --> DEV_899_*.sql
|
|
36
|
+
|
|
37
|
+
## Release Version
|
|
38
|
+
1. Create a release branch.
|
|
39
|
+
2. Remove the DEV_MODE.txt to enable release mode.
|
|
40
|
+
3. Developer will move the release content to new 7XX or 8XX files.
|
|
41
|
+
4. Once the content has been confirmed, run `make test` to ensure no syntax error.
|
|
42
|
+
5. Commit and create merge request to `master` branch.
|
|
43
|
+
6. On the `master` branch, run `make release` to generate the 1XX, 3XX, 5XX, and 910 files. It will generate init data for 300 files by 990 file execution.
|
|
44
|
+
7. Commit with commit message that contain `run-major-release`, `run-minor-release`, `run-patch-release`, or `run-release`. The `run-release` is an alias to `run-patch-release`.
|
|
45
|
+
|
|
46
|
+
## Create Version Tag
|
|
47
|
+
Write commit message that contain `run-tag`, a pre-release version tag will be created.
|
|
48
|
+
|
|
49
|
+
## View Full Script
|
|
50
|
+
`make view-init`
|
|
51
|
+
|
|
52
|
+
## View Patch Script
|
|
53
|
+
`make view-patch FROM=<version> TO=<version>`
|
|
54
|
+
|
|
55
|
+
## View Patch Script File
|
|
56
|
+
`make view-patch-file FROM=<version> TO=<version>`
|
|
57
|
+
|
|
58
|
+
## Lint & Test Locally
|
|
59
|
+
`make test`
|
|
60
|
+
|
|
61
|
+
##### ** In a development branch, the `DEV_MODE.txt` file should be created in order for the test process to use `DEV_7XX_*.sql` and `DEV_8XX_*.sql` files.
|
|
62
|
+
|
|
63
|
+
##### ** Prerequisite: `docker`, `docker-compose` & `jq` must be installed
|
|
64
|
+
|
|
65
|
+
## View All Version
|
|
66
|
+
`make versions`
|
|
67
|
+
|
|
68
|
+
## Generate release tables, stored procedures, init data, and grant permission files
|
|
69
|
+
`make release`
|
|
70
|
+
|
|
71
|
+
## Check duplicated stored procedure in 8XX file
|
|
72
|
+
`make dup`
|
|
73
|
+
|
|
74
|
+
## MYSQL console
|
|
75
|
+
`make cli`
|
|
76
|
+
|
|
77
|
+
## Initialization Process
|
|
78
|
+
Only range of files start with prefix (`001, 1XX, 3XX, 5XX, 6XX, 910`) will be include for the initialization process.
|
|
79
|
+
|
|
80
|
+
## Patch Process
|
|
81
|
+
Only range of files start with prefix (`7XX`, `8XX`) will be include for the patch process.
|
|
82
|
+
The `7XX` is a `version patch` file, it should reflect the changes from previous version. Basically for Table changes only. Please note, 7XX & 8XX files (except 890 & ) will be auto-deleted once version has been released.
|
|
83
|
+
The `8XX` is a `release patch` file, it should reflect the changes of current release. Basically for SP changes
|
|
84
|
+
The `890` is a init data file
|
|
85
|
+
The `899` is for grant database user permission command
|
|
86
|
+
|
|
87
|
+
## Developer work's
|
|
88
|
+
Tips: Easily lookup for your changes at any specific time range
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
SELECT db,name, created,modified,definer
|
|
92
|
+
FROM mysql.proc
|
|
93
|
+
WHERE db like 'sig_%'
|
|
94
|
+
AND definer = 'ali@%'
|
|
95
|
+
order by modified desc;
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## RollBack Script
|
|
99
|
+
Developer need to prepare a RB script for each new or going to modify database object if automation deployment failed we are still able to restore to current state.
|
|
100
|
+
Developer need to set prefix for all the rollback file with prefix (`8xx_RB`) and (`7xx_RB`)
|
|
101
|
+
|
|
102
|
+
## Init Data Script
|
|
103
|
+
Init data script have to define with prefix (`890` or `990`)
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
devbot chat: 13
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
version: '2.1'
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
mysql:
|
|
5
|
+
logging:
|
|
6
|
+
driver: none
|
|
7
|
+
image: registry-intl.cn-hongkong.aliyuncs.com/wkns/mysql:5.7.31
|
|
8
|
+
expose:
|
|
9
|
+
- 3306
|
|
10
|
+
environment:
|
|
11
|
+
MYSQL_ALLOW_EMPTY_PASSWORD: "1"
|
|
12
|
+
|
|
13
|
+
mysql8:
|
|
14
|
+
logging:
|
|
15
|
+
driver: none
|
|
16
|
+
image: registry-intl.cn-hongkong.aliyuncs.com/wkns/mysql:8
|
|
17
|
+
command: --default-authentication-plugin=mysql_native_password --log_bin_trust_function_creators=1
|
|
18
|
+
expose:
|
|
19
|
+
- 3306
|
|
20
|
+
environment:
|
|
21
|
+
MYSQL_ALLOW_EMPTY_PASSWORD: "1"
|
|
22
|
+
|
|
23
|
+
init:
|
|
24
|
+
build:
|
|
25
|
+
context: .
|
|
26
|
+
image: test-init
|
|
27
|
+
command: make test-init
|
|
28
|
+
|
|
29
|
+
patch:
|
|
30
|
+
build:
|
|
31
|
+
context: .
|
|
32
|
+
image: test-patch
|
|
33
|
+
command: make test-patch
|
|
34
|
+
|
|
35
|
+
sync:
|
|
36
|
+
build:
|
|
37
|
+
context: .
|
|
38
|
+
image: sync
|
|
39
|
+
command: make run-sync
|
|
40
|
+
|
|
41
|
+
release:
|
|
42
|
+
build:
|
|
43
|
+
context: .
|
|
44
|
+
image: release
|
|
45
|
+
command: make run-release
|
|
46
|
+
volumes:
|
|
47
|
+
- ./:/out
|
|
File without changes
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.writeYamlToDotEnv = exports.writeDotEnvToYaml = void 0;
|
|
51
|
+
var fs = require("fs");
|
|
52
|
+
var dotenv = require("dotenv");
|
|
53
|
+
var yaml = require("js-yaml");
|
|
54
|
+
var path = require("path");
|
|
55
|
+
var writeDotEnvToYaml = function (inputPath, outputPath) { return __awaiter(void 0, void 0, void 0, function () {
|
|
56
|
+
var originalEnv, inputFullPath, env, envEntries, configEnv, yamlStr;
|
|
57
|
+
return __generator(this, function (_a) {
|
|
58
|
+
switch (_a.label) {
|
|
59
|
+
case 0:
|
|
60
|
+
originalEnv = __assign({}, process.env);
|
|
61
|
+
inputFullPath = path.resolve(inputPath);
|
|
62
|
+
return [4 /*yield*/, validateFile(inputFullPath)
|
|
63
|
+
// load environment variables from the .env file passed as argument
|
|
64
|
+
];
|
|
65
|
+
case 1:
|
|
66
|
+
_a.sent();
|
|
67
|
+
// load environment variables from the .env file passed as argument
|
|
68
|
+
dotenv.config({ path: inputFullPath });
|
|
69
|
+
env = process.env;
|
|
70
|
+
envEntries = Object.entries(env)
|
|
71
|
+
.filter(function (_a) {
|
|
72
|
+
var key = _a[0];
|
|
73
|
+
return originalEnv[key] !== env[key];
|
|
74
|
+
})
|
|
75
|
+
.reduce(function (acc, _a) {
|
|
76
|
+
var key = _a[0], value = _a[1];
|
|
77
|
+
acc[key] = value;
|
|
78
|
+
return acc;
|
|
79
|
+
}, {});
|
|
80
|
+
configEnv = {
|
|
81
|
+
env: __assign({}, envEntries)
|
|
82
|
+
};
|
|
83
|
+
yamlStr = yaml.dump(configEnv);
|
|
84
|
+
// write the yaml to a .yaml file
|
|
85
|
+
fs.writeFileSync(path.resolve(outputPath), yamlStr);
|
|
86
|
+
return [2 /*return*/];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}); };
|
|
90
|
+
exports.writeDotEnvToYaml = writeDotEnvToYaml;
|
|
91
|
+
var writeYamlToDotEnv = function (inputPath, outputPath) { return __awaiter(void 0, void 0, void 0, function () {
|
|
92
|
+
var originalEnv, inputFullPath, yamlStr, config, envEntries, envStr;
|
|
93
|
+
return __generator(this, function (_a) {
|
|
94
|
+
switch (_a.label) {
|
|
95
|
+
case 0:
|
|
96
|
+
originalEnv = __assign({}, process.env);
|
|
97
|
+
inputFullPath = path.resolve(inputPath);
|
|
98
|
+
return [4 /*yield*/, validateFile(inputFullPath)
|
|
99
|
+
// read the yaml file
|
|
100
|
+
];
|
|
101
|
+
case 1:
|
|
102
|
+
_a.sent();
|
|
103
|
+
yamlStr = fs.readFileSync(inputFullPath, 'utf8');
|
|
104
|
+
config = yaml.load(yamlStr);
|
|
105
|
+
;
|
|
106
|
+
envEntries = Object.entries(config.env)
|
|
107
|
+
.filter(function (_a) {
|
|
108
|
+
var key = _a[0];
|
|
109
|
+
return originalEnv[key] !== config.env[key];
|
|
110
|
+
})
|
|
111
|
+
.map(function (_a) {
|
|
112
|
+
var key = _a[0], value = _a[1];
|
|
113
|
+
return "".concat(key, "=").concat(value);
|
|
114
|
+
});
|
|
115
|
+
envStr = envEntries.join('\n');
|
|
116
|
+
fs.writeFileSync(path.resolve(outputPath), envStr);
|
|
117
|
+
return [2 /*return*/];
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}); };
|
|
121
|
+
exports.writeYamlToDotEnv = writeYamlToDotEnv;
|
|
122
|
+
var validateFile = function (filePath) { return __awaiter(void 0, void 0, void 0, function () {
|
|
123
|
+
var err_1;
|
|
124
|
+
return __generator(this, function (_a) {
|
|
125
|
+
switch (_a.label) {
|
|
126
|
+
case 0:
|
|
127
|
+
_a.trys.push([0, 2, , 3]);
|
|
128
|
+
return [4 /*yield*/, fs.promises.stat(filePath)];
|
|
129
|
+
case 1:
|
|
130
|
+
_a.sent();
|
|
131
|
+
return [3 /*break*/, 3];
|
|
132
|
+
case 2:
|
|
133
|
+
err_1 = _a.sent();
|
|
134
|
+
if (err_1.code === 'ENOENT') {
|
|
135
|
+
console.error("File ".concat(filePath, " not found"));
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
throw err_1;
|
|
140
|
+
}
|
|
141
|
+
return [3 /*break*/, 3];
|
|
142
|
+
case 3: return [2 /*return*/];
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}); };
|
|
146
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/template.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -84,6 +95,19 @@ function generateTemplate(templateDir, targetDirectory) {
|
|
|
84
95
|
name: "run_install",
|
|
85
96
|
type: "confirm",
|
|
86
97
|
message: "Do you want to run npm install after template created?",
|
|
98
|
+
when: function (answer) {
|
|
99
|
+
var projectChoice = answer["template"];
|
|
100
|
+
return projectChoice !== "db-schema" || projectChoice !== "k8s-deployment";
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: "db_master",
|
|
105
|
+
type: "input",
|
|
106
|
+
message: "what is the master database name?",
|
|
107
|
+
when: function (answer) {
|
|
108
|
+
var projectChoice = answer["template"];
|
|
109
|
+
return projectChoice == "db-schema";
|
|
110
|
+
}
|
|
87
111
|
},
|
|
88
112
|
];
|
|
89
113
|
console.log("Welcome to ".concat(name, " version ").concat(version));
|
|
@@ -97,10 +121,14 @@ function generateTemplate(templateDir, targetDirectory) {
|
|
|
97
121
|
// @ts-ignore
|
|
98
122
|
var author = answers['author'];
|
|
99
123
|
// @ts-ignore
|
|
100
|
-
var runInstall = answers['run_install'];
|
|
124
|
+
var runInstall = answers['run_install'] || false;
|
|
125
|
+
var masterDbName = answers['db_master'] || "master";
|
|
101
126
|
var templatePath = path.join(templateDir, projectChoice);
|
|
102
127
|
var targetPath = path.join(targetDirectory, projectName);
|
|
103
128
|
var templateConfig = getTemplateConfig(templatePath);
|
|
129
|
+
var params = {
|
|
130
|
+
masterDbName: masterDbName,
|
|
131
|
+
};
|
|
104
132
|
var options = {
|
|
105
133
|
projectName: projectName,
|
|
106
134
|
templateName: projectChoice,
|
|
@@ -111,7 +139,7 @@ function generateTemplate(templateDir, targetDirectory) {
|
|
|
111
139
|
if (!createProject(targetPath)) {
|
|
112
140
|
return;
|
|
113
141
|
}
|
|
114
|
-
createDirectoryContents(targetDirectory, templatePath, projectName, templateConfig, author);
|
|
142
|
+
createDirectoryContents(targetDirectory, templatePath, projectName, templateConfig, author, params);
|
|
115
143
|
if (runInstall && !postProcess(options)) {
|
|
116
144
|
return;
|
|
117
145
|
}
|
|
@@ -182,7 +210,7 @@ function postProcessNode(options) {
|
|
|
182
210
|
return true;
|
|
183
211
|
}
|
|
184
212
|
var SKIP_FILES = ['node_modules', '.template.json'];
|
|
185
|
-
function createDirectoryContents(targetDirectory, projectTemplatePath, projectName, config, author) {
|
|
213
|
+
function createDirectoryContents(targetDirectory, projectTemplatePath, projectName, config, author, params) {
|
|
186
214
|
var filesToCreate = fs.readdirSync(projectTemplatePath);
|
|
187
215
|
filesToCreate.forEach(function (file) {
|
|
188
216
|
var origFilePath = path.join(projectTemplatePath, file);
|
|
@@ -194,14 +222,14 @@ function createDirectoryContents(targetDirectory, projectTemplatePath, projectNa
|
|
|
194
222
|
var contents = fs.readFileSync(origFilePath, 'utf8');
|
|
195
223
|
if (file === '.npmignore-rename')
|
|
196
224
|
file = '.npmignore';
|
|
197
|
-
contents = render(contents, { projectName: projectName, author: author });
|
|
225
|
+
contents = render(contents, __assign(__assign({}, params), { projectName: projectName, author: author }));
|
|
198
226
|
var writePath = path.join(targetDirectory, projectName, file);
|
|
199
227
|
fs.writeFileSync(writePath, contents, 'utf8');
|
|
200
228
|
}
|
|
201
229
|
else if (stats.isDirectory()) {
|
|
202
230
|
fs.mkdirSync(path.join(targetDirectory, projectName, file));
|
|
203
231
|
// recursive call
|
|
204
|
-
createDirectoryContents(targetDirectory, path.join(projectTemplatePath, file), path.join(projectName, file), config, author);
|
|
232
|
+
createDirectoryContents(targetDirectory, path.join(projectTemplatePath, file), path.join(projectName, file), config, author, params);
|
|
205
233
|
}
|
|
206
234
|
});
|
|
207
235
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nathapp/na-cli",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.17",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "npm run build && node dist/index.js",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@types/ejs": "^3.1.1",
|
|
16
16
|
"@types/inquirer": "^0.0.43",
|
|
17
|
+
"@types/js-yaml": "^4.0.5",
|
|
17
18
|
"@types/node": "^18.11.18",
|
|
18
19
|
"@types/shelljs": "^0.8.5",
|
|
19
20
|
"@types/yargs": "^17.0.19",
|
|
@@ -22,8 +23,10 @@
|
|
|
22
23
|
"typescript": "^4.3.5"
|
|
23
24
|
},
|
|
24
25
|
"dependencies": {
|
|
26
|
+
"dotenv": "^16.0.3",
|
|
25
27
|
"ejs": "^3.1.8",
|
|
26
28
|
"inquirer": "^6.2.0",
|
|
29
|
+
"js-yaml": "^4.1.0",
|
|
27
30
|
"shelljs": "^0.8.5",
|
|
28
31
|
"yargs": "^17.6.2"
|
|
29
32
|
}
|
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as path from 'path';
|
|
4
4
|
import { generateTemplate } from './utils/template';
|
|
5
|
+
import { writeDotEnvToYaml, writeYamlToDotEnv } from './utils/env';
|
|
5
6
|
import * as yargs from 'yargs';
|
|
6
7
|
const { version } = require("../package.json");
|
|
7
8
|
|
|
@@ -12,20 +13,67 @@ async function runGenerateTemplate() {
|
|
|
12
13
|
return generateTemplate(TEMPLATE_PATH, CURR_DIR)
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
yargs.version(version).
|
|
16
|
-
command
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
command
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
16
|
+
yargs.version(version).help().alias("help", "h").showHelpOnFail(true)
|
|
17
|
+
.command({
|
|
18
|
+
command: 'generate',
|
|
19
|
+
describe: 'generate project template',
|
|
20
|
+
builder: (yargs) => yargs.options({}),
|
|
21
|
+
handler: (argv: {}) => {
|
|
22
|
+
return runGenerateTemplate()
|
|
23
|
+
}
|
|
24
|
+
}).command({
|
|
25
|
+
command: 'gen',
|
|
26
|
+
describe: 'generate project template, "generate" command alias',
|
|
27
|
+
builder: (yargs) => yargs.options({}),
|
|
28
|
+
handler: (argv: {}) => {
|
|
29
|
+
return runGenerateTemplate()
|
|
30
|
+
}
|
|
31
|
+
}).command({
|
|
32
|
+
command: 'env-yml',
|
|
33
|
+
describe: 'convert dotenv to yaml',
|
|
34
|
+
builder: (yargs) => yargs.options({
|
|
35
|
+
input: {
|
|
36
|
+
alias: 'i',
|
|
37
|
+
demand: false,
|
|
38
|
+
describe: "dotenv input, eg: .env, dev.env",
|
|
39
|
+
type: 'string',
|
|
40
|
+
default: '.env'
|
|
41
|
+
},
|
|
42
|
+
output: {
|
|
43
|
+
alias: ['o', 'out'],
|
|
44
|
+
demand: false,
|
|
45
|
+
describe: "yaml output, eg: .env.yaml, config.yaml",
|
|
46
|
+
type: 'string',
|
|
47
|
+
default: 'config.yaml'
|
|
48
|
+
}
|
|
49
|
+
}),
|
|
50
|
+
handler: (argv: any) => {
|
|
51
|
+
console.log(`converting .env to yaml`);
|
|
52
|
+
return writeDotEnvToYaml(argv.input, argv.output);
|
|
53
|
+
}
|
|
54
|
+
}).command({
|
|
55
|
+
command: 'yml-env',
|
|
56
|
+
describe: 'convert yaml to dotenv',
|
|
57
|
+
builder: (yargs) => yargs.options({
|
|
58
|
+
input: {
|
|
59
|
+
alias: 'i',
|
|
60
|
+
demand: false,
|
|
61
|
+
describe: "yaml input, eg: .env.yaml, config.yaml",
|
|
62
|
+
type: 'string',
|
|
63
|
+
default: 'config.yaml'
|
|
64
|
+
},
|
|
65
|
+
output: {
|
|
66
|
+
alias: ['o', 'out'],
|
|
67
|
+
demand: false,
|
|
68
|
+
describe: "dotenv output, eg: .env, dev.env",
|
|
69
|
+
type: 'string',
|
|
70
|
+
default: '.env'
|
|
71
|
+
}
|
|
72
|
+
}),
|
|
73
|
+
handler: (argv: any) => {
|
|
74
|
+
console.log(`converting yaml to .env`);
|
|
75
|
+
return writeYamlToDotEnv(argv.input, argv.output);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
30
78
|
|
|
31
79
|
yargs.parse();
|
package/src/utils/env.ts
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as dotenv from 'dotenv';
|
|
3
|
+
import * as yaml from 'js-yaml';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
|
|
6
|
+
export const writeDotEnvToYaml = async (inputPath: string, outputPath: string) => {
|
|
7
|
+
|
|
8
|
+
// take a snapshot of the environment variables before loading the .env file
|
|
9
|
+
const originalEnv = { ...process.env };
|
|
10
|
+
|
|
11
|
+
const inputFullPath = path.resolve(inputPath)
|
|
12
|
+
|
|
13
|
+
await validateFile(inputFullPath)
|
|
14
|
+
|
|
15
|
+
// load environment variables from the .env file passed as argument
|
|
16
|
+
dotenv.config({ path: inputFullPath });
|
|
17
|
+
|
|
18
|
+
// create an object with the environment variables
|
|
19
|
+
const env = process.env;
|
|
20
|
+
|
|
21
|
+
// filter out the system environment variables
|
|
22
|
+
const envEntries = Object.entries(env)
|
|
23
|
+
.filter(([key]) => originalEnv[key] !== env[key])
|
|
24
|
+
.reduce((acc, [key, value]) => {
|
|
25
|
+
acc[key] = value;
|
|
26
|
+
return acc;
|
|
27
|
+
}, {});
|
|
28
|
+
|
|
29
|
+
const configEnv = {
|
|
30
|
+
env: {
|
|
31
|
+
...envEntries
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// convert the object to yaml
|
|
36
|
+
const yamlStr = yaml.dump(configEnv);
|
|
37
|
+
|
|
38
|
+
// write the yaml to a .yaml file
|
|
39
|
+
fs.writeFileSync(path.resolve(outputPath), yamlStr);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
export const writeYamlToDotEnv = async (inputPath: string, outputPath: string) => {
|
|
44
|
+
// take a snapshot of the environment variables before loading the yaml file
|
|
45
|
+
const originalEnv = { ...process.env };
|
|
46
|
+
|
|
47
|
+
const inputFullPath = path.resolve(inputPath)
|
|
48
|
+
|
|
49
|
+
await validateFile(inputFullPath)
|
|
50
|
+
|
|
51
|
+
// read the yaml file
|
|
52
|
+
const yamlStr = fs.readFileSync(inputFullPath, 'utf8');
|
|
53
|
+
|
|
54
|
+
// parse the yaml string into an object
|
|
55
|
+
const config = yaml.load(yamlStr) as { [key: string]: string };;
|
|
56
|
+
|
|
57
|
+
// filter out the system environment variables
|
|
58
|
+
const envEntries = Object.entries(config.env)
|
|
59
|
+
.filter(([key]) => originalEnv[key] !== config.env[key])
|
|
60
|
+
.map(([key, value]) => `${key}=${value}`);
|
|
61
|
+
|
|
62
|
+
const envStr = envEntries.join('\n');
|
|
63
|
+
|
|
64
|
+
fs.writeFileSync(path.resolve(outputPath), envStr);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
const validateFile = async (filePath: string) => {
|
|
69
|
+
try {
|
|
70
|
+
await fs.promises.stat(filePath);
|
|
71
|
+
} catch (err) {
|
|
72
|
+
if (err.code === 'ENOENT') {
|
|
73
|
+
console.error(`File ${filePath} not found`);
|
|
74
|
+
process.exit(1);
|
|
75
|
+
} else {
|
|
76
|
+
throw err;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|