Compare commits

..

293 Commits

Author SHA1 Message Date
jkunz c872ff8d73 v10.0.2 2026-05-09 12:38:55 +00:00
jkunz 46c10902a8 fix(package): remove private flag to allow package publishing 2026-05-09 12:38:55 +00:00
jkunz f8459c4de6 v10.0.1 2026-05-09 12:33:38 +00:00
jkunz b31ea2ab4f fix(docs): refresh package documentation and align metadata with current project layout 2026-05-09 12:33:38 +00:00
jkunz 5f87fd3eae v10.0.0 2026-03-24 18:58:12 +00:00
jkunz b04961e6a2 BREAKING CHANGE(package): migrate package to the @git.zone scope and ESM-based tooling 2026-03-24 18:58:12 +00:00
philkunz 7999e00965 9.0.2 2020-06-03 11:16:21 +00:00
philkunz 10883d08a8 fix(core): update 2020-06-03 11:16:21 +00:00
philkunz 4fedb088dd 9.0.1 2020-06-03 11:14:20 +00:00
philkunz 3f07127159 fix(core): update 2020-06-03 11:14:20 +00:00
philkunz a57c3f03a8 1.0.2 2020-06-03 11:13:51 +00:00
philkunz 15bdab9ba6 fix(core): update 2020-06-03 11:13:50 +00:00
philkunz 668fd0998f 8.0.38 2018-05-04 11:51:15 +02:00
philkunz e0611f3f64 8.0.37 2018-05-04 00:27:35 +02:00
philkunz 928f3212a3 update dependencies 2018-05-04 00:27:31 +02:00
philkunz 7c7e45ad54 8.0.36 2018-05-03 18:05:42 +02:00
philkunz 797d9e2bcd add codequality step 2018-05-03 18:05:37 +02:00
philkunz 578cd2d097 8.0.35 2018-05-03 13:30:05 +02:00
philkunz 5a7dd901f0 update ci 2018-05-03 13:30:01 +02:00
philkunz 2104fc01e6 update build 2018-05-03 13:28:46 +02:00
philkunz 4eacef56d5 8.0.34 2018-05-03 13:05:24 +02:00
philkunz 5722deb7a0 8.0.33 2018-05-03 12:57:29 +02:00
philkunz 50d71dde67 update ci 2018-05-03 12:56:58 +02:00
philkunz 13123e180d 8.0.32 2018-05-03 12:45:24 +02:00
philkunz b13db4184b update snyk security policy 2018-05-03 12:45:22 +02:00
philkunz 19f6097ab9 8.0.31 2018-05-03 12:35:48 +02:00
philkunz 34066d8a13 switch to seperate build/test commands to inrpove speed 2018-05-03 12:35:41 +02:00
philkunz df87337f4d 8.0.30 2018-04-09 01:28:46 +02:00
philkunz 105e5c2ff0 fix npmextra.json 2018-04-09 01:26:14 +02:00
philkunz 7115b699ba 8.0.29 2018-04-09 01:19:36 +02:00
philkunz 8c7ac4c1d0 update snyk policy 2018-04-09 01:19:28 +02:00
philkunz fc8154b431 8.0.28 2018-04-09 01:03:49 +02:00
philkunz 896e0095fa change npmts package name to being @gitzone scoped 2018-04-09 01:03:39 +02:00
philkunz 7e46b55de5 8.0.27 2018-02-26 22:51:06 +01:00
philkunz 6553e7432c now runs offline 2018-02-26 22:51:03 +01:00
philkunz cf4db90aef 8.0.26 2017-11-28 17:34:02 +01:00
philkunz 8896d3ef76 refactor 2017-11-28 17:33:55 +01:00
philkunz c0b7dc2547 8.0.25 2017-11-25 20:57:51 +02:00
philkunz d65f19d108 update deps 2017-11-25 20:57:40 +02:00
philkunz 5de4646453 8.0.24 2017-10-07 13:55:12 +02:00
philkunz 44e9fcc977 update dependencies 2017-10-07 13:55:06 +02:00
philkunz 784aec1ec3 8.0.23 2017-10-05 14:58:52 +02:00
philkunz 61b7bbb168 change lib inclusion for tests 2017-10-05 14:58:49 +02:00
philkunz 1d662ddef4 8.0.22 2017-09-23 00:00:27 +02:00
philkunz f7351c914e update dependencies 2017-09-23 00:00:25 +02:00
philkunz 7132ae11a8 fix ci 2017-09-13 17:48:15 +02:00
philkunz b195b8911b switch position of mirror 2017-09-13 17:47:30 +02:00
philkunz e331e870d9 8.0.21 2017-09-13 17:44:34 +02:00
philkunz 3a6bd3b583 now working when npms.io is down 2017-09-13 17:44:31 +02:00
philkunz 594bccfc82 8.0.20 2017-09-11 14:30:36 +02:00
philkunz d9f1d36d14 update dependencies 2017-09-11 14:30:32 +02:00
philkunz f12c4aabd8 8.0.19 2017-09-08 18:04:44 +02:00
philkunz b62f7d8b31 update tracking domains 2017-09-08 18:04:40 +02:00
philkunz 56cccb1b14 8.0.18 2017-09-08 15:13:29 +02:00
philkunz 850df45d7f add mirror stage 2017-09-08 15:13:27 +02:00
philkunz 2b1f371d8a 8.0.17 2017-09-06 15:59:40 +02:00
philkunz 8196ca50a7 update readme 2017-09-06 15:59:27 +02:00
philkunz ad96661dda update structure docs 2017-09-06 15:52:46 +02:00
philkunz 2fc6c3d358 8.0.16 2017-09-05 18:48:16 +02:00
philkunz 0c74fb3343 update docs 2017-09-05 18:48:12 +02:00
philkunz d821a2efa6 update indention 2017-08-31 20:48:30 +02:00
philkunz 66f2321d99 8.0.15 2017-08-29 16:17:52 +02:00
philkunz 816f4f57fb update ci 2017-08-29 16:17:46 +02:00
philkunz 9bdf3ec4c7 8.0.14 2017-08-29 16:15:27 +02:00
philkunz b9d4953bcd update analytics 2017-08-29 16:15:24 +02:00
philkunz 8c0fcdf5b7 8.0.13 2017-08-20 00:48:35 +02:00
philkunz a477cc00e7 update dependencies 2017-08-20 00:48:21 +02:00
philkunz 00b9a742ab 8.0.12 2017-08-19 12:39:29 +02:00
philkunz f5b8ab84cf update dependencies 2017-08-19 12:39:25 +02:00
philkunz 4fc4efc0b9 8.0.11 2017-08-18 13:15:41 +02:00
philkunz 30136f01a8 update dependencies 2017-08-18 13:15:38 +02:00
philkunz d1d85819d7 8.0.10 2017-08-17 12:06:12 +02:00
philkunz e267fce3bb update dependencies 2017-08-17 12:06:08 +02:00
philkunz f964b2737f 8.0.9 2017-08-16 23:53:56 +02:00
philkunz 6ac634e178 improve update logs 2017-08-16 23:53:52 +02:00
philkunz 3105f8f401 8.0.8 2017-08-16 23:46:26 +02:00
philkunz 70b83fcafc fix smartupdate execution 2017-08-16 23:46:20 +02:00
philkunz 7e8e4b1891 8.0.7 2017-08-16 23:33:48 +02:00
philkunz aa8279c281 update dependencies 2017-08-16 23:33:39 +02:00
philkunz 7564e1fd18 8.0.6 2017-08-16 19:13:14 +02:00
philkunz a6fbe7da33 update 2017-08-16 19:13:01 +02:00
philkunz e0f208ba41 8.0.5 2017-08-02 13:20:05 +02:00
philkunz d2cf4346d4 update dependencies 2017-08-02 13:20:01 +02:00
philkunz b769dcae4f 8.0.4 2017-07-31 15:43:36 +02:00
philkunz 7b58535dda update to latest version of smartsystem 2017-07-31 15:43:31 +02:00
philkunz f16103a632 8.0.3 2017-07-31 14:43:56 +02:00
philkunz befed099c5 update highlighting 2017-07-31 14:43:50 +02:00
philkunz 6c0fa380a9 remove old Changelog 2017-07-31 14:39:46 +02:00
philkunz 22de2c784f 8.0.2 2017-07-31 14:36:38 +02:00
philkunz e8fe4f1720 update docs and description 2017-07-31 14:36:33 +02:00
philkunz d7443bbf17 8.0.1 2017-07-30 22:39:55 +02:00
philkunz c4668bc0a6 add docs 2017-07-30 22:39:42 +02:00
philkunz bc489b6bf3 8.0.0 2017-07-30 22:27:59 +02:00
philkunz e2d0a7a939 update to more favorable testfile loading approach 2017-07-30 22:27:51 +02:00
philkunz 0f5e451e60 7.2.10 2017-07-28 17:33:31 +02:00
philkunz 3595bf3590 fix module testimport recognition 2017-07-28 17:33:28 +02:00
philkunz efe73d0fd0 7.2.9 2017-07-28 17:16:17 +02:00
philkunz c52322ec12 add smart replacer 2017-07-28 17:16:14 +02:00
philkunz b7cf9949bf update docs 2017-07-28 01:27:21 +02:00
philkunz beac49d5d2 7.2.8 2017-07-28 01:21:41 +02:00
philkunz 25993bd66f update --nocoverage option 2017-07-28 01:21:37 +02:00
philkunz 83b324054a 7.2.7 2017-07-23 15:15:26 +02:00
philkunz 2c574fe015 update readme 2017-07-23 15:15:19 +02:00
philkunz 3b50365ea9 7.2.6 2017-07-23 15:06:47 +02:00
philkunz e6f487eeee update readme 2017-07-23 15:06:43 +02:00
philkunz 07c100ae44 7.2.5 2017-07-23 15:03:40 +02:00
philkunz 55888cce89 now supports propper tracing of sourcemaps for coverage 2017-07-23 15:03:36 +02:00
philkunz d4c66af0d8 7.2.4 2017-07-20 17:51:44 +02:00
philkunz 9359b5f7e9 update dependencies 2017-07-20 17:51:41 +02:00
philkunz 87c0ec5728 7.2.3 2017-07-19 16:04:14 +02:00
philkunz aeb79f053f update dependencies 2017-07-19 16:04:09 +02:00
philkunz e01ecb9369 7.2.2 2017-07-18 15:13:18 +02:00
philkunz fd29434fa6 update dependencies 2017-07-18 15:13:14 +02:00
philkunz 4684b9616c 7.2.1 2017-07-18 14:54:16 +02:00
philkunz a2701bc3be upgrade dependencies 2017-07-18 14:54:06 +02:00
philkunz 425a86b33c 7.2.0 2017-07-18 14:41:55 +02:00
philkunz 20631eb0a8 support SHELL PATH distributions in tests 2017-07-18 14:41:49 +02:00
philkunz 27287d24fb 7.1.9 2017-06-30 18:55:16 +02:00
philkunz 1b2393c7ed update to latest dependencies 2017-06-30 18:55:14 +02:00
philkunz 330b0527c5 update to latest dependencies 2017-06-30 17:49:08 +02:00
philkunz 4485b5bfc6 7.1.8 2017-06-23 16:40:02 +02:00
philkunz cf6f636d3e Merge branch 'master' of gitlab.com:gitzone/npmts 2017-06-23 16:39:27 +02:00
philkunz 37e726a45f 7.1.7 2017-06-23 16:39:04 +02:00
Phil Kunz 0f0f2dd4ed Fix --nochecks option
See merge request !6
2017-06-21 18:54:29 +00:00
PhilKunz External 9033eede2c Fix --nochecks option 2017-06-21 18:54:28 +00:00
philkunz e65e7da26b 7.1.6 2017-06-17 11:10:55 +02:00
philkunz ef5c5eb2b8 update dependencies 2017-06-17 11:10:53 +02:00
philkunz ed156e6de8 7.1.5 2017-06-17 10:47:10 +02:00
philkunz d889a20572 now allows the setting of a better config for how tests are run 2017-06-17 10:47:07 +02:00
philkunz da1ec0329f 7.1.4 2017-06-16 16:12:45 +02:00
philkunz 95e3f9cb10 add command line options --nochecks and --nocoverage 2017-06-16 16:12:42 +02:00
philkunz def19f76e9 7.1.3 2017-06-16 16:08:41 +02:00
philkunz 455c89d68d add coverage option 2017-06-16 16:08:36 +02:00
Phil Kunz 2bd187b704 Merge branch 'master' into 'master'
introduce a merge option

See merge request !5
2017-06-15 23:42:52 +00:00
PhilKunz External 29dff4c0e3 introduce a merge option 2017-06-15 23:42:48 +00:00
philkunz f236d77952 7.1.2 2017-06-09 16:25:52 +02:00
philkunz c91a8d8e69 add smarterror 2017-06-09 16:25:49 +02:00
philkunz 0d5c49fe60 7.1.1 2017-05-13 10:55:38 +02:00
philkunz 2112b4527d remove some old cleanup code 2017-05-13 10:55:35 +02:00
philkunz bd3873a359 7.1.0 2017-05-13 10:22:06 +02:00
philkunz 6ec0ccac34 add sourcemap support for tests 2017-05-13 10:21:55 +02:00
philkunz 9bff7db97b 7.0.18 2017-05-05 00:23:16 +02:00
philkunz 2305be0daa update docs and include terminal session. 2017-05-05 00:23:04 +02:00
philkunz 9cd24695db 7.0.17 2017-05-05 00:01:24 +02:00
philkunz 46c79e711b now looking for coverage percentage being actually present, fixes #22 2017-05-05 00:01:21 +02:00
philkunz 4b07c9951f update readme 2017-05-04 23:28:28 +02:00
philkunz 559b5553eb 7.0.16 2017-05-01 22:43:35 +02:00
philkunz 87ceed6f8f fix smartgulp 2017-05-01 22:43:32 +02:00
philkunz ee36914a42 7.0.15 2017-05-01 20:35:27 +02:00
philkunz 7dc6cdb250 intermediate fix untel figuring out pathing problems with smartgulp 2017-05-01 20:35:24 +02:00
philkunz 3ea6585992 7.0.14 2017-04-30 18:22:37 +02:00
philkunz 0f0592cdaf replace gulp 2017-04-30 18:22:34 +02:00
philkunz cf438ae431 7.0.13 2017-04-22 13:00:05 +02:00
philkunz 6cbf7cedc8 update dependencies 2017-04-22 13:00:02 +02:00
philkunz 77bba7f865 7.0.12 2017-04-21 19:07:07 +02:00
philkunz 49fc7e4687 update docs 2017-04-21 19:06:22 +02:00
philkunz 7ee0c349e3 7.0.11 2017-04-21 13:35:24 +02:00
philkunz f706376e48 update to latest dependencies 2017-04-21 13:35:21 +02:00
philkunz 8d8cdde15d 7.0.10 2017-04-21 00:38:36 +02:00
philkunz dc98d893b1 update dependencies 2017-04-21 00:38:32 +02:00
philkunz 6070249cd2 7.0.9 2017-04-21 00:17:01 +02:00
philkunz 05ce3e133d update to latest standards 2017-04-21 00:16:57 +02:00
philkunz 5f5a421453 Merge branch 'master' of gitlab.com:gitzone/npmts 2017-04-21 00:16:24 +02:00
philkunz d5d0052ecf 7.0.8 2017-04-17 23:23:54 +02:00
philkunz 9caa301f40 cli now sets environment variable 2017-04-17 23:23:48 +02:00
philkunz 5fb2f3a81f 7.0.7 2017-04-17 15:04:04 +02:00
philkunz 873c7af7a4 update smartanalytics id 2017-04-17 15:03:59 +02:00
philkunz 5e82218d92 7.0.6 2017-04-17 14:55:44 +02:00
philkunz 354b1b1bf7 add privacy policy to TypeScript files 2017-04-17 14:55:35 +02:00
Phil Kunz 467670863a Update README.md capitalization to all lower case. 2017-04-03 20:37:43 +00:00
philkunz 07195d207d 7.0.5 2017-04-01 21:03:55 +02:00
philkunz b60bb25b0f update ci 2017-04-01 21:02:47 +02:00
philkunz a7af34622b 7.0.4 2017-04-01 20:58:27 +02:00
philkunz 9c58be69bf update docs 2017-04-01 20:58:23 +02:00
philkunz 1681fc729d 7.0.3 2017-03-31 19:18:21 +02:00
philkunz 50e2895ad9 fix #17, now computing coverage result correctly 2017-03-31 19:18:18 +02:00
philkunz 95ba650a14 update pages job 2017-03-31 17:02:19 +02:00
philkunz 83aa10eb52 7.0.2 2017-03-31 16:46:52 +02:00
philkunz ebc3cb70ff add support for picking up all .ts files in .test/ 2017-03-31 16:46:48 +02:00
philkunz 9b595e75cd 7.0.1 2017-03-26 19:24:44 +02:00
philkunz 4e85589dea now executing tests correctly 2017-03-26 19:24:41 +02:00
philkunz 2b44f61ace improve README 2017-03-26 11:41:47 +02:00
philkunz 0928a6d9d2 7.0.0 2017-03-25 21:52:46 +01:00
philkunz e464afd544 update dependencies 2017-03-25 21:52:38 +01:00
philkunz 468d07f5f3 add smartanalytics 2017-03-04 23:44:16 +01:00
Phil Kunz ae68ddfaf8 Merge branch 'switch_to_tap' into 'master'
Switch to tap

Closes #16

See merge request !3
2017-03-04 20:49:11 +00:00
Phil Kunz ad275d2113 Switch to tap 2017-03-04 20:49:10 +00:00
philkunz f99605da8f 6.1.15 2017-02-27 23:52:30 +01:00
philkunz 508aa23e59 6.1.14 2017-02-27 23:52:04 +01:00
philkunz ce7f28404a update projectinfo 2017-02-27 23:52:02 +01:00
philkunz 237b084411 6.1.14 2017-02-27 23:51:02 +01:00
philkunz bc6a7ae1da update projectinfo 2017-02-27 23:50:59 +01:00
philkunz 31fdd4c0a7 6.1.13 2017-02-27 22:19:22 +01:00
philkunz c820350bb6 updated dependencies 2017-02-27 22:19:14 +01:00
philkunz 92bf6d7bab fix README 2017-02-05 11:33:44 +01:00
philkunz e77bece3fc fix README 2017-02-05 11:32:50 +01:00
philkunz df96486d2f 6.1.12 2017-02-05 11:27:38 +01:00
philkunz 980db3eb28 fix git links 2017-02-05 11:15:36 +01:00
philkunz 34d3d4d963 fix README 2017-02-05 11:14:25 +01:00
philkunz a3c02cad4e update README to reflect gitzone 2017-02-05 10:15:26 +01:00
philkunz a12190638d 6.1.11 2017-02-02 21:48:12 +01:00
philkunz f2a36e7a45 update README 2017-02-02 21:48:09 +01:00
philkunz 60c025e638 6.1.10 2017-02-02 20:57:52 +01:00
philkunz 5d16734c00 shift to push.rocks brand 2017-02-02 20:57:46 +01:00
philkunz 65fe421de1 6.1.9 2017-01-21 23:23:03 +01:00
philkunz d94d66ef19 update beautylog 2017-01-21 23:23:00 +01:00
philkunz 3e4ac03a63 6.1.8 2017-01-21 20:45:35 +01:00
philkunz 0948fa806c update deps 2017-01-21 20:45:32 +01:00
philkunz 53980160df 6.1.7 2017-01-21 19:59:22 +01:00
philkunz 886f1ae6f4 update dependencies 2017-01-21 19:59:20 +01:00
philkunz 4602e7e3c9 6.1.6 2017-01-21 19:37:32 +01:00
philkunz 1dbb5f6f36 update dependencies 2017-01-21 19:37:29 +01:00
philkunz 1023bf9f3c 6.1.5 2017-01-20 18:42:05 +01:00
philkunz 78bebcda25 fix testing for rxjs 2017-01-20 18:38:02 +01:00
philkunz 74deee70a3 6.1.4 2017-01-18 01:04:22 +01:00
philkunz 019864a484 remove shelljs 2017-01-18 01:04:19 +01:00
philkunz 80db0fc581 6.1.3 2017-01-18 00:58:16 +01:00
philkunz 9a25b4ef91 remove q in favour of smartq 2017-01-18 00:58:09 +01:00
Phil Kunz 9f42a20e4b Merge branch 'master' into 'master'
add ES2015.iterable

See merge request !1
2017-01-17 17:42:21 +00:00
philkunz dbb8fd0fff add ES2015.iterable 2017-01-17 16:47:19 +01:00
philkunz 4368713ad5 6.1.2 2017-01-15 21:45:12 +01:00
philkunz 58cea5cb48 fix lib inclusion for tests 2017-01-15 21:45:08 +01:00
philkunz 329e0dc101 6.1.1 2017-01-15 20:12:26 +01:00
philkunz da45d002a3 some fixes for es5 transpilation 2017-01-15 20:12:12 +01:00
philkunz 59e811247f remove unused dep 2017-01-15 20:06:07 +01:00
philkunz 7bcd2f4f5d 6.1.0 2017-01-15 20:01:15 +01:00
philkunz 78d77c003c remove babel and instead use typescript 2017-01-15 20:01:10 +01:00
philkunz aca85d2ff3 6.0.0 2017-01-15 14:32:32 +01:00
philkunz f03c4a45c2 remove TypeDoc 2017-01-15 14:32:28 +01:00
philkunz faf55e4e31 5.5.12 2016-12-18 23:14:01 +01:00
philkunz b78fe35e88 5.5.11 2016-12-18 21:35:37 +01:00
philkunz 7ab4561727 add new npmpage 2016-12-18 21:35:23 +01:00
philkunz 200f44a792 5.5.10 2016-11-25 13:42:53 +01:00
philkunz 312dc4bd7f remove unnecessary logging 2016-11-25 13:42:46 +01:00
philkunz 60bed4cb1f 5.5.9 2016-11-25 13:19:02 +01:00
philkunz 8831a8d173 empty Buffer at end of transpilation 2016-11-25 13:18:59 +01:00
philkunz 36f540a22e 5.5.8 2016-11-25 13:03:44 +01:00
philkunz 7e61b49d04 fix 16 file treshold 2016-11-25 13:03:41 +01:00
philkunz 57aa38af89 5.5.7 2016-11-25 00:52:25 +01:00
philkunz 12cf37f01f update messages for better feedback 2016-11-25 00:52:17 +01:00
philkunz 44150f4d83 5.5.6 2016-11-25 00:36:50 +01:00
philkunz 3fd755691d now catching babel errors 2016-11-25 00:36:44 +01:00
philkunz 00983205ce 5.5.5 2016-11-22 18:54:56 +01:00
philkunz a0b1b1847c improve README 2016-11-22 18:54:35 +01:00
philkunz be9e98ad0c 5.5.4 2016-11-22 18:52:48 +01:00
philkunz 84578e8dd0 update README 2016-11-22 18:51:51 +01:00
philkunz 6d759706ac 5.5.3 2016-10-27 21:59:24 +02:00
philkunz 2bd4063d22 speed bump 2016-10-27 21:59:19 +02:00
philkunz c274590184 5.5.2 2016-10-22 02:38:59 +02:00
philkunz de8992da84 fix some minor issues 2016-10-22 02:38:55 +02:00
philkunz dc598e1627 5.5.1 2016-10-22 01:34:11 +02:00
philkunz bfcd78b169 fix version display 2016-10-22 01:34:07 +02:00
philkunz 2352456be1 5.5.0 2016-10-21 17:51:19 +02:00
philkunz 8e4a4e5766 now modularized, implements #11 2016-10-21 17:48:52 +02:00
philkunz 4f93ef3fb2 update dependencies 2016-10-20 22:57:32 +02:00
philkunz 69742fd6a7 moved cli into its own file 2016-10-06 21:03:30 +02:00
philkunz d7b08034da 5.4.49 2016-10-05 12:59:46 +02:00
philkunz 349c6cce77 fix 2016-10-05 12:59:30 +02:00
philkunz 4770b1e349 5.4.48 2016-10-05 12:37:48 +02:00
philkunz 7043a844f0 fix cli 2016-10-05 12:37:45 +02:00
philkunz 5f4a8d3ee5 5.4.47 2016-10-05 12:27:34 +02:00
philkunz 0b6fc610e8 made cli.js path discovery smarter 2016-10-05 12:27:30 +02:00
philkunz 3d78bf268d 5.4.46 2016-10-03 12:45:56 +02:00
philkunz 36887512ee 5.4.45 2016-10-03 12:38:56 +02:00
philkunz fb7025d7ec 5.4.44 2016-10-02 20:35:17 +02:00
philkunz 8dcdad9e2c some more es6 module syntax 2016-10-02 20:35:13 +02:00
philkunz 1898db5472 5.4.43 2016-09-29 16:25:29 +02:00
philkunz 1f01bee204 fix README 2016-09-29 16:25:16 +02:00
philkunz 851653a6ae 5.4.42 2016-09-29 16:19:59 +02:00
philkunz 9229cd79dd fix tsn issue 2016-09-29 16:19:49 +02:00
philkunz 86fb639c82 5.4.41 2016-09-29 00:19:56 +02:00
philkunz d536e6aa8c improve test compilation 2016-09-29 00:19:46 +02:00
philkunz c91ff6ef4a 5.4.40 2016-09-25 20:28:46 +02:00
philkunz 2c88c889bf improve README 2016-09-25 20:28:42 +02:00
philkunz d3f8ea0433 5.4.39 2016-09-25 20:25:31 +02:00
philkunz d57b05c6d0 fix README 2016-09-25 20:25:06 +02:00
philkunz e1ce5f2d5b 5.4.38 2016-09-25 20:22:49 +02:00
philkunz 7c960649bc add smartstream 2016-09-25 20:22:10 +02:00
philkunz 71588595e6 5.4.37 2016-09-24 16:57:41 +02:00
philkunz b31994f163 added new npmextra version 2016-09-24 16:57:30 +02:00
philkunz e6284cdde3 5.4.36 2016-09-22 23:23:32 +02:00
philkunz 5f15fe1b30 added --watch option 2016-09-22 23:23:16 +02:00
philkunz 3dae49b8a1 5.4.35 2016-09-18 13:08:47 +02:00
philkunz 1d431792a5 upgrade to newest tsn 2016-09-18 13:08:31 +02:00
philkunz 9542140b93 clean up 2016-09-15 18:26:33 +02:00
philkunz e1487c39cb 5.4.34 2016-09-15 18:25:25 +02:00
philkunz d4c69071e4 clean up promise handling for ts compilation 2016-09-15 18:25:09 +02:00
philkunz 186460d437 5.4.33 2016-09-14 16:18:23 +02:00
philkunz 30c2db9ed1 update compatibility for npmpage 2016-09-14 16:18:19 +02:00
philkunz 3e5ab24b90 5.4.32 2016-09-14 16:16:47 +02:00
philkunz 6d63b620f1 update README 2016-09-14 16:16:39 +02:00
philkunz a9270cda03 5.4.31 2016-09-14 13:16:40 +02:00
philkunz 2a0a5cea8c update tsn dependency and by that support Decorators and runtime type checking through reflect metadata API 2016-09-14 13:16:36 +02:00
96 changed files with 10134 additions and 1589 deletions
+19 -3
View File
@@ -1,4 +1,20 @@
node_modules/
test/
.nogit/
# artifacts
coverage/
public/
pages/
.DS_Store
# installs
node_modules/
# caches
.yarn/
.cache/
.rpt2_cache
# builds
dist/
dist_*/
# custom
-59
View File
@@ -1,59 +0,0 @@
image: hosttoday/ht-docker-node:npmci
stages:
- test
- release
- trigger
- pages
testLEGACY:
stage: test
script:
- npmci test legacy
tags:
- docker
allow_failure: true
testLTS:
stage: test
script:
- npmci test lts
tags:
- docker
testSTABLE:
stage: test
script:
- npmci test stable
tags:
- docker
release:
stage: release
script:
- npmci publish
only:
- tags
tags:
- docker
trigger:
stage: trigger
script:
- npmci trigger
only:
- tags
tags:
- docker
pages:
image: hosttoday/ht-docker-node:npmpage
stage: pages
script:
- npmci command npmpage --host gitlab
only:
- tags
artifacts:
expire_in: 1 week
paths:
- public
-7
View File
@@ -1,7 +0,0 @@
.idea/
compile/
coverage/
test/
docs/
examples
.gitignore
+22
View File
@@ -0,0 +1,22 @@
{
"@git.zone/cli": {
"projectType": "npm",
"module": {
"githost": "gitlab.com",
"gitscope": "gitzone",
"gitrepo": "tscoverage",
"shortDescription": "get coverage information for gitzone projects",
"npmPackagename": "@git.zone/tscoverage",
"license": "MIT",
"description": "get coverage information for gitzone projects"
},
"release": {
"registries": [
"https://verdaccio.lossless.digital",
"https://registry.npmjs.org"
],
"accessLevel": "public"
}
},
"@ship.zone/szci": {}
}
+29
View File
@@ -0,0 +1,29 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "current file",
"type": "node",
"request": "launch",
"args": [
"${relativeFile}"
],
"runtimeArgs": ["-r", "@git.zone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": "test.ts",
"type": "node",
"request": "launch",
"args": [
"test/test.ts"
],
"runtimeArgs": ["-r", "@git.zone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
}
]
}
+26
View File
@@ -0,0 +1,26 @@
{
"json.schemas": [
{
"fileMatch": ["/.smartconfig.json"],
"schema": {
"type": "object",
"properties": {
"npmci": {
"type": "object",
"description": "settings for npmci"
},
"gitzone": {
"type": "object",
"description": "settings for gitzone",
"properties": {
"projectType": {
"type": "string",
"enum": ["website", "element", "service", "npm"]
}
}
}
}
}
}
]
}
-7
View File
@@ -1,7 +0,0 @@
Please view this file on the master branch, on stable branches it's out of date.
v 6.0.0 (unreleased)
- handle bithound
- check package.json
- check .gitlab-ci-yml
- check appveyor.yml
-4
View File
@@ -1,4 +0,0 @@
# Contribution Guide
This module is developed on the fabulous GitLab.com:
https://gitlab.com/pushrocks/npmts
-36
View File
@@ -1,36 +0,0 @@
# npmts
Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
## Availabililty
[![npm](https://push.rocks/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmts)
[![git](https://push.rocks/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/npmts)
[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.com/pushrocks/npmts)
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmts/docs)
## Status for master
[![build status](https://gitlab.com/pushrocks/npmts/badges/master/build.svg)](https://gitlab.com/pushrocks/npmts/commits/master)
[![coverage report](https://gitlab.com/pushrocks/npmts/badges/master/coverage.svg)](https://gitlab.com/pushrocks/npmts/commits/master)
[![Dependency Status](https://david-dm.org/pushrocks/npmts.svg)](https://david-dm.org/pushrocks/npmts)
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/npmts/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/npmts/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/pushrocks/npmts/badges/code.svg)](https://www.bithound.io/github/pushrocks/npmts)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Introduction
NPMTS is your friend when writing, testing, publishing and documenting npm modules written in TypeScript.
npmts will
1. check your dependencies and package.json
1. transpile your code with tsc,
1. document your code with typedoc,
1. test your code with mocha
1. create coverage with istanbul
This works on your machine and in CI. There is a prebuild docker image available that includes npmts to make CI a breeze:
[hosttoday/ht-docker-node:npmts on Dockerhub](https://hub.docker.com/r/hosttoday/ht-docker-node/)
For further information read the docs.
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)
-2
View File
@@ -1,2 +0,0 @@
#!/usr/bin/env node
var index = require("./index.js");
+355
View File
@@ -0,0 +1,355 @@
# Changelog
## 2026-05-09 - 10.0.2 - fix(package)
remove private flag to allow package publishing
- Deletes the private field from package.json so the package can be published to the registry.
## 2026-05-09 - 10.0.1 - fix(docs)
refresh package documentation and align metadata with current project layout
- replace the generic README with project-specific usage, behavior, and layout documentation
- remove obsolete docs pages and switch the packaged license file from license.md to license
- simplify build and test script commands and update @git.zone development dependency versions
- drop the unused tsconfig baseUrl setting and align package author metadata
## 2026-03-24 - 10.0.0 - BREAKING CHANGE(package)
migrate package to the @git.zone scope and ESM-based tooling
- rename the published package from @gitzone/tscoverage to @git.zone/tscoverage
- switch CLI entrypoints from CommonJS require() to ESM dynamic imports and set package type to module
- update build, test, and runtime tooling to the @git.zone toolchain and replace npmextra.json with .smartconfig.json
## 2020-06-03 - 9.0.1 - core
Applied a core fix update.
- Updated core behavior.
## 2020-06-03 - 9.0.2 - release
Version-only release with no additional relevant changes.
- Summarizes trivial release tagging after 9.0.1.
## 2020-06-03 - 9.0.0 - core
Applied a core fix update.
- Updated core behavior.
## 2020-06-03 - 1.0.1 - core
Applied a core fix update.
- Updated core behavior.
## 2020-06-03 - 1.0.2 - release
Version-only release with no additional relevant changes.
- Summarizes trivial release tagging after 1.0.1.
## 2018-05-03 - 8.0.35 - build
Improved project automation and dependency maintenance across recent 8.0.x releases.
- Updated dependencies in 8.0.36.
- Added a code quality CI step in 8.0.35.
- Updated build and CI configuration in 8.0.34.
- Updated CI configuration and security policy in 8.0.32-8.0.31.
- Split build and test commands to improve speed in 8.0.30.
## 2018-04-08 - 8.0.29 - maintenance
Applied packaging and security policy updates across 8.0.29-8.0.28.
- Fixed npmextra.json configuration in 8.0.29.
- Updated Snyk policy in 8.0.28.
## 2018-04-08 - 8.0.27 - packaging
Updated package naming and offline behavior across 8.0.27-8.0.26.
- Renamed the npmts package to the @gitzone scope in 8.0.27.
- Added offline runtime support in 8.0.26.
## 2017-11-28 - 8.0.25 - maintenance
Applied internal cleanup and dependency refreshes across 8.0.25-8.0.23.
- Refactored internals in 8.0.25.
- Updated dependencies in 8.0.24 and 8.0.23.
## 2017-10-05 - 8.0.22 - test
Adjusted test library inclusion and platform resilience across 8.0.22-8.0.20.
- Changed library inclusion for tests in 8.0.22.
- Updated dependencies and CI behavior in 8.0.21.
- Improved operation when npms.io is unavailable in 8.0.20.
## 2017-09-08 - 8.0.18 - infrastructure
Enhanced mirroring and tracking support across 8.0.18-8.0.17.
- Updated tracking domains in 8.0.18.
- Added a mirror stage in 8.0.17.
## 2017-08-16 - 8.0.7 - maintenance
Delivered a series of small maintenance improvements across 8.0.16-8.0.7.
- Updated documentation, CI, analytics, and dependencies.
- Improved update logging.
- Fixed smartupdate execution.
- Refreshed tooling and package integrations.
## 2017-07-30 - 8.0.3 - docs
Introduced documentation and usability updates across 8.0.3-8.0.0.
- Updated to the latest smartsystem in 8.0.3.
- Improved highlighting and removed the old changelog in 8.0.2.
- Updated docs and description in 8.0.1.
- Added docs in 8.0.0.
## 2017-07-28 - 7.2.10 - test
Improved test handling and coverage support across 7.2.10-7.2.4.
- Updated test file loading approach in 7.2.10.
- Fixed module test import recognition in 7.2.9.
- Added smart replacer in 7.2.8.
- Updated the --nocoverage option in 7.2.7.
- Added proper sourcemap tracing for coverage in 7.2.4.
## 2017-07-18 - 7.2.3 - dependencies
Dependency-only maintenance updates across 7.2.3-7.2.0.
- Updated and upgraded dependencies with no major functional changes.
## 2017-06-30 - 7.1.9 - test
Expanded test execution options and developer controls across 7.1.9-7.1.1.
- Added support for SHELL PATH distributions in tests in 7.1.9.
- Fixed the --nochecks option in 7.1.6.
- Added better test run configuration in 7.1.4.
- Added --nochecks and --nocoverage CLI options in 7.1.3.
- Added coverage and merge options in 7.1.2.
- Added smarterror in 7.1.1.
## 2017-05-13 - 7.1.0 - cleanup
Removed obsolete cleanup code.
- Simplified legacy cleanup behavior.
## 2017-05-04 - 7.0.18 - test
Improved test, coverage, and build workflows across 7.0.18-7.0.1.
- Added sourcemap support for tests in 7.0.18.
- Ensured coverage percentage is properly detected in 7.0.16.
- Fixed smartgulp and related pathing issues in 7.0.15-7.0.14.
- Replaced gulp in 7.0.13.
- Updated runtime standards and environment variable handling in 7.0.8-7.0.7.
- Fixed coverage calculation in 7.0.2.
- Added support for picking up all .ts files in .test/ in 7.0.1.
## 2017-03-26 - 7.0.0 - test
Corrected test execution behavior.
- Tests now execute correctly.
- Improved README documentation.
## 2017-03-04 - 6.1.15 - test
Modernized the test stack and project integrations across 6.1.15-6.1.0.
- Switched to tap in 6.1.15.
- Added smartanalytics in 6.1.15.
- Fixed README and project metadata in 6.1.13-6.1.12.
- Shifted branding and updated dependencies in 6.1.9-6.1.5.
- Fixed testing for rxjs in 6.1.4.
- Replaced q with smartq and added ES2015 iterable support in 6.1.2.
- Fixed lib inclusion for tests in 6.1.1.
- Improved ES5 transpilation behavior in 6.1.0.
## 2017-01-15 - 6.0.0 - migration
Migrated the project away from Babel to TypeScript.
- Removed Babel-based compilation.
- Adopted TypeScript as the main toolchain.
## 2016-12-18 - 5.5.12 - maintenance
Improved tooling, logging, and modularization across 5.5.12-5.5.0.
- Removed TypeDoc in 5.5.12.
- Added a new npmpage in 5.5.10.
- Reduced unnecessary logging and fixed transpilation edge cases in 5.5.9-5.5.8.
- Improved feedback messages and error catching in 5.5.6-5.5.5.
- Fixed minor issues and version display in 5.5.1-5.5.0.
## 2016-10-21 - 5.4.49 - architecture
Restructured the CLI and module architecture across 5.4.49-5.4.35.
- Modularized the project and moved the CLI into its own file in 5.4.49.
- Improved CLI path discovery and CLI fixes in 5.4.47-5.4.46.
- Added smartstream and updated npmextra integration in 5.4.37-5.4.36.
- Added a --watch option in 5.4.35.
## 2016-09-15 - 5.4.34 - compatibility
Improved TypeScript, documentation, and platform compatibility across 5.4.34-5.4.13.
- Upgraded tsn and cleaned up promise handling for TypeScript compilation.
- Added decorator and reflect metadata support via dependency updates.
- Fixed checks, typedoc integration, and type issues.
- Removed Travis/AppVeyor and added GitLab Pages support.
- Improved npmpage compatibility and project cleaning.
- Updated branding and project page generation.
## 2016-08-13 - 5.4.5 - cli
Expanded CLI and dependency analysis features across 5.4.5-5.3.27.
- Added --nodocs option in 5.4.5.
- Improved local Babel plugin resolution in 5.4.4.
- Added missing devDependency detection in 5.4.3.
- Added typings field checks and dependency checks in 5.4.0-5.3.28.
- Fixed compiler option parsing in 5.3.27.
## 2016-07-19 - 5.3.26 - coverage
Improved coverage, test, and documentation tooling across 5.3.26-5.3.11.
- Improved coverage reporting and output behavior.
- Fixed asset handling, dependency issues, tests, and Istanbul integration.
- Switched to npmextra and improved performance by skipping HTML coverage reports.
- Introduced TypeDoc and completed the move to ES6.
- Restructured internal project layout.
## 2016-07-11 - 5.3.8 - docs
Expanded documentation tooling and source map handling across 5.3.8-5.3.7.
- Switched to EsDoc in 5.3.8.
- Updated sourcemap handling in 5.3.7.
## 2016-07-01 - 5.3.6 - maintenance
Prepared the tool for broader usage across 5.3.6-5.2.0.
- Removed debug code and fixed npm variant issues.
- Integrated tsn and readied the project for wider adoption.
- Added --notest support and fixed it.
- Improved console output and CI setup.
- Added legacy test support and separate test compilation.
## 2016-05-31 - 5.1.19 - ci
Significant CI, packaging, and project maintenance updates across 5.1.19-5.1.15.
- Expanded and fixed GitLab CI configuration.
- Added pages support and improved GitLab compatibility.
- Added changelog and contribution guide.
- Fixed package.json and added .npmignore.
- Updated repository URLs and publishing behavior.
## 2016-05-25 - 5.1.14 - dependencies
Improved module integrations and CLI test behavior across 5.1.14-5.1.5.
- Updated smartstring and typings-global integration.
- Added and updated the early module.
- Improved CLI pipe clearing for tests.
- Improved log output and console support.
- Fixed promise chain behavior.
- Added AppVeyor and updated related CI files.
- Switched to beautylog.ora.
## 2016-04-30 - 5.1.4 - typescript
Improved TypeScript defaults and declaration handling across 5.1.4-5.0.2.
- Brought dependencies up to date in 5.1.4.
- Fixed declaration file issues in 5.1.3.
- Made TypeScript modules fully typed by default in 5.1.0.
- Added tsconfig-based tsOptions and declaration file handling in 5.0.4.
- Improved compatibility for projects outside npmts conventions in 5.0.3.
- Restored working behavior in 5.0.2.
## 2016-04-04 - 5.0.1 - dependencies
Dependency-only maintenance across 5.0.1-4.0.2.
- Updated dependencies and internal descriptions with no major feature changes.
## 2016-04-02 - 4.0.1 - coverage
Improved coverage publishing and reporting across 4.0.1-3.6.8.
- Added a codecov badge and updated log messaging in 4.0.1.
- Enabled coverage publishing on every Travis run in 4.0.0.
- Switched from Coveralls to Codecov in 3.6.10.
- Improved coverage failure handling in 3.6.8.
## 2016-03-26 - 3.6.6 - logging
Refined logging, execution flow, and publishing behavior across 3.6.6-3.6.0.
- Added better test log identifiers in 3.6.6.
- Fixed a small promise error in 3.6.5.
- Improved execution order in 3.6.3.
- Fixed doPublish in 3.6.2.
- Made options handling easier in 3.6.1.
- Fixed a small error in 3.6.0.
## 2016-03-23 - 3.5.0 - release
Improved release detection, cleanup, and CLI handling across 3.5.0-3.3.0.
- Correctly determined release builds in 3.5.0.
- Added cleanup and visual polish in 3.5.0.
- Improved CLI option handling and added ship support in 3.4.1.
- Updated developer dependencies and cosmetics in 3.4.0.
- Switched to gulp-typings in 3.3.2.
- Added optional docs publishing in 3.3.1.
- Fixed CLI calls in 3.3.0.
## 2016-02-23 - 3.2.2 - build
Improved build setup, configuration handling, and test preparation across 3.2.2-3.0.0.
- Installed typings before compilation and hid git console output in 3.2.2.
- Fixed config travel, repo path, and environment variable handling in 3.2.1.
- Updated module system usage and added new test files in 3.1.2-3.1.0.
- Improved TypeScript compilation and sourcemap handling in 3.0.3-3.0.2.
- Disabled declaration files temporarily in 3.0.1.
- Fixed coverage issues in 3.0.0.
## 2016-02-17 - 2.4.1 - defaults
Improved defaults, module settings, and source map support across 2.4.1-2.2.0.
- Updated default behavior and tests in 2.4.1.
- Switched to CommonJS as the default module format in 2.4.0.
- Added sourcemap support in 2.3.2.
- Fixed compile script behavior in 2.3.1.
- Updated build target from ES3 to ES5 in 2.2.4.
- Added badges and greeting improvements in 2.2.3-2.2.2.
- Re-added test.ts to the default build process in 2.2.1.
- Fixed initial coveralls value in 2.2.0.
## 2016-02-09 - 2.1.10 - coverage
Expanded coverage and configuration support across 2.1.10-2.0.0.
- Fixed coverage path handling and added a coverage badge in 2.1.10.
- Fixed config travel and task name scoping in 2.1.9-2.1.8.
- Refined paths and coverage failure thresholds in 2.1.7-2.1.6.
- Added coveralls configuration and code coverage in 2.1.5.
- Improved recursive typings handling and path behavior in 2.1.1-2.1.0.
- Added config file support in 2.0.3.
- Fixed timing errors caused by missing stream returns in 2.0.1.
- Ensured mocha tests run properly in 2.0.0.
## 2016-01-31 - 1.0.12 - test
Major update to testing and project structure.
- Added mocha integration.
- Restructured the project.
- Included broader test workflow improvements.
## 2016-01-25 - 1.0.10 - ci
Improved CI detection and plugin handling across 1.0.10-1.0.7.
- Fixed CI detection in 1.0.10.
- Updated plugins in 1.0.11.
- Added tsd handling in 1.0.7.
## 2016-01-18 - 1.0.5 - docs
Early documentation and project setup updates across 1.0.9-1.0.0.
- Improved logging and general project information.
- Added Travis support.
- Added declaration file generation in 1.0.3.
- Restructured code and created development documentation in 1.0.1.
- Improved .gitignore in 1.0.0.
## 2016-01-14 - 0.0.7 - bootstrap
Initial project bootstrapping and early setup across 0.0.7-0.0.0.
- Added .gitignore and package.json.
- Added initial bin handling.
- Reached a working first implementation.
- Included assorted cleanup and update commits.
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env node
process.env.CLI_CALL = 'true';
import('./dist_ts/index.js').then((cliTool) => {
if (cliTool.runCli) {
cliTool.runCli();
}
});
+8
View File
@@ -0,0 +1,8 @@
#!/usr/bin/env node
process.env.CLI_CALL = 'true';
import('@git.zone/tsrun');
import('./ts/index.js').then((cliTool) => {
if (cliTool.runCli) {
cliTool.runCli();
}
});
Vendored
-2
View File
@@ -1,2 +0,0 @@
#!/usr/bin/env node
var index = require("./index.js");
+1 -1
View File
@@ -1 +1 @@
import 'typings-global';
export {};
+9 -23
View File
@@ -1,28 +1,14 @@
"use strict";
require('typings-global');
/* ================================================== *
Starting NPMTS main process.
**** NPMTS ****
Fabulous TypeScript development
* ================================================== */
var early = require('early');
Object.defineProperty(exports, "__esModule", { value: true });
const early = require("early");
early.start('NPMTS');
var plugins = require('./npmts.plugins');
var paths = require('./npmts.paths');
var npmts_promisechain_1 = require('./npmts.promisechain');
early.stop()
.then(function () {
var npmtsProjectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.npmtsPackageRoot);
var npmtsCli = new plugins.smartcli.Smartcli();
npmtsCli.standardTask()
.then(function (argvArg) {
plugins.beautylog.figletSync('NPMTS');
plugins.beautylog.info('npmts version: ' + npmtsProjectInfo.version);
try {
npmts_promisechain_1.promisechain(argvArg);
}
catch (err) {
console.log(err);
}
});
npmtsCli.addVersion(npmtsProjectInfo.version);
npmtsCli.startParse();
const plugins = require("./npmts.plugins");
const cli = require("./npmts.cli");
early.stop().then(() => {
let loaded = plugins; // to make sure plugins get actually loaded
cli.run();
});
+2
View File
@@ -0,0 +1,2 @@
import { INpmtsConfig } from '../npmts.config';
export declare let run: (configArg: INpmtsConfig) => Promise<INpmtsConfig>;
+24
View File
@@ -0,0 +1,24 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/* ------------------------------------------
* This module compiles the module's TypeScript files
* Note: Test files are only compiled in memory
* -------------------------------------------- */
const q = require("smartq");
const plugins = require("./mod.plugins");
const NpmtsAssets = require("./mod.assets");
const NpmtsCheck = require("./mod.check");
const NpmtsClean = require("./mod.clean");
const NpmtsCompile = require("./mod.compile");
exports.run = function (configArg) {
let done = q.defer();
plugins.beautylog.ora.text('starting TypeScript Compilation');
NpmtsClean.run(configArg)
.then(NpmtsCheck.run)
.then(NpmtsCompile.run)
.then(NpmtsAssets.run)
.then(function () {
done.resolve(configArg);
});
return done.promise;
};
+1
View File
@@ -0,0 +1 @@
export declare let run: (configArg: any) => Promise<{}>;
+24
View File
@@ -0,0 +1,24 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const q = require("smartq");
const paths = require("../npmts.paths");
const plugins = require("./mod.plugins");
const mod_check_1 = require("../mod_compile/mod.check");
exports.run = function (configArg) {
let done = q.defer();
let config = configArg;
plugins.beautylog.ora.text('now looking at ' + 'required assets');
if (config.cli === true) {
let mainJsPath = mod_check_1.projectInfo.packageJson.main;
let cliJsString = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir, 'cli.js'));
cliJsString = cliJsString.replace('{{pathToIndex}}', mainJsPath);
plugins.smartfile.memory.toFsSync(cliJsString, plugins.path.join(paths.distDir, 'cli.js'));
plugins.beautylog.ok('installed CLI assets!');
done.resolve(config);
}
else {
plugins.beautylog.ok('No additional assets required!');
done.resolve(config);
}
return done.promise;
};
+4
View File
@@ -0,0 +1,4 @@
import { ProjectinfoNpm } from 'projectinfo';
import { INpmtsConfig } from '../npmts.config';
export declare let projectInfo: ProjectinfoNpm;
export declare let run: (configArg: INpmtsConfig) => Promise<INpmtsConfig>;
+136
View File
@@ -0,0 +1,136 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const q = require("smartq");
const projectinfo_1 = require("projectinfo");
const paths = require("../npmts.paths");
const plugins = require("./mod.plugins");
let checkProjectTypings = (configArg) => {
let done = q.defer();
plugins.beautylog.ora.text('Check Module: Check Project Typings...');
exports.projectInfo = new projectinfo_1.ProjectinfoNpm(paths.cwd);
if (typeof exports.projectInfo.packageJson.typings === 'undefined') {
plugins.beautylog.error(`please add typings field to package.json`);
process.exit(1);
}
done.resolve(configArg);
return done.promise;
};
const depcheckOptions = {
ignoreBinPackage: false,
parsers: {
// the target parsers
'*.ts': plugins.depcheck.parser.typescript
},
detectors: [
// the target detectors
plugins.depcheck.detector.requireCallExpression,
plugins.depcheck.detector.importDeclaration
],
specials: [
// the target special parsers
plugins.depcheck.special.eslint,
plugins.depcheck.special.webpack
]
};
let checkDependencies = (configArg) => {
let done = q.defer();
plugins.beautylog.ora.text('Check Module: Check Dependencies...');
let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, {
ignoreDirs: [
// folder with these names will be ignored
'test',
'dist',
'bower_components'
],
ignoreMatches: [
// ignore dependencies that matches these globs
'@types/*',
'babel-preset-*'
]
});
plugins.depcheck(paths.cwd, depcheckOptionsMerged, unused => {
for (let item of unused.dependencies) {
plugins.beautylog.warn(`Watch out: unused dependency "${item}"`);
}
for (let item in unused.missing) {
plugins.beautylog.error(`missing dependency "${item}" in package.json`);
}
if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json');
process.exit(1);
}
for (let item in unused.invalidFiles) {
plugins.beautylog.warn(`Watch out: could not parse file ${item}`);
}
for (let item in unused.invalidDirs) {
plugins.beautylog.warn(`Watch out: could not parse directory ${item}`);
}
done.resolve(configArg);
});
return done.promise;
};
let checkDevDependencies = (configArg) => {
let done = q.defer();
plugins.beautylog.ora.text('Check Module: Check devDependencies...');
let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, {
ignoreDirs: [
// folder with these names will be ignored
'ts',
'dist',
'bower_components'
],
ignoreMatches: [
// ignore dependencies that matches these globs
'@types/*',
'babel-preset-*'
]
});
plugins.depcheck(paths.cwd, depcheckOptionsMerged, unused => {
for (let item of unused.devDependencies) {
plugins.beautylog.log(`unused devDependency ${item}`);
}
for (let item in unused.missing) {
plugins.beautylog.error(`missing devDependency ${item}`);
}
if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json');
process.exit(1);
}
for (let item in unused.invalidFiles) {
plugins.beautylog.warn(`Watch out: could not parse file ${item}`);
}
for (let item in unused.invalidDirs) {
plugins.beautylog.warn(`Watch out: could not parse directory ${item}`);
}
done.resolve(configArg);
});
return done.promise;
};
let checkNodeVersion = (configArg) => {
let done = q.defer();
plugins.beautylog.ora.text('checking node version');
done.resolve(configArg);
return done.promise;
};
exports.run = (configArg) => __awaiter(this, void 0, void 0, function* () {
plugins.beautylog.ora.text('Check Module: ...');
if (configArg.checkDependencies) {
configArg = yield checkProjectTypings(configArg);
configArg = yield checkDependencies(configArg);
configArg = yield checkDevDependencies(configArg);
configArg = yield checkNodeVersion(configArg);
return configArg;
}
else {
configArg = yield checkProjectTypings(configArg);
return configArg;
}
});
+1
View File
@@ -0,0 +1 @@
export declare let run: (configArg: any) => Promise<{}>;
+30
View File
@@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const q = require("smartq");
const paths = require("../npmts.paths");
const plugins = require("./mod.plugins");
/**
* removes the dist directory which will be entirely rebuild
*/
let removeDist = function () {
plugins.beautylog.ora.text('cleaning dist folder');
return plugins.smartfile.fs.remove(paths.distDir);
};
/**
* remove old pages
*/
let removePages = function () {
plugins.beautylog.ora.text('cleaning pages folder');
return plugins.smartfile.fs.remove(paths.pagesDir);
};
exports.run = function (configArg) {
plugins.beautylog.ora.text('cleaning up from previous builds...');
let done = q.defer();
removeDist()
.then(removePages)
.then(function () {
plugins.beautylog.ok('Cleaned up from previous builds!');
done.resolve(configArg);
});
return done.promise;
};
+1
View File
@@ -0,0 +1 @@
export declare let run: (configArg: any) => Promise<{}>;
+20
View File
@@ -0,0 +1,20 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const q = require("smartq");
const paths = require("../npmts.paths");
const plugins = require("./mod.plugins");
exports.run = function (configArg) {
let done = q.defer();
let config = configArg;
plugins.beautylog.ora.text('now compiling ' + 'TypeScript');
plugins.tsn
.compileGlobStringObject(config.ts, config.tsOptions, paths.cwd)
.then(() => {
plugins.beautylog.ok(`compiled the module's TypeScript!`);
done.resolve(config);
})
.catch(err => {
console.log(err);
});
return done.promise;
};
+5
View File
@@ -0,0 +1,5 @@
export * from '../npmts.plugins';
import * as tsn from 'tsn';
import * as smartchok from 'smartchok';
import * as smartstream from 'smartstream';
export { tsn, smartchok, smartstream };
+12
View File
@@ -0,0 +1,12 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmts.plugins"));
const tsn = require("tsn");
exports.tsn = tsn;
const smartchok = require("smartchok");
exports.smartchok = smartchok;
const smartstream = require("smartstream");
exports.smartstream = smartstream;
+2
View File
@@ -0,0 +1,2 @@
import { INpmtsConfig } from '../npmts.config';
export declare let run: (configArg: INpmtsConfig) => Promise<INpmtsConfig>;
+11
View File
@@ -0,0 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/* ------------------------------------------
* This module creates TypeScript documentation
* -------------------------------------------- */
const q = require("smartq");
exports.run = function (configArg) {
let done = q.defer();
done.resolve(configArg);
return done.promise;
};
+1
View File
@@ -0,0 +1 @@
export * from '../npmts.plugins';
+6
View File
@@ -0,0 +1,6 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmts.plugins"));
+6
View File
@@ -0,0 +1,6 @@
import { INpmtsConfig } from '../npmts.config';
/**
* run this module
* @param configArg some config for how to run this module
*/
export declare let run: (configArg: INpmtsConfig) => Promise<INpmtsConfig>;
+132
View File
@@ -0,0 +1,132 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
/* ------------------------------------------
* This module tests the compiled TypeScript files
* -------------------------------------------- */
const plugins = require("./mod.plugins");
const paths = require("../npmts.paths");
const q = require("smartq");
let testTypeScriptConfig = {
target: 'ES5',
emitDecoratorMetadata: true,
experimentalDecorators: true,
lib: ['DOM', 'ESNext']
};
/**
* runs mocha
* @returns INpmtsConfig
*/
let tap = function (configArg) {
let done = q.defer();
/**
* the TabBuffer for npmts
*/
let npmtsTapBuffer = new plugins.tapbuffer.TabBuffer();
npmtsTapBuffer.setConfig(configArg.testConfig);
/**
* handle the testable files
*/
let testableFilesSmartstream = new plugins.smartstream.Smartstream([
plugins.smartgulp.src([plugins.path.join(paths.cwd, './ts/**/*.ts')]),
plugins.gulpSourcemaps.init(),
plugins.gulpTypeScript(testTypeScriptConfig),
plugins.gulpSourcemaps.write(),
npmtsTapBuffer.pipeTestableFiles(),
plugins.smartstream.cleanPipe()
]);
/**
* handle the test files
*/
let testFilesSmartstream = new plugins.smartstream.Smartstream([
plugins.smartgulp.src([plugins.path.join(paths.cwd, 'test/*.ts')]),
plugins.gulpSourcemaps.init(),
plugins.gulpTypeScript(testTypeScriptConfig),
plugins.gulpSourcemaps.write(),
npmtsTapBuffer.pipeTestFiles(),
plugins.smartstream.cleanPipe()
]);
// lets run the smartstream
Promise.all([testableFilesSmartstream.run(), testFilesSmartstream.run()]).then(() => __awaiter(this, void 0, void 0, function* () {
configArg.runData.coverageLcovInfo = yield npmtsTapBuffer.runTests();
done.resolve(configArg);
}), err => {
plugins.beautylog.error('Tests failed!');
console.log(err);
if (configArg.watch) {
done.resolve(configArg);
}
else {
process.exit(1);
}
});
return done.promise;
};
let handleCoverageData = (configArg) => __awaiter(this, void 0, void 0, function* () {
let coverageResult = 0; // the coverage in percent
if (configArg.runData.coverageLcovInfo) {
coverageResult = yield plugins.smartcov.get.percentageFromLcovString(configArg.runData.coverageLcovInfo, 2);
}
else {
plugins.beautylog.warn('Hey... Did your tests import and use your module that you are trying to test?');
}
if (coverageResult >= configArg.coverageTreshold) {
plugins.beautylog.ok(`${coverageResult.toString()}% ` +
`coverage exceeds your treshold of ` +
`${configArg.coverageTreshold.toString()}%`);
}
else {
plugins.beautylog.warn(`${coverageResult.toString()}% ` +
`coverage fails your treshold of ` +
`${configArg.coverageTreshold.toString()}%`);
plugins.beautylog.error('exiting due to coverage failure');
if (!configArg.watch) {
process.exit(1);
}
}
return configArg;
});
/**
* run this module
* @param configArg some config for how to run this module
*/
exports.run = function (configArg) {
let done = q.defer();
let config = configArg;
if (config.test === true) {
plugins.beautylog.ora.text('now starting tests');
plugins.beautylog.ora.end();
plugins.beautylog.log('ready for tapbuffer:');
if (configArg.testConfig.coverage) {
tap(config)
.then(handleCoverageData)
.then(() => {
done.resolve(config);
})
.catch(err => {
console.log(err);
});
}
else {
tap(config)
.then(() => {
done.resolve(config);
})
.catch(err => {
console.log(err);
});
}
}
else {
plugins.beautylog.ora.end();
done.resolve(config);
}
return done.promise;
};
+8
View File
@@ -0,0 +1,8 @@
export * from '../npmts.plugins';
import * as gulpFunction from 'gulp-function';
import * as gulpSourcemaps from 'gulp-sourcemaps';
import * as gulpTypeScript from 'gulp-typescript';
import * as smartcov from 'smartcov';
import * as smartgulp from 'smartgulp';
import * as tapbuffer from 'tapbuffer';
export { gulpFunction, gulpSourcemaps, gulpTypeScript, smartcov, smartgulp, tapbuffer };
+18
View File
@@ -0,0 +1,18 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("../npmts.plugins"));
const gulpFunction = require("gulp-function");
exports.gulpFunction = gulpFunction;
const gulpSourcemaps = require("gulp-sourcemaps");
exports.gulpSourcemaps = gulpSourcemaps;
const gulpTypeScript = require("gulp-typescript");
exports.gulpTypeScript = gulpTypeScript;
const smartcov = require("smartcov");
exports.smartcov = smartcov;
const smartgulp = require("smartgulp");
exports.smartgulp = smartgulp;
const tapbuffer = require("tapbuffer");
exports.tapbuffer = tapbuffer;
-4
View File
@@ -1,4 +0,0 @@
/// <reference types="q" />
import 'typings-global';
import plugins = require('./npmts.plugins');
export declare var run: (configArg: any) => plugins.Q.Promise<{}>;
-20
View File
@@ -1,20 +0,0 @@
"use strict";
require('typings-global');
var plugins = require('./npmts.plugins');
var paths = require('./npmts.paths');
var npmts_promisechain_1 = require('./npmts.promisechain');
exports.run = function (configArg) {
var done = plugins.Q.defer();
var config = configArg;
npmts_promisechain_1.npmtsOra.text('now looking at ' + 'required assets'.yellow);
if (config.cli === true) {
plugins.smartfile.fs.copySync(plugins.path.join(paths.npmtsAssetsDir, 'cli.js'), plugins.path.join(paths.distDir, 'cli.js'));
plugins.beautylog.ok('installed CLI assets!');
done.resolve(config);
}
else {
plugins.beautylog.ok('No additional assets required!');
done.resolve(config);
}
return done.promise;
};
-5
View File
@@ -1,5 +0,0 @@
/// <reference types="q" />
import * as plugins from './npmts.plugins';
import { ProjectinfoNpm } from 'projectinfo';
export declare let projectInfo: ProjectinfoNpm;
export declare let run: (configArg: any) => plugins.Q.Promise<{}>;
-127
View File
@@ -1,127 +0,0 @@
"use strict";
var plugins = require('./npmts.plugins');
var paths = require('./npmts.paths');
var npmts_promisechain_1 = require('./npmts.promisechain');
var projectinfo_1 = require('projectinfo');
var checkProjectTypings = function (configArg) {
var done = plugins.Q.defer();
exports.projectInfo = new projectinfo_1.ProjectinfoNpm(paths.cwd);
if (typeof exports.projectInfo.packageJson.typings === 'undefined') {
plugins.beautylog.error("please add typings field to package.json");
process.exit(1);
}
;
done.resolve(configArg);
return done.promise;
};
var depcheckOptions = {
ignoreBinPackage: false,
parsers: {
'*.ts': plugins.depcheck.parser.typescript
},
detectors: [
plugins.depcheck.detector.requireCallExpression,
plugins.depcheck.detector.importDeclaration
],
specials: [
plugins.depcheck.special.eslint,
plugins.depcheck.special.webpack
]
};
var checkDependencies = function (configArg) {
var done = plugins.Q.defer();
var depcheckOptionsMerged = plugins.lodashObject.merge(depcheckOptions, {
ignoreDirs: [
'test',
'dist',
'bower_components'
],
ignoreMatches: [
'@types/*',
'babel-preset-*'
]
});
plugins.depcheck(paths.cwd, depcheckOptionsMerged, function (unused) {
for (var _i = 0, _a = unused.dependencies; _i < _a.length; _i++) {
var item = _a[_i];
plugins.beautylog.warn("Watch out: unused dependency " + item.red);
}
;
for (var _b = 0, _c = unused.missing; _b < _c.length; _b++) {
var item = _c[_b];
plugins.beautylog.error("unused devDependency " + item.red);
}
;
if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json');
process.exit(1);
}
for (var _d = 0, _e = unused.invalidFiles; _d < _e.length; _d++) {
var item = _e[_d];
plugins.beautylog.warn("Watch out: could not parse file " + item.red);
}
;
for (var _f = 0, _g = unused.invalidDirs; _f < _g.length; _f++) {
var item = _g[_f];
plugins.beautylog.warn("Watch out: could not parse directory " + item.red);
}
;
done.resolve(configArg);
});
return done.promise;
};
var checkDevDependencies = function (configArg) {
var done = plugins.Q.defer();
var depcheckOptionsMerged = plugins.lodashObject.merge(depcheckOptions, {
ignoreDirs: [
'ts',
'dist',
'bower_components'
],
ignoreMatches: [
'@types/*',
'babel-preset-*'
]
});
plugins.depcheck(paths.cwd, depcheckOptionsMerged, function (unused) {
for (var _i = 0, _a = unused.devDependencies; _i < _a.length; _i++) {
var item = _a[_i];
plugins.beautylog.log("unused devDependency " + item.red);
}
;
for (var _b = 0, _c = unused.missing; _b < _c.length; _b++) {
var item = _c[_b];
plugins.beautylog.error("unused devDependency " + item.red);
}
;
if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json');
process.exit(1);
}
for (var _d = 0, _e = unused.invalidFiles; _d < _e.length; _d++) {
var item = _e[_d];
plugins.beautylog.warn("Watch out: could not parse file " + item.red);
}
for (var _f = 0, _g = unused.invalidDirs; _f < _g.length; _f++) {
var item = _g[_f];
plugins.beautylog.warn("Watch out: could not parse directory " + item.red);
}
done.resolve(configArg);
});
return done.promise;
};
var checkNodeVersion = function (configArg) {
var done = plugins.Q.defer();
done.resolve(configArg);
return done.promise;
};
exports.run = function (configArg) {
var done = plugins.Q.defer();
npmts_promisechain_1.npmtsOra.text('running project checks...');
checkProjectTypings(configArg)
.then(checkDependencies)
.then(checkDevDependencies)
.then(checkNodeVersion)
.then(done.resolve);
return done.promise;
};
-4
View File
@@ -1,4 +0,0 @@
/// <reference types="q" />
import 'typings-global';
import plugins = require('./npmts.plugins');
export declare let run: (configArg: any) => plugins.Q.Promise<{}>;
-24
View File
@@ -1,24 +0,0 @@
"use strict";
require('typings-global');
var plugins = require('./npmts.plugins');
var paths = require('./npmts.paths');
var npmts_promisechain_1 = require('./npmts.promisechain');
var removeDist = function () {
npmts_promisechain_1.npmtsOra.text('cleaning dist folder');
return plugins.smartfile.fs.remove(paths.distDir);
};
var removePages = function () {
npmts_promisechain_1.npmtsOra.text('cleaning pages folder');
return plugins.smartfile.fs.remove(paths.pagesDir);
};
exports.run = function (configArg) {
npmts_promisechain_1.npmtsOra.text('cleaning up from previous builds...');
var done = plugins.Q.defer();
removeDist()
.then(removePages)
.then(function () {
plugins.beautylog.ok('Cleaned up from previous builds!');
done.resolve(configArg);
});
return done.promise;
};
+1
View File
@@ -0,0 +1 @@
export declare let run: () => Promise<{}>;
+109
View File
@@ -0,0 +1,109 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const q = require("smartq");
const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths");
const NpmtsConfig = require("./npmts.config");
const NpmtsMods = require("./npmts.mods");
const NpmtsWatch = require("./npmts.watch");
const NpmtsShip = require("./npmts.ship");
/**
* smartanalytics
* this data is fully anonymized (no Ips or any other personal information is tracked).
* It just keeps track which of our tools are really used...
* ... so we know where to spend our limited resources for improving them.
* Since yarn is out and there is heavy caching going on,
* pure download stats are just not reliable enough for us anymore
* Feel free to dig into the smartanalytics package, if you are interested in how it works.
* It is just an https call to our own Lossless Analytics API.
* Our privacy policy can be found here: https://lossless.gmbh/privacy.html
*/
let npmtsAnalytics = new plugins.smartanalytics.Analytics({
apiEndPoint: 'https://pubapi.lossless.one/analytics',
projectId: 'gitzone',
appName: 'npmts'
});
process.nextTick(() => __awaiter(this, void 0, void 0, function* () {
// make the analytics call
npmtsAnalytics
.recordEvent('npmToolExecution', {
executionMode: (yield NpmtsConfig.configPromise).mode,
tsOptions: (yield NpmtsConfig.configPromise).tsOptions,
watch: (yield NpmtsConfig.configPromise).watch,
coverageTreshold: (yield NpmtsConfig.configPromise).coverageTreshold
})
.catch(err => {
plugins.beautylog.warn('Lossless Analytics API not available...');
});
}));
exports.run = () => __awaiter(this, void 0, void 0, function* () {
let done = q.defer();
plugins.beautylog.figletSync('NPMTS');
let npmtsProjectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.npmtsPackageRoot);
// check for updates
yield plugins.smartupdate.standardHandler.check('npmts', npmtsProjectInfo.version, 'http://gitzone.gitlab.io/npmts/changelog.html');
plugins.beautylog.log('---------------------------------------------');
let npmtsCli = new plugins.smartcli.Smartcli();
// build
npmtsCli
.addCommand('build')
.subscribe((argvArg) => __awaiter(this, void 0, void 0, function* () {
let done = q.defer();
plugins.beautylog.info('npmts version: ' + npmtsProjectInfo.version);
const configArg = yield NpmtsConfig.run(argvArg);
plugins.beautylog.ora.start('loading additional modules...');
NpmtsMods.modCompile
.load()
.then(modCompile => {
return modCompile.run(configArg);
})
.then(configArg => {
let done = q.defer();
NpmtsMods.modDocs
.load()
.then(modDocs => {
return modDocs.run(configArg);
})
.then(configArg => {
done.resolve(configArg);
});
return done.promise;
})
.then(configArg => {
let done = q.defer();
NpmtsMods.modTest
.load()
.then(modTest => {
return modTest.run(configArg);
})
.then(configArg => {
done.resolve(configArg);
});
return done.promise;
})
.then(NpmtsWatch.run)
.then(NpmtsShip.run);
return done.promise;
}), err => {
if (err instanceof Error) {
console.log(err);
}
});
// standard task
npmtsCli.standardTask().subscribe((argvArg) => __awaiter(this, void 0, void 0, function* () {
yield npmtsCli.trigger('build');
}));
// cli metadata
npmtsCli.addVersion(npmtsProjectInfo.version);
// start parsing
npmtsCli.startParse();
return yield done.promise;
});
-4
View File
@@ -1,4 +0,0 @@
/// <reference types="q" />
import 'typings-global';
import plugins = require('./npmts.plugins');
export declare let run: (configArg: any) => plugins.Q.Promise<{}>;
-1
View File
@@ -1 +0,0 @@
export declare let checkOutputPath: (tsArrayArg: any, keyArg: any) => boolean;
-16
View File
@@ -1,16 +0,0 @@
"use strict";
var plugins = require('./npmts.plugins');
var paths = require('./npmts.paths');
var outputPathIsDir = function (tsArrayArg, keyArg) {
return plugins.smartpath.check.isDir(plugins.path.join(paths.cwd, tsArrayArg[keyArg]));
};
exports.checkOutputPath = function (tsArrayArg, keyArg) {
if (!outputPathIsDir(tsArrayArg, keyArg)) {
plugins.beautylog.warn('Skipping ' + keyArg + ' because ' + tsArrayArg[keyArg] + ' it is no directory!');
return false;
}
else {
return true;
}
;
};
-64
View File
@@ -1,64 +0,0 @@
"use strict";
require('typings-global');
var plugins = require('./npmts.plugins');
var helpers = require('./npmts.compile.helpers');
var npmts_promisechain_1 = require('./npmts.promisechain');
var promiseArray = [];
var compileTs = function (tsFileArrayArg, tsOptionsArg) {
if (tsOptionsArg === void 0) { tsOptionsArg = {}; }
var done = plugins.Q.defer();
var compilerOptionsDefault = {
declaration: true,
module: 'CommonJS',
target: 'ES6'
};
/**
* merges default ts options with those found in npmts.json
*/
var compilerOptions = function (keyArg) {
var tsOptionsCombined = plugins.lodashObject.merge(compilerOptionsDefault, tsOptionsArg);
var compilerOptions = {
declaration: tsOptionsCombined.declaration,
module: plugins.tsn.ModuleKind[tsOptionsCombined.module],
target: plugins.tsn.ScriptTarget[tsOptionsCombined.target],
exclude: 'node_modules/**/*'
};
return compilerOptions;
};
var _loop_1 = function(keyArg) {
plugins.beautylog.info("TypeScript assignment: transpile from " + keyArg.blue + " to " + tsFileArrayArg[keyArg].blue);
if (helpers.checkOutputPath(tsFileArrayArg, keyArg)) {
var filesReadPromise = plugins.smartfile.fs.listFileTree(process.cwd(), keyArg)
.then(function (filesToConvertArg) {
var filesToConvertAbsolute = plugins.smartpath.transform.toAbsolute(filesToConvertArg, process.cwd());
var destDir = plugins.smartpath.transform.toAbsolute(tsFileArrayArg[keyArg], process.cwd());
var filesCompiledPromise = plugins.tsn.compile(filesToConvertAbsolute, destDir, compilerOptions(keyArg));
promiseArray.push(filesCompiledPromise);
});
promiseArray.push(filesReadPromise);
}
};
for (var keyArg in tsFileArrayArg) {
_loop_1(keyArg);
}
;
plugins.Q.all(promiseArray)
.then(done.resolve);
return done.promise;
};
exports.run = function (configArg) {
var done = plugins.Q.defer();
var config = configArg;
npmts_promisechain_1.npmtsOra.text('now compiling ' + 'TypeScript'.yellow);
compileTs(config.ts, config.tsOptions)
.then(function () {
plugins.beautylog.ok('compiled main TypeScript!');
plugins.beautylog.log('now compiling tests!');
return compileTs(config.testTs);
})
.then(function () {
plugins.beautylog.ok('compiled all TypeScript!');
done.resolve(config);
});
return done.promise;
};
+26
View File
@@ -0,0 +1,26 @@
import { ITapbufferConfig } from 'tapbuffer';
/**
* specifies the different modes available
* default -> uses default options no matterm what
* merge -> uses merged default + custom options
* custom -> only uses specified options
*/
export declare type npmtsMode = 'default' | 'custom' | 'merge';
export interface INpmtsConfig {
argv: any;
coverageTreshold: number;
checkDependencies: boolean;
mode: npmtsMode;
test: boolean;
testTs: any;
testConfig: ITapbufferConfig;
ts: any;
tsOptions: any;
watch: boolean;
runData: {
coverageLcovInfo?: string;
coverageResult?: number;
};
}
export declare let run: (argvArg: any) => Promise<INpmtsConfig>;
export declare let configPromise: Promise<INpmtsConfig>;
+71
View File
@@ -0,0 +1,71 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths");
const smartq = require("smartq");
exports.run = function (argvArg) {
let done = smartq.defer();
let defaultConfig = {
argv: undefined,
coverageTreshold: 70,
checkDependencies: true,
mode: 'default',
test: true,
testTs: {},
testConfig: {
parallel: true,
coverage: true
},
ts: {},
tsOptions: {},
watch: false,
runData: {}
};
// mix with configfile
plugins.beautylog.ora.text('running npmextra');
let localNpmextra = new plugins.npmextra.Npmextra(paths.cwd);
let config = localNpmextra.dataFor('npmts', defaultConfig);
// add argv
config.argv = argvArg;
// check mode
switch (config.mode) {
case 'default':
case 'custom':
case 'merge':
plugins.beautylog.ok('mode is ' + config.mode);
done.resolve(config);
break;
default:
plugins.beautylog.error(`mode not recognised! Can be default or custom`);
process.exit(1);
}
// handle default mode
if (config.mode === 'default' || config.mode === 'merge') {
config.ts = {
'./ts/**/*.ts': './dist/'
};
config.testTs = {
'./test/**/*.ts': './test/'
};
}
// mix with commandline
if (config.argv.notest) {
config.test = false;
}
if (config.argv.nocoverage) {
config.testConfig.coverage = false;
}
if (config.argv.nochecks) {
config.checkDependencies = false;
}
if (config.argv.watch) {
config.watch = true;
}
plugins.beautylog.ok('build options are ready!');
done.resolve(config);
configDeferred.resolve(config);
return done.promise;
};
// config deferred usage
let configDeferred = smartq.defer();
exports.configPromise = configDeferred.promise;
+7
View File
@@ -0,0 +1,7 @@
import * as plugins from './npmts.plugins';
import * as _modCompile from './mod_compile/index';
import * as _modDocs from './mod_docs/index';
import * as _modTest from './mod_test/index';
export declare let modCompile: plugins.smartsystem.LazyModule<typeof _modCompile>;
export declare let modDocs: plugins.smartsystem.LazyModule<typeof _modDocs>;
export declare let modTest: plugins.smartsystem.LazyModule<typeof _modTest>;
+6
View File
@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const smartsystem_1 = require("smartsystem");
exports.modCompile = new smartsystem_1.LazyModule('./mod_compile/index', __dirname);
exports.modDocs = new smartsystem_1.LazyModule('./mod_docs/index', __dirname);
exports.modTest = new smartsystem_1.LazyModule('./mod_test/index', __dirname);
-15
View File
@@ -1,15 +0,0 @@
/// <reference types="q" />
import 'typings-global';
import plugins = require('./npmts.plugins');
export declare type npmtsMode = 'default' | 'custom';
export interface INpmtsConfig {
argv: any;
coverageTreshold: number;
docs: boolean;
mode: npmtsMode;
test: boolean;
testTs: any;
ts: any;
tsOptions: any;
}
export declare var run: (argvArg: any) => plugins.Q.Promise<{}>;
-65
View File
@@ -1,65 +0,0 @@
"use strict";
require('typings-global');
var plugins = require('./npmts.plugins');
var paths = require('./npmts.paths');
var npmts_promisechain_1 = require('./npmts.promisechain');
;
exports.run = function (argvArg) {
var done = plugins.Q.defer();
var defaultConfig = {
argv: undefined,
coverageTreshold: 70,
docs: true,
mode: 'default',
test: true,
testTs: {},
ts: {},
tsOptions: {}
};
// mix with configfile
npmts_promisechain_1.npmtsOra.text('looking for npmextra.json');
var config = plugins.npmextra.dataFor({
toolName: 'npmts',
defaultSettings: defaultConfig,
cwd: paths.cwd
});
// add argv
config.argv = argvArg;
// check mode
switch (config.mode) {
case 'default':
case 'custom':
plugins.beautylog.ok('mode is ' + config.mode);
done.resolve(config);
break;
default:
plugins.beautylog.error("mode not recognised!");
process.exit(1);
}
;
// handle default mode
if (config.mode === 'default') {
config.ts = (_a = {},
_a['./ts/**/*.ts'] = './dist/',
_a
);
config.testTs = (_b = {},
_b['./test/test.ts'] = './test/',
_b
);
}
;
// mix with commandline
if (config.argv.notest) {
config.test = false;
}
;
if (config.argv.nodocs) {
config.docs = false;
}
;
plugins.beautylog.ok('build options are ready!');
done.resolve(config);
return done.promise;
var _a, _b;
};
-1
View File
@@ -1,4 +1,3 @@
import 'typings-global';
export declare let npmtsPackageRoot: string;
export declare let cwd: string;
export declare let tsDir: string;
+2 -2
View File
@@ -1,6 +1,6 @@
"use strict";
require('typings-global');
var plugins = require('./npmts.plugins');
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./npmts.plugins");
// NPMTS Paths
exports.npmtsPackageRoot = plugins.path.join(__dirname, '../');
// Project paths
+17 -27
View File
@@ -1,27 +1,17 @@
import 'typings-global';
export import beautylog = require('beautylog');
export declare let depcheck: any;
export import gulp = require('gulp');
export declare let g: {
babel: any;
istanbul: any;
gFunction: any;
injectModules: any;
mocha: any;
sourcemaps: any;
typedoc: any;
};
export import lodashObject = require('lodash');
export import npmextra = require('npmextra');
export import projectinfo = require('projectinfo');
export import path = require('path');
export import Q = require('q');
export import shelljs = require('shelljs');
export import smartcli = require('smartcli');
export import smartcov = require('smartcov');
export import smartenv = require('smartenv');
export import smartfile = require('smartfile');
export import smartpath = require('smartpath');
export import smartstring = require('smartstring');
export declare let sourceMapSupport: any;
export import tsn = require('tsn');
import * as beautylog from 'beautylog';
declare let depcheck: any;
import * as lodash from 'lodash';
import * as npmextra from 'npmextra';
import * as projectinfo from 'projectinfo';
import * as path from 'path';
import * as smartanalytics from 'smartanalytics';
import * as smartcli from '@pushrocks/smartcli';
import * as smarterror from 'smarterror';
import * as smartfile from 'smartfile';
import * as smartpath from 'smartpath';
import * as smartstream from 'smartstream';
import * as smartstring from 'smartstring';
import * as smartsystem from 'smartsystem';
import * as smartupdate from 'smartupdate';
import * as through2 from 'through2';
export { beautylog, depcheck, lodash, npmextra, projectinfo, path, smartanalytics, smartcli, smarterror, smartfile, smartpath, smartstream, smartstring, smartsystem, smartupdate, through2 };
+33 -27
View File
@@ -1,28 +1,34 @@
"use strict";
require('typings-global');
exports.beautylog = require('beautylog');
exports.depcheck = require('depcheck');
exports.gulp = require('gulp');
exports.g = {
babel: require('gulp-babel'),
istanbul: require('gulp-istanbul'),
gFunction: require('gulp-function'),
injectModules: require('gulp-inject-modules'),
mocha: require('gulp-mocha'),
sourcemaps: require('gulp-sourcemaps'),
typedoc: require('gulp-typedoc')
};
exports.lodashObject = require('lodash');
exports.npmextra = require('npmextra');
exports.projectinfo = require('projectinfo');
exports.path = require('path');
exports.Q = require('q');
exports.shelljs = require('shelljs');
exports.smartcli = require('smartcli');
exports.smartcov = require('smartcov');
exports.smartenv = require('smartenv');
exports.smartfile = require('smartfile');
exports.smartpath = require('smartpath');
exports.smartstring = require('smartstring');
exports.sourceMapSupport = require('source-map-support').install(); // display errors correctly during testing
exports.tsn = require('tsn');
Object.defineProperty(exports, "__esModule", { value: true });
const beautylog = require("beautylog");
exports.beautylog = beautylog;
let depcheck = require('depcheck');
exports.depcheck = depcheck;
const lodash = require("lodash");
exports.lodash = lodash;
const npmextra = require("npmextra");
exports.npmextra = npmextra;
const projectinfo = require("projectinfo");
exports.projectinfo = projectinfo;
const path = require("path");
exports.path = path;
const smartanalytics = require("smartanalytics");
exports.smartanalytics = smartanalytics;
const smartcli = require("@pushrocks/smartcli");
exports.smartcli = smartcli;
const smarterror = require("smarterror");
exports.smarterror = smarterror;
const smartfile = require("smartfile");
exports.smartfile = smartfile;
const smartpath = require("smartpath");
exports.smartpath = smartpath;
const smartstream = require("smartstream");
exports.smartstream = smartstream;
const smartstring = require("smartstring");
exports.smartstring = smartstring;
const smartsystem = require("smartsystem");
exports.smartsystem = smartsystem;
const smartupdate = require("smartupdate");
exports.smartupdate = smartupdate;
const through2 = require("through2");
exports.through2 = through2;
-6
View File
@@ -1,6 +0,0 @@
/// <reference types="q" />
import 'typings-global';
import plugins = require('./npmts.plugins');
import { Ora } from 'beautylog';
export declare let npmtsOra: Ora;
export declare let promisechain: (argvArg: any) => plugins.Q.Promise<{}>;
-48
View File
@@ -1,48 +0,0 @@
"use strict";
require('typings-global');
var plugins = require('./npmts.plugins');
var beautylog_1 = require('beautylog');
exports.npmtsOra = new beautylog_1.Ora('setting up TaskChain', 'cyan');
var NpmtsAssets = require('./npmts.assets');
var NpmtsCheck = require('./npmts.check');
var NpmtsClean = require('./npmts.clean');
var NpmtsCompile = require('./npmts.compile');
var NpmtsTypeDoc = require('./npmts.typedoc');
var NpmtsOptions = require('./npmts.options');
var NpmtsTests = require('./npmts.tests');
exports.promisechain = function (argvArg) {
var done = plugins.Q.defer();
exports.npmtsOra.start();
NpmtsOptions.run(argvArg)
.then(NpmtsClean.run)
.then(NpmtsCheck.run)
.then(NpmtsCompile.run)
.then(NpmtsAssets.run)
.then(NpmtsTypeDoc.run)
.then(NpmtsTests.run)
.then(function (configArg) {
var shipString = '' +
'\n' +
'\n' +
' # # ( )\n' +
' ___#_#___|__\n' +
' _ |____________| _\n' +
' _=====| | | | | |==== _\n' +
' =====| |.---------------------------. | |====\n' +
" <--------------------' . . . . . . . . '--------------/\n" +
' \\ /\n' +
' \\___________________________________________________________/\n' +
' wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n' +
' wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n' +
' wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n';
if (process.env.CI) {
console.log(shipString);
plugins.beautylog.success('READY TO SHIP!');
}
else {
plugins.beautylog.success('Done!');
}
done.resolve();
});
return done.promise;
};
+2
View File
@@ -0,0 +1,2 @@
import { INpmtsConfig } from './npmts.config';
export declare let run: (configArg: INpmtsConfig) => void;
+29
View File
@@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const q = require("smartq");
const plugins = require("./npmts.plugins");
exports.run = (configArg) => {
let done = q.defer();
let shipString = '' +
'\n' +
'\n' +
' # # ( )\n' +
' ___#_#___|__\n' +
' _ |____________| _\n' +
' _=====| | | | | |==== _\n' +
' =====| |.---------------------------. | |====\n' +
" <--------------------' . . . . . . . . '--------------/\n" +
' \\ /\n' +
' \\___________________________________________________________/\n' +
' wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n' +
' wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n' +
' wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n';
if (process.env.CI) {
console.log(shipString);
plugins.beautylog.success('READY TO SHIP!');
}
else {
plugins.beautylog.success('Done!');
}
done.resolve(configArg);
};
-4
View File
@@ -1,4 +0,0 @@
/// <reference types="q" />
import 'typings-global';
import plugins = require('./npmts.plugins');
export declare let run: (configArg: any) => plugins.Q.Promise<{}>;
-83
View File
@@ -1,83 +0,0 @@
"use strict";
require('typings-global');
var plugins = require('./npmts.plugins');
var paths = require('./npmts.paths');
var npmts_promisechain_1 = require('./npmts.promisechain');
/**
*
* @returns {*}
*/
var mocha = function (configArg) {
npmts_promisechain_1.npmtsOra.text('Instrumentalizing and testing transpiled JS');
npmts_promisechain_1.npmtsOra.end(); // end npmtsOra for tests.
var done = plugins.Q.defer();
plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')])
.pipe(plugins.g.sourcemaps.init())
.pipe(plugins.g.babel({
presets: [
require.resolve('babel-preset-es2015')
]
}))
.pipe(plugins.g.istanbul({}))
.pipe(plugins.g.sourcemaps.write())
.pipe(plugins.g.injectModules())
.on('finish', function () {
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')])
.pipe(plugins.g.babel({
presets: [
require.resolve('babel-preset-es2015')
]
}))
.pipe(plugins.g.injectModules())
.pipe(plugins.g.mocha())
.pipe(plugins.g.istanbul.writeReports({
dir: plugins.path.join(paths.cwd, './coverage'),
reporters: ['lcovonly', 'json', 'text', 'text-summary']
}))
.pipe(plugins.g.gFunction(function () {
plugins.beautylog.ok('Tested!');
done.resolve(configArg);
}, 'atEnd'));
});
return done.promise;
};
var coverage = function (configArg) {
var done = plugins.Q.defer();
plugins.smartcov.get.percentage(plugins.path.join(paths.coverageDir, 'lcov.info'), 2)
.then(function (percentageArg) {
if (percentageArg >= configArg.coverageTreshold) {
plugins.beautylog.ok((percentageArg.toString() + "% ")
+ "coverage exceeds your treshold of "
+ (configArg.coverageTreshold.toString() + "%"));
}
else {
plugins.beautylog.warn((percentageArg.toString() + "% ")
+ "coverage fails your treshold of "
+ (configArg.coverageTreshold.toString() + "%"));
plugins.beautylog.error('exiting due to coverage failure');
process.exit(1);
}
done.resolve(configArg);
});
return done.promise;
};
exports.run = function (configArg) {
var done = plugins.Q.defer();
var config = configArg;
if (config.test === true) {
npmts_promisechain_1.npmtsOra.text('now starting tests');
plugins.beautylog.log('-------------------------------------------------------\n' +
'*************************** TESTS: ***************************\n' +
'--------------------------------------------------------------');
mocha(config)
.then(coverage)
.then(function () {
done.resolve(config);
});
}
else {
npmts_promisechain_1.npmtsOra.end();
done.resolve(config);
}
return done.promise;
};
-4
View File
@@ -1,4 +0,0 @@
/// <reference types="q" />
import 'typings-global';
import plugins = require('./npmts.plugins');
export declare let run: (configArg: any) => plugins.Q.Promise<{}>;
-43
View File
@@ -1,43 +0,0 @@
"use strict";
require('typings-global');
var plugins = require('./npmts.plugins');
var paths = require('./npmts.paths');
var npmts_promisechain_1 = require('./npmts.promisechain');
var npmts_check_1 = require('./npmts.check');
var genTypeDoc = function (configArg) {
var done = plugins.Q.defer();
npmts_promisechain_1.npmtsOra.text('now generating ' + 'TypeDoc documentation'.yellow);
plugins.beautylog.log('TypeDoc Output:');
plugins.gulp.src(plugins.path.join(paths.tsDir, '**/*.ts'))
.pipe(plugins.g.typedoc({
// TypeScript options (see typescript docs)
module: 'commonjs',
target: 'es6',
includeDeclarations: true,
// Output options (see typedoc docs)
out: paths.pagesApiDir,
json: plugins.path.join(paths.pagesApiDir, 'file.json'),
// TypeDoc options (see typedoc docs)
name: npmts_check_1.projectInfo.name,
readme: plugins.path.join(paths.cwd, 'README.md'),
// theme: "default",
ignoreCompilerErrors: true,
version: true
}))
.pipe(plugins.g.gFunction(done.resolve, 'atEnd'));
return done.promise;
};
exports.run = function (configArg) {
var done = plugins.Q.defer();
if (configArg.docs) {
genTypeDoc(configArg)
.then(function () {
done.resolve(configArg);
});
}
else {
done.resolve(configArg);
}
;
return done.promise;
};
+2
View File
@@ -0,0 +1,2 @@
import { INpmtsConfig } from './npmts.config';
export declare let run: (configArg: INpmtsConfig) => Promise<{}>;
+33
View File
@@ -0,0 +1,33 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const q = require("smartq");
const smartchok = require("smartchok");
const plugins = require("./npmts.plugins");
const cli = require("./npmts.cli");
let npmtsSmartchok = null;
exports.run = (configArg) => {
let done = q.defer();
if (configArg.watch && npmtsSmartchok === null) {
let pathsToWatch = [];
for (let key in configArg.ts) {
pathsToWatch.push(key);
}
for (let key in configArg.testTs) {
pathsToWatch.push(key);
}
npmtsSmartchok = new smartchok.Smartchok(pathsToWatch);
npmtsSmartchok.getObservableFor('change').then(changeObservableArg => {
plugins.beautylog.info('now watching...');
changeObservableArg.subscribe(() => {
cli.run();
});
});
npmtsSmartchok.start();
done.resolve(configArg);
}
else {
plugins.beautylog.info('not watching');
done.resolve(configArg);
}
return done.promise;
};
-15
View File
@@ -1,15 +0,0 @@
{
"structure": {
"readme": "index.md"
},
"plugins": [
"tonic",
"edit-link"
],
"pluginsConfig": {
"edit-link": {
"base": "https://gitlab.com/pushrocks/npmts/edit/master/docs/",
"label": "Edit on GitLab"
}
}
}
-80
View File
@@ -1,80 +0,0 @@
# Configuration of NPMTS
npmts can be configured to your needs:
### npmextra.json
the npmts section in npmextra.json can be used to configure npmts.
**Default**
>Note: When you are using `"mode":"default"` it'll cause npmts to override any other settings you may have made except for tsOptions (ES target etc.)
with default behaviour.
```json
{
"npmts":{
"mode":"default"
}
}
```
**Custom settings**
```json
{
"mode":"custom",
"docs":false,
"test":true,
"npmts":{
"ts":{
"./customdir/*.ts":"./"
},
"tsOptions":{
"declaration":false,
"target":"ES6"
},
"cli":true
}
}
```
| key | default value | description |
| --- | --- | --- |
| `"mode"` | `"default"` | "default" will do default stuff and override , "custom" only does what you specify |
| `"docs"` | `true` | create docs for your module |
| `"test"` | `true` | test your module |
| `"ts"` | `{"./ts/*.ts":"./","./test/test.ts":"./test/"}` | allows you to define multiple ts portions |
| `"tsOptions"` | `{"target":"ES5", "declaration":"true"}` | specify options for tsc |
| `"cli"` | "false" | some modules are designed to be used from cli. If set to true NPMTS will create a cli.js that wires you dist files up for cli use. |
### TypeScript
by default npmts looks for `./ts/*.ts` and `./test/test.ts` that will compile to
`./dist/*.js` and `./test/test.js`
Use commonjs module system for wiring up files.
### Declaration files
**npmts** also creates declaration files like `./dist/index.d.ts` by default.
You can reference it in your package.json like this.
```json
"main": "dist/index.js",
"typings": ".dist/index.d.ts",
```
This is in line with the latest TypeScript best practices.
You can then import plugins via the TypeScript `import` Syntax
and tsc will pick up the declaration file automatically.
### TypeDoc
By default TypeDoc will create docs for your module in `./pages/api/` directory.
> Note: Use [npmpage](https://www.npmjs.com/package/npmpage) to build a website for the module.
It also allows you to integrate api docs with a gitbook located in `./docs/`
## Some notes:
#### Typings for third party modules that do not bundle declaration files
NPMTS no longer supports typings.json. Instead use the new TypeScript 2.x approach to typings using the @types/ npm scope.
#### Instrumentalize Code
npmts instrumentalizes (using istanbul) the created JavaScript code to create a coverage report.
#### Tests
Any errors will be shown with reference to their originating source in TypeScript
thanks to autogenerated source maps.
-8
View File
@@ -1,8 +0,0 @@
# Default task execution of npmts
1. **Config:** Check config in ./npmextra.json (Check out [npmextra](https://www.npmjs.com/package/npmextra))
1. **Clean:** Clean up from any previous builds (old js files)
1. **Check:** Check project for typings declaration in package.json, unused dependencies and missing dependencies
1. **Transpile:** Transpile TypeScript with **inline sourcemaps** and **declaration files** to ES target
1. **Documentation:** Create TypeDoc Documentation from TypeScript files
1. **Test:** Babelify ES6 to ES5 on the fly, instrumentalize ES5 JavaScript with istanbul and run tests with Mocha.
-13
View File
@@ -1,13 +0,0 @@
# Examples for npmts
## Example Usage in modules:
* [gulp-browser](https://www.npmjs.com/package/gulp-browser)
> We will add more options over time.
## Tips and tricks:
* Use [npmts-g](https://www.npmjs.com/package/npmts-g) to use globally installed npmts and install npmts locally if no global npmts is available.
* Use [npmpage](https://www.npmjs.com/package/npmpage) to create a webpage from coverage reports and TypeDoc for the module
* Use [hosttoday/ht-docker-node:npmts](https://hub.docker.com/r/hosttoday/ht-docker-node/) for speedy CI builds
* Use [npmdocker](https://www.npmjs.com/package/npmdocker) for running tests consistently with docker.
-36
View File
@@ -1,36 +0,0 @@
# npmts
Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
## Availabililty
[![npm](https://push.rocks/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmts)
[![git](https://push.rocks/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/npmts)
[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.com/pushrocks/npmts)
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmts/docs)
## Status for master
[![build status](https://gitlab.com/pushrocks/npmts/badges/master/build.svg)](https://gitlab.com/pushrocks/npmts/commits/master)
[![coverage report](https://gitlab.com/pushrocks/npmts/badges/master/coverage.svg)](https://gitlab.com/pushrocks/npmts/commits/master)
[![Dependency Status](https://david-dm.org/pushrocks/npmts.svg)](https://david-dm.org/pushrocks/npmts)
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/npmts/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/npmts/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/pushrocks/npmts/badges/code.svg)](https://www.bithound.io/github/pushrocks/npmts)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Introduction
NPMTS is your friend when writing, testing, publishing and documenting npm modules written in TypeScript.
npmts will
1. check your dependencies and package.json
1. transpile your code with tsc,
1. document your code with typedoc,
1. test your code with mocha
1. create coverage with istanbul
This works on your machine and in CI. There is a prebuild docker image available that includes npmts to make CI a breeze:
[hosttoday/ht-docker-node:npmts on Dockerhub](https://hub.docker.com/r/hosttoday/ht-docker-node/)
For further information read the docs.
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)
-14
View File
@@ -1,14 +0,0 @@
# Info
## Future Scope:
* automatically manage badges in README
* manage tslint to enforce code best practices
* tear down any differences between local and CI environments by using brand new npmdocker
## About the authors:
[![Project Phase](https://mediaserve.lossless.digital/lossless.com/img/createdby_github.svg)](https://lossless.com/)
[![PayPal](https://img.shields.io/badge/Support%20us-PayPal-blue.svg)](https://paypal.me/lossless)
## Legal Info
https://lossless.gmbh
-18
View File
@@ -1,18 +0,0 @@
# Install npmts
First install npmts globally, then install the npmts-g locally.
> **npmts-g* checks if the global version of npmts suffices the modules requirements.
If not it installs npmts locally in the right version during npm install.
```sh
npm install npmts -g # installs npmts globally
npm install npmts-g --save-dev # installs npmts-g checking tool as devDependency
```
Then add it to your package.json's script section to trigger a build:
```json
"scripts": {
"test": "(npmts)"
}
```
-8
View File
@@ -1,8 +0,0 @@
# Summary
* [1. Intro](index.md)
* [2. Install](install.md)
* [3. Default Behaviour](default.md)
* [4. Configuration](config.md)
* [5. Examples](examples.md)
* [6. Info](info.md)
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2016 Push.Rocks
Copyright (c) 2016 Task Venture Capital GmbH
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+33 -52
View File
@@ -1,69 +1,50 @@
{
"name": "npmts",
"version": "5.4.30",
"description": "Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.",
"main": "dist/index.js",
"name": "@git.zone/tscoverage",
"version": "10.0.2",
"description": "get coverage information for gitzone projects",
"type": "module",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
"bin": {
"npmts": "dist/cli.js"
"tscoverage": "cli.js"
},
"scripts": {
"test": "(npm run compile && npm run setupCheck && npm run check && npm run checkVersion && npm run checkNoTest && npm run checkNoDocs)",
"compile": "(rm -rf test/ && rm -r dist/ && mkdir dist/ && tsc && cp assets/cli.js dist/ )",
"setupCheck": "(git clone https://gitlab.com/sandboxzone/sandbox-npmts.git test/)",
"typedoc": "(typedoc --out ./pages/api --target ES6 ./ts/)",
"npmpage": "(npmpage)",
"check": "(cd test && npm install && node ../dist/index.js)",
"checkVersion": "(cd test/ && node ../dist/index.js -v)",
"checkNoTest": "(cd test && node ../dist/index.js --notest)",
"checkNoDocs": "(cd test && node ../dist/index.js --nodocs)"
"test": "tstest test/",
"build": "tsbuild"
},
"repository": {
"type": "git",
"url": "git+https://gitlab.com/pushrocks/npmts.git"
"url": "git+https://gitlab.com/gitzone/npmts.git"
},
"keywords": [
"TypeScript",
"Declaration"
],
"author": "Lossless Digital UG (haftungsbeschraenkt)",
"author": "Task Venture Capital GmbH",
"license": "MIT",
"bugs": {
"url": "https://gitlab.com/pushrocks/npmts/issues"
"url": "https://gitlab.com/gitzone/npmts/issues"
},
"homepage": "https://gitlab.com/pushrocks/npmts#readme",
"dependencies": {
"@types/gulp": "^3.8.31",
"@types/minimatch": "^2.0.28",
"@types/q": "^0.x.x",
"@types/shelljs": "^0.3.30",
"babel-preset-es2015": "^6.14.0",
"beautylog": "5.0.22",
"depcheck": "^0.6.4",
"early": "^2.0.26",
"gulp": "3.9.1",
"gulp-babel": "^6.1.2",
"gulp-function": "^1.3.6",
"gulp-inject-modules": "^1.0.0",
"gulp-istanbul": "^1.1.1",
"gulp-mocha": "^3.0.1",
"gulp-sourcemaps": "^1.6.0",
"gulp-typedoc": "^2.0.0",
"lodash": "^4.15.0",
"npmextra": "^1.0.9",
"projectinfo": "1.0.3",
"q": "^1.4.1",
"shelljs": "^0.7.4",
"smartcli": "1.0.5",
"smartcov": "1.0.0",
"smartenv": "1.2.5",
"smartfile": "4.0.15",
"smartpath": "3.2.2",
"smartstring": "^2.0.17",
"source-map-support": "^0.4.2",
"tsn": "^1.0.12",
"typedoc": "^0.4.5",
"typescript": "next",
"typings-global": "^1.0.14"
"homepage": "https://gitlab.com/gitzone/npmts#readme",
"devDependencies": {
"@git.zone/tsbuild": "^4.4.0",
"@git.zone/tsbundle": "^2.10.1",
"@git.zone/tsrun": "^2.0.3",
"@git.zone/tstest": "^3.6.5",
"@git.zone/tswatch": "^3.3.3",
"@types/node": "^25.6.2"
},
"devDependencies": {}
"files": [
"ts/**/*",
"ts_web/**/*",
"dist/**/*",
"dist_*/**/*",
"dist_ts/**/*",
"dist_ts_web/**/*",
"assets/**/*",
"cli.js",
"license",
".smartconfig.json",
"readme.md"
]
}
+8730
View File
File diff suppressed because it is too large Load Diff
+87
View File
@@ -0,0 +1,87 @@
# @git.zone/tscoverage
`@git.zone/tscoverage` is the TypeScript package scaffold for the `tscoverage` command in the `@git.zone` toolchain. The current implementation is intentionally minimal: the package entrypoint prints `tscoverage`, and the CLI wrapper loads the compiled entrypoint.
## Issue Reporting and Security
For reporting bugs, issues, or security vulnerabilities, please visit [community.foss.global/](https://community.foss.global/). This is the central community hub for all issue reporting. Developers who sign and comply with our contribution agreement and go through identification can also get a [code.foss.global/](https://code.foss.global/) account to submit Pull Requests directly.
## Current Behavior
The source entrypoint lives in `ts/index.ts` and currently performs one action when imported or executed:
```text
tscoverage
```
The production CLI entrypoint is `cli.js`. It imports `dist_ts/index.js` and calls an exported `runCli()` function if one is added in the future. Because no `runCli()` export exists today, the CLI currently relies on the entrypoint side effect.
## Usage
Build before using the production CLI wrapper:
```bash
pnpm run build
node cli.js
```
For development against the TypeScript source wrapper:
```bash
node cli.ts.js
```
## Development
Install dependencies with pnpm:
```bash
pnpm install
```
Build the package:
```bash
pnpm run build
```
Run the test suite:
```bash
pnpm test
```
The project uses the current `@git.zone` TypeScript toolchain:
- `@git.zone/tsbuild` compiles `ts/**/*.ts` to `dist_ts/`.
- `@git.zone/tstest` runs tests from `test/`.
- `@git.zone/tsrun`, `@git.zone/tsbundle`, and `@git.zone/tswatch` are available as development tooling dependencies.
## Project Layout
- `ts/` contains the TypeScript source.
- `dist_ts/` contains generated build output.
- `test/` contains the tstest-based test suite.
- `cli.js` is the production CLI wrapper.
- `cli.ts.js` is the TypeScript-source CLI wrapper for development.
## License and Legal Information
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.
### Trademarks
This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.
Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.
### Company Information
Task Venture Capital GmbH
Registered at District Court Bremen HRB 35230 HB, Germany
For any legal inquiries or further information, please contact us via email at hello@task.vc.
By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.
+7
View File
@@ -0,0 +1,7 @@
import { tap, expect } from '@git.zone/tstest/tapbundle';
tap.test('should run a test', async () => {
console.log('hi there');
});
export default tap.start();
+8
View File
@@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @push.rocks/commitinfo
*/
export const commitinfo = {
name: '@git.zone/tscoverage',
version: '10.0.2',
description: 'get coverage information for gitzone projects'
}
+1 -28
View File
@@ -1,28 +1 @@
import 'typings-global'
/* ================================================== *
Starting NPMTS main process.
* ================================================== */
import * as early from 'early'
early.start('NPMTS')
import * as plugins from './npmts.plugins'
import * as paths from './npmts.paths'
import {promisechain} from './npmts.promisechain'
early.stop()
.then(() => {
let npmtsProjectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.npmtsPackageRoot)
let npmtsCli = new plugins.smartcli.Smartcli()
npmtsCli.standardTask()
.then((argvArg) => {
plugins.beautylog.figletSync('NPMTS')
plugins.beautylog.info('npmts version: ' + npmtsProjectInfo.version)
try {
promisechain(argvArg)
} catch (err) {
console.log(err)
}
})
npmtsCli.addVersion(npmtsProjectInfo.version)
npmtsCli.startParse()
})
console.log('tscoverage');
-22
View File
@@ -1,22 +0,0 @@
import 'typings-global'
import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths')
import {npmtsOra} from './npmts.promisechain'
export var run = function(configArg){
let done = plugins.Q.defer()
let config = configArg
npmtsOra.text('now looking at ' + 'required assets'.yellow)
if (config.cli === true) {
plugins.smartfile.fs.copySync(
plugins.path.join(paths.npmtsAssetsDir,'cli.js'),
plugins.path.join(paths.distDir,'cli.js')
)
plugins.beautylog.ok('installed CLI assets!')
done.resolve(config)
} else {
plugins.beautylog.ok('No additional assets required!')
done.resolve(config)
}
return done.promise
}
-120
View File
@@ -1,120 +0,0 @@
import * as plugins from './npmts.plugins'
import * as paths from './npmts.paths'
import { npmtsOra } from './npmts.promisechain'
import {ProjectinfoNpm} from 'projectinfo'
export let projectInfo: ProjectinfoNpm
let checkProjectTypings = (configArg) => {
let done = plugins.Q.defer()
projectInfo = new ProjectinfoNpm(paths.cwd)
if (typeof projectInfo.packageJson.typings === 'undefined') {
plugins.beautylog.error(`please add typings field to package.json`)
process.exit(1)
};
done.resolve(configArg)
return done.promise
}
const depcheckOptions = {
ignoreBinPackage: false, // ignore the packages with bin entry
parsers: { // the target parsers
'*.ts': plugins.depcheck.parser.typescript
},
detectors: [ // the target detectors
plugins.depcheck.detector.requireCallExpression,
plugins.depcheck.detector.importDeclaration
],
specials: [ // the target special parsers
plugins.depcheck.special.eslint,
plugins.depcheck.special.webpack
]
}
let checkDependencies = (configArg) => {
let done = plugins.Q.defer()
let depcheckOptionsMerged = plugins.lodashObject.merge(depcheckOptions, {
ignoreDirs: [ // folder with these names will be ignored
'test',
'dist',
'bower_components'
],
ignoreMatches: [ // ignore dependencies that matches these globs
'@types/*',
'babel-preset-*'
]
})
plugins.depcheck(paths.cwd, depcheckOptionsMerged, (unused) => {
for (let item of unused.dependencies) {
plugins.beautylog.warn(`Watch out: unused dependency ${item.red}`)
};
for (let item of unused.missing) {
plugins.beautylog.error(`unused devDependency ${item.red}`)
};
if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json')
process.exit(1)
}
for (let item of unused.invalidFiles) {
plugins.beautylog.warn(`Watch out: could not parse file ${item.red}`)
};
for (let item of unused.invalidDirs) {
plugins.beautylog.warn(`Watch out: could not parse directory ${item.red}`)
};
done.resolve(configArg)
})
return done.promise
}
let checkDevDependencies = (configArg) => {
let done = plugins.Q.defer()
let depcheckOptionsMerged = plugins.lodashObject.merge(depcheckOptions, {
ignoreDirs: [ // folder with these names will be ignored
'ts',
'dist',
'bower_components'
],
ignoreMatches: [ // ignore dependencies that matches these globs
'@types/*',
'babel-preset-*'
]
})
plugins.depcheck(paths.cwd, depcheckOptionsMerged, (unused) => {
for (let item of unused.devDependencies) {
plugins.beautylog.log(`unused devDependency ${item.red}`)
};
for (let item of unused.missing) {
plugins.beautylog.error(`unused devDependency ${item.red}`)
};
if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json')
process.exit(1)
}
for (let item of unused.invalidFiles) {
plugins.beautylog.warn(`Watch out: could not parse file ${item.red}`)
}
for (let item of unused.invalidDirs) {
plugins.beautylog.warn(`Watch out: could not parse directory ${item.red}`)
}
done.resolve(configArg)
})
return done.promise
}
let checkNodeVersion = (configArg) => {
let done = plugins.Q.defer()
done.resolve(configArg)
return done.promise
}
export let run = (configArg) => {
let done = plugins.Q.defer()
npmtsOra.text('running project checks...')
checkProjectTypings(configArg)
.then(checkDependencies)
.then(checkDevDependencies)
.then(checkNodeVersion)
.then(done.resolve)
return done.promise
}
-26
View File
@@ -1,26 +0,0 @@
import 'typings-global'
import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths')
import {npmtsOra} from './npmts.promisechain'
let removeDist = function(){
npmtsOra.text('cleaning dist folder')
return plugins.smartfile.fs.remove(paths.distDir)
}
let removePages = function(){
npmtsOra.text('cleaning pages folder')
return plugins.smartfile.fs.remove(paths.pagesDir)
}
export let run = function(configArg){
npmtsOra.text('cleaning up from previous builds...')
let done = plugins.Q.defer()
removeDist()
.then(removePages)
.then(function(){
plugins.beautylog.ok('Cleaned up from previous builds!')
done.resolve(configArg)
})
return done.promise
}
-15
View File
@@ -1,15 +0,0 @@
import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths')
let outputPathIsDir = function (tsArrayArg,keyArg) {
return plugins.smartpath.check.isDir(plugins.path.join(paths.cwd, tsArrayArg[keyArg]))
}
export let checkOutputPath = function(tsArrayArg,keyArg){
if (!outputPathIsDir(tsArrayArg,keyArg)) {
plugins.beautylog.warn('Skipping ' + keyArg + ' because ' + tsArrayArg[keyArg] + ' it is no directory!')
return false
} else {
return true
};
}
-68
View File
@@ -1,68 +0,0 @@
import 'typings-global'
import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths')
import helpers = require('./npmts.compile.helpers')
import {npmtsOra} from './npmts.promisechain'
let promiseArray = []
let compileTs = (tsFileArrayArg: string[],tsOptionsArg = {}) => {
let done = plugins.Q.defer()
let compilerOptionsDefault = {
declaration: true,
module: 'CommonJS',
target: 'ES6'
}
/**
* merges default ts options with those found in npmts.json
*/
let compilerOptions = function (keyArg: string) {
let tsOptionsCombined = plugins.lodashObject.merge(compilerOptionsDefault, tsOptionsArg)
let compilerOptions: plugins.tsn.CompilerOptions = {
declaration: tsOptionsCombined.declaration,
module: plugins.tsn.ModuleKind[tsOptionsCombined.module],
target: plugins.tsn.ScriptTarget[tsOptionsCombined.target],
exclude: 'node_modules/**/*'
}
return compilerOptions
}
for (let keyArg in tsFileArrayArg) {
plugins.beautylog.info(`TypeScript assignment: transpile from ${keyArg.blue} to ${tsFileArrayArg[keyArg].blue}`)
if (helpers.checkOutputPath(tsFileArrayArg,keyArg)) {
let filesReadPromise = plugins.smartfile.fs.listFileTree(process.cwd(),keyArg)
.then((filesToConvertArg) => {
let filesToConvertAbsolute = plugins.smartpath.transform.toAbsolute(filesToConvertArg,process.cwd())
let destDir = plugins.smartpath.transform.toAbsolute(tsFileArrayArg[keyArg],process.cwd())
let filesCompiledPromise = plugins.tsn.compile(
filesToConvertAbsolute,
destDir,
compilerOptions(keyArg)
)
promiseArray.push(filesCompiledPromise)
})
promiseArray.push(filesReadPromise)
}
};
plugins.Q.all(promiseArray)
.then(done.resolve)
return done.promise
}
export let run = function (configArg) {
let done = plugins.Q.defer()
let config = configArg
npmtsOra.text('now compiling ' + 'TypeScript'.yellow)
compileTs(config.ts,config.tsOptions)
.then(() => {
plugins.beautylog.ok('compiled main TypeScript!')
plugins.beautylog.log('now compiling tests!')
return compileTs(config.testTs)
})
.then(function () {
plugins.beautylog.ok('compiled all TypeScript!')
done.resolve(config)
})
return done.promise
}
-77
View File
@@ -1,77 +0,0 @@
import 'typings-global'
import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths')
import { npmtsOra } from './npmts.promisechain'
export type npmtsMode = 'default' | 'custom'
export interface INpmtsConfig {
argv: any,
coverageTreshold: number,
docs: boolean,
mode: npmtsMode,
test: boolean,
testTs: any,
ts: any,
tsOptions: any
};
export var run = function (argvArg) {
let done = plugins.Q.defer()
let defaultConfig: INpmtsConfig = {
argv: undefined,
coverageTreshold: 70,
docs: true,
mode: 'default',
test: true,
testTs: {},
ts: {},
tsOptions: {}
}
// mix with configfile
npmtsOra.text('looking for npmextra.json')
let config: INpmtsConfig = plugins.npmextra.dataFor({
toolName: 'npmts',
defaultSettings: defaultConfig,
cwd: paths.cwd
})
// add argv
config.argv = argvArg
// check mode
switch (config.mode) {
case 'default':
case 'custom':
plugins.beautylog.ok('mode is ' + config.mode)
done.resolve(config)
break
default:
plugins.beautylog.error(`mode not recognised!`)
process.exit(1)
};
// handle default mode
if (config.mode === 'default') {
config.ts = {
['./ts/**/*.ts']: './dist/'
}
config.testTs = {
['./test/test.ts']: './test/'
}
};
// mix with commandline
if (config.argv.notest) {
config.test = false
};
if (config.argv.nodocs) {
config.docs = false
};
plugins.beautylog.ok('build options are ready!')
done.resolve(config)
return done.promise
}
-25
View File
@@ -1,25 +0,0 @@
import 'typings-global'
import plugins = require('./npmts.plugins')
// NPMTS Paths
export let npmtsPackageRoot = plugins.path.join(__dirname,'../')
// Project paths
export let cwd = process.cwd()
// Directories
export let tsDir = plugins.path.join(cwd,'ts/')
export let distDir = plugins.path.join(cwd,'dist/')
export let testDir = plugins.path.join(cwd,'test/')
export let typingsDir = plugins.path.join(cwd,'ts/typings/')
export let coverageDir = plugins.path.join(cwd,'coverage/')
// Pages
export let pagesDir = plugins.path.join(cwd,'pages/')
export let pagesApiDir = plugins.path.join(pagesDir,'/api')
export let npmtsAssetsDir = plugins.path.join(__dirname,'../assets/')
// Files
export let indexTS = plugins.path.join(cwd,'ts/index.ts')
export let testTS = plugins.path.join(cwd,'ts/test.ts')
-27
View File
@@ -1,27 +0,0 @@
import 'typings-global'
export import beautylog = require('beautylog')
export let depcheck = require('depcheck')
export import gulp = require('gulp')
export let g = {
babel: require('gulp-babel'),
istanbul: require('gulp-istanbul'),
gFunction: require('gulp-function'),
injectModules: require('gulp-inject-modules'),
mocha: require('gulp-mocha'),
sourcemaps: require('gulp-sourcemaps'),
typedoc: require('gulp-typedoc')
}
export import lodashObject = require('lodash')
export import npmextra = require('npmextra')
export import projectinfo = require('projectinfo')
export import path = require('path')
export import Q = require('q')
export import shelljs = require('shelljs')
export import smartcli = require('smartcli')
export import smartcov = require('smartcov')
export import smartenv = require('smartenv')
export import smartfile = require('smartfile')
export import smartpath = require('smartpath')
export import smartstring = require('smartstring')
export let sourceMapSupport = require('source-map-support').install() // display errors correctly during testing
export import tsn = require('tsn')
-49
View File
@@ -1,49 +0,0 @@
import 'typings-global'
import plugins = require('./npmts.plugins')
import {Ora} from 'beautylog'
export let npmtsOra = new Ora('setting up TaskChain','cyan')
import NpmtsAssets = require('./npmts.assets')
import NpmtsCheck = require('./npmts.check')
import NpmtsClean = require('./npmts.clean')
import NpmtsCompile = require('./npmts.compile')
import NpmtsTypeDoc = require('./npmts.typedoc')
import NpmtsOptions = require('./npmts.options')
import NpmtsTests = require('./npmts.tests')
export let promisechain = function(argvArg){
let done = plugins.Q.defer()
npmtsOra.start()
NpmtsOptions.run(argvArg)
.then(NpmtsClean.run)
.then(NpmtsCheck.run)
.then(NpmtsCompile.run)
.then(NpmtsAssets.run)
.then(NpmtsTypeDoc.run)
.then(NpmtsTests.run)
.then(function(configArg){
let shipString = '' +
'\n' +
'\n' +
' # # ( )\n' +
' ___#_#___|__\n' +
' _ |____________| _\n' +
' _=====| | | | | |==== _\n' +
' =====| |.---------------------------. | |====\n' +
" <--------------------' . . . . . . . . '--------------/\n" +
' \\ /\n' +
' \\___________________________________________________________/\n' +
' wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n' +
' wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n' +
' wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n'
if (process.env.CI) {
console.log(shipString)
plugins.beautylog.success('READY TO SHIP!')
} else {
plugins.beautylog.success('Done!')
}
done.resolve()
})
return done.promise
}
-94
View File
@@ -1,94 +0,0 @@
import 'typings-global'
import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths')
import { npmtsOra } from './npmts.promisechain'
/**
*
* @returns {*}
*/
let mocha = function (configArg) {
npmtsOra.text('Instrumentalizing and testing transpiled JS')
npmtsOra.end() // end npmtsOra for tests.
let done = plugins.Q.defer()
plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')])
.pipe(plugins.g.sourcemaps.init())
.pipe(plugins.g.babel({
presets: [
require.resolve('babel-preset-es2015')
]
}))
.pipe(plugins.g.istanbul({
}))
.pipe(plugins.g.sourcemaps.write())
.pipe(plugins.g.injectModules())
.on('finish', function () {
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')])
.pipe(plugins.g.babel({
presets: [
require.resolve('babel-preset-es2015')
]
}))
.pipe(plugins.g.injectModules())
.pipe(plugins.g.mocha())
.pipe(plugins.g.istanbul.writeReports({
dir: plugins.path.join(paths.cwd, './coverage'),
reporters: ['lcovonly', 'json', 'text', 'text-summary']
}))
.pipe(plugins.g.gFunction(
function () {
plugins.beautylog.ok('Tested!')
done.resolve(configArg)
},
'atEnd'
))
})
return done.promise
}
let coverage = function (configArg) {
let done = plugins.Q.defer()
plugins.smartcov.get.percentage(plugins.path.join(paths.coverageDir, 'lcov.info'), 2)
.then(function (percentageArg) {
if (percentageArg >= configArg.coverageTreshold) {
plugins.beautylog.ok(
`${percentageArg.toString()}% `
+ `coverage exceeds your treshold of `
+ `${configArg.coverageTreshold.toString()}%`
)
} else {
plugins.beautylog.warn(
`${percentageArg.toString()}% `
+ `coverage fails your treshold of `
+ `${configArg.coverageTreshold.toString()}%`
)
plugins.beautylog.error('exiting due to coverage failure')
process.exit(1)
}
done.resolve(configArg)
})
return done.promise
}
export let run = function (configArg) {
let done = plugins.Q.defer()
let config = configArg
if (config.test === true) {
npmtsOra.text('now starting tests')
plugins.beautylog.log(
'-------------------------------------------------------\n' +
'*************************** TESTS: ***************************\n' +
'--------------------------------------------------------------'
)
mocha(config)
.then(coverage)
.then(() => {
done.resolve(config)
})
} else {
npmtsOra.end()
done.resolve(config)
}
return done.promise
}
-45
View File
@@ -1,45 +0,0 @@
import 'typings-global'
import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths')
import { npmtsOra } from './npmts.promisechain'
import { projectInfo } from './npmts.check'
let genTypeDoc = function (configArg) {
let done = plugins.Q.defer()
npmtsOra.text('now generating ' + 'TypeDoc documentation'.yellow)
plugins.beautylog.log('TypeDoc Output:')
plugins.gulp.src(plugins.path.join(paths.tsDir, '**/*.ts'))
.pipe(plugins.g.typedoc({
// TypeScript options (see typescript docs)
module: 'commonjs',
target: 'es6',
includeDeclarations: true,
// Output options (see typedoc docs)
out: paths.pagesApiDir,
json: plugins.path.join(paths.pagesApiDir, 'file.json'),
// TypeDoc options (see typedoc docs)
name: projectInfo.name,
readme: plugins.path.join(paths.cwd, 'README.md'),
// theme: "default",
ignoreCompilerErrors: true,
version: true
}))
.pipe(plugins.g.gFunction(done.resolve, 'atEnd'))
return done.promise
}
export let run = function (configArg) {
let done = plugins.Q.defer()
if (configArg.docs) {
genTypeDoc(configArg)
.then(() => {
done.resolve(configArg)
})
} else {
done.resolve(configArg)
};
return done.promise
}
+9 -7
View File
@@ -1,8 +1,10 @@
{
"compilerOptions": {
"declaration": true,
"module": "commonjs",
"target": "ES5",
"outDir": "./dist/"
}
}
"compilerOptions": {
"esModuleInterop": true
},
"exclude": [
"node_modules",
"test",
"dist_ts"
]
}
-3
View File
@@ -1,3 +0,0 @@
{
"extends": "tslint-config-standard"
}