{"_id":"ts-interface-checker","_rev":"1196539","name":"ts-interface-checker","description":"Runtime library to validate data against TypeScript interfaces","dist-tags":{"latest":"1.0.2"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"time":{"modified":"2022-06-06T08:17:38.000Z","created":"2018-01-11T20:23:46.109Z","1.0.1":"2021-10-11T14:43:36.424Z","1.0.2":"2021-10-11T22:57:41.129Z","1.0.0":"2021-04-14T06:25:30.711Z","0.2.1":"2021-02-26T03:40:25.199Z","0.2.0":"2021-02-21T06:26:31.397Z","0.1.13":"2020-08-04T21:20:32.219Z","0.1.12":"2020-07-29T03:40:26.423Z","0.1.11":"2020-05-17T07:44:42.101Z","0.1.10":"2019-12-18T01:49:22.195Z","0.1.9":"2019-08-29T05:01:06.991Z","0.1.8":"2019-08-27T06:55:17.889Z","0.1.7":"2019-01-16T03:00:28.610Z","0.1.6":"2018-10-30T05:43:02.470Z","0.1.5":"2018-10-27T05:20:31.952Z","0.1.4":"2018-06-15T17:39:25.304Z","0.1.3":"2018-04-13T19:49:56.617Z","0.1.2":"2018-04-12T15:51:40.569Z","0.1.1":"2018-01-28T18:41:31.227Z","0.1.0":"2018-01-11T20:23:46.109Z"},"users":{},"author":{"name":"Dmitry S, Grist Labs"},"repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"versions":{"1.0.1":{"name":"ts-interface-checker","version":"1.0.1","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^8.0.1","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^7.1.2","nyc":"^15.0.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"gitHead":"f95657bba9fda33500b9c031edc78418530175f6","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@1.0.1","_nodeVersion":"14.17.0","_npmVersion":"7.11.2","dist":{"shasum":"f62bf53be096bf30714ea90011c815483470cb87","size":20755,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-1.0.1.tgz"},"_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"directories":{},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_1.0.1_1633963416241_0.3555633193795029"},"_hasShrinkwrap":false,"publish_time":1633963416424,"_cnpm_publish_time":1633963416424,"_cnpmcore_publish_time":"2021-12-16T15:16:48.274Z"},"1.0.2":{"name":"ts-interface-checker","version":"1.0.2","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^8.0.1","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^7.1.2","nyc":"^15.0.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"gitHead":"2906c9540c8e63627e93cfa550ea59dfb4d0bf77","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@1.0.2","_nodeVersion":"14.17.0","_npmVersion":"7.11.2","dist":{"shasum":"63f73a098b0ed34b982df1f490c54890e8e5e0b3","size":20756,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-1.0.2.tgz"},"_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"directories":{},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_1.0.2_1633993060968_0.2819274251136914"},"_hasShrinkwrap":false,"publish_time":1633993061129,"_cnpm_publish_time":1633993061129},"1.0.0":{"name":"ts-interface-checker","version":"1.0.0","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^8.0.1","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^7.1.2","nyc":"^15.0.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"gitHead":"ac67d732e8056ad15aa97229e15018c01ab9cc8e","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@1.0.0","_npmVersion":"6.5.0","_nodeVersion":"10.16.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"2c637389f24566e0bf7db8e4482bad1db7d3bd87","size":18927,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-1.0.0.tgz"},"directories":{},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_1.0.0_1618381530515_0.9890588899858106"},"_hasShrinkwrap":false,"publish_time":1618381530711,"_cnpm_publish_time":1618381530711},"0.2.1":{"name":"ts-interface-checker","version":"0.2.1","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^8.0.1","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^7.1.2","nyc":"^15.0.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"gitHead":"804f35a1c03980ed7d2f5c637382484c96ed1095","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.2.1","_npmVersion":"6.5.0","_nodeVersion":"10.16.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"f89437412519dd0f7817abb5739a263ed5850a63","size":16837,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.2.1.tgz"},"directories":{},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.2.1_1614310824995_0.9084684436368153"},"_hasShrinkwrap":false,"publish_time":1614310825199,"_cnpm_publish_time":1614310825199},"0.2.0":{"name":"ts-interface-checker","version":"0.2.0","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^8.0.1","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^7.1.2","nyc":"^15.0.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"gitHead":"c5ec48a7ded6630f9fc2615d15827fb6b9ea6766","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.2.0","_npmVersion":"6.5.0","_nodeVersion":"10.16.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"4a87c0daac4eceaece401b37c86fa98486caf699","size":16632,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.2.0.tgz"},"directories":{},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.2.0_1613888791252_0.5533234994130696"},"_hasShrinkwrap":false,"publish_time":1613888791397,"_cnpm_publish_time":1613888791397},"0.1.13":{"name":"ts-interface-checker","version":"0.1.13","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^8.0.1","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^7.1.2","nyc":"^15.0.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"gitHead":"56e855cc28aa2a49544119b1731dd1e3f6e48f90","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.13","_npmVersion":"6.5.0","_nodeVersion":"10.16.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"784fd3d679722bc103b1b4b8030bcddb5db2a699","size":15375,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.13.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.13_1596576032078_0.9490575649229036"},"_hasShrinkwrap":false,"publish_time":1596576032219,"_cnpm_publish_time":1596576032219},"0.1.12":{"name":"ts-interface-checker","version":"0.1.12","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^7.1.2","nyc":"^15.0.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"d548bc5411145dede9aa88d275413589c9112764","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.12","_npmVersion":"6.5.0","_nodeVersion":"10.16.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"5cf69fa301778a412f4b2f564533576516fff019","size":14470,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.12.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.12.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.12_1595994026325_0.6165413542060625"},"_hasShrinkwrap":false,"publish_time":1595994026423,"_cnpm_publish_time":1595994026423},"0.1.11":{"name":"ts-interface-checker","version":"0.1.11","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"3a76c16de2ebde90ec42d36e06b9b398b310825a","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.11","_npmVersion":"6.5.0","_nodeVersion":"10.16.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"07e7eddb08212f83fef12c253d0cefa8c70fe1bc","size":14314,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.11.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.11_1589701481947_0.4954715432610164"},"_hasShrinkwrap":false,"publish_time":1589701482101,"_cnpm_publish_time":1589701482101},"0.1.10":{"name":"ts-interface-checker","version":"0.1.10","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"f47e0aa63286820f907882db262c043e3ede5b01","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.10","_npmVersion":"6.5.0","_nodeVersion":"10.16.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"b68a49e37e90a05797e590f08494dd528bf383cf","size":14061,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.10.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.10_1576633762100_0.5915136510979528"},"_hasShrinkwrap":false,"publish_time":1576633762195,"_cnpm_publish_time":1576633762195},"0.1.9":{"name":"ts-interface-checker","version":"0.1.9","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"d2370e246089cb7f7e7f759fda54a3c6e5eb405a","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.9","_npmVersion":"6.5.0","_nodeVersion":"10.16.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"2e20fe64d04bcbda9470252eb18a46b412437c91","size":13859,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.9.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.9_1567054866733_0.01291690813900348"},"_hasShrinkwrap":false,"publish_time":1567054866991,"_cnpm_publish_time":1567054866991},"0.1.8":{"name":"ts-interface-checker","version":"0.1.8","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"~4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"e1dbe587c1d1a223ac398f33647e41722e2a33a8","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.8","_npmVersion":"6.5.0","_nodeVersion":"10.16.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"c9dc110b2d37621cb8af701f41979dceae7aa080","size":13714,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.8.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.8_1566888917686_0.6656698061124209"},"_hasShrinkwrap":false,"publish_time":1566888917889,"_cnpm_publish_time":1566888917889},"0.1.7":{"name":"ts-interface-checker","version":"0.1.7","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"^4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"70240e40940315b7ab25be5315af179d0b8a6d61","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.7","_npmVersion":"6.5.0","_nodeVersion":"10.12.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"77977d82510444974bd5684041a16d4a0de7763a","size":13685,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.7.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.7_1547607628485_0.5766385523471205"},"_hasShrinkwrap":false,"publish_time":1547607628610,"_cnpm_publish_time":1547607628610},"0.1.6":{"name":"ts-interface-checker","version":"0.1.6","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"^4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"282bc0e3afef996d970c5ccb4dfe6b6509a10479","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.6","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"89e7e0df05b254e591f2923bd2a2c261f4320dbf","size":12713,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.6.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.6_1540878182327_0.21354247209621002"},"_hasShrinkwrap":false,"publish_time":1540878182470,"_cnpm_publish_time":1540878182470},"0.1.5":{"name":"ts-interface-checker","version":"0.1.5","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"^4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"81c7249c4b88567d1d45baceb63df2c358cbd1f6","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.5","_shasum":"60d554ac29083bfb8cd51f95d85c21acd1ea662b","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.14.4","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"60d554ac29083bfb8cd51f95d85c21acd1ea662b","size":12860,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.5.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.5_1540617631795_0.7657895670947503"},"_hasShrinkwrap":false,"publish_time":1540617631952,"_cnpm_publish_time":1540617631952},"0.1.4":{"name":"ts-interface-checker","version":"0.1.4","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"files":["dist"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"^4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"1d0a78fcab8d6b5629333673931f0842a3a33a27","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.4","_shasum":"3b669c5b8355223a4680c972c1ca11e277737342","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"3b669c5b8355223a4680c972c1ca11e277737342","size":12430,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.4.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.4_1529084365219_0.7443026341260495"},"_hasShrinkwrap":false,"publish_time":1529084365304,"_cnpm_publish_time":1529084365304},"0.1.3":{"name":"ts-interface-checker","version":"0.1.3","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build && git add dist/"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"files":["dist"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"^4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"dd2b28dee9a7f72d219786dcc573051b668d4f91","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.3","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"paulfitz","email":"paul@robotrebuilt.com"},"dist":{"shasum":"fe2e0811444702f2d90f87c9489f09db1ea43ada","size":12110,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.3.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.3_1523648996567_0.6581473134395148"},"_hasShrinkwrap":false,"publish_time":1523648996617,"_cnpm_publish_time":1523648996617},"0.1.2":{"name":"ts-interface-checker","version":"0.1.2","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build && git add dist/"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"files":["dist"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"^4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"f4c5abe78d8a37c4e818ee01e98412fe198645df","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.2","_shasum":"ef9bb1596a4c4c6886fb359a6005124581505230","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.2","_npmUser":{"name":"paulfitz","email":"paul@robotrebuilt.com"},"dist":{"shasum":"ef9bb1596a4c4c6886fb359a6005124581505230","size":12076,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.2.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker_0.1.2_1523548300197_0.1758970624294709"},"_hasShrinkwrap":false,"publish_time":1523548300569,"_cnpm_publish_time":1523548300569},"0.1.1":{"name":"ts-interface-checker","version":"0.1.1","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js","preversion":"npm test","version":"npm run build && git add dist/"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"files":["dist"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/ts-interface-checker.git"},"bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"^4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"e6ea39559f79c78fcb72163306fb9f45578087b8","homepage":"https://github.com/gristlabs/ts-interface-checker#readme","_id":"ts-interface-checker@0.1.1","_shasum":"baa7787ad723c3d15799c7193e02f63af8575a23","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"baa7787ad723c3d15799c7193e02f63af8575a23","size":11977,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.1.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker-0.1.1.tgz_1517164890227_0.423003947827965"},"directories":{},"publish_time":1517164891227,"_hasShrinkwrap":false,"_cnpm_publish_time":1517164891227},"0.1.0":{"name":"ts-interface-checker","version":"0.1.0","description":"Runtime library to validate data against TypeScript interfaces","main":"dist/index","typings":"dist/index","scripts":{"build":"tsc","watch":"tsc -w","test":"tsc && nyc mocha -R list test/","bench":"tsc && node test/bench/bench.js"},"keywords":["typescript","ts","interface","type","validate","validator","check"],"files":["dist"],"author":{"name":"Dmitry S, Grist Labs"},"license":"Apache-2.0","nyc":{"extension":[".ts"],"exclude":["**/*.d.ts"]},"dependencies":{},"devDependencies":{"@types/benchmark":"^1.0.31","@types/chai":"^4.0.8","@types/mocha":"^2.2.44","@types/node":"^8.0.57","benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^3.5.3","nyc":"^11.4.1","protobufjs":"^6.8.3","source-map-support":"^0.5.0","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"fc81c813e55a213493e60e8a232411eb73e912b4","_id":"ts-interface-checker@0.1.0","_shasum":"2bfc188fe87f04eccdbbcc52db3da5a0918d5a1f","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"dist":{"shasum":"2bfc188fe87f04eccdbbcc52db3da5a0918d5a1f","size":11901,"noattachment":false,"key":"/ts-interface-checker/-/ts-interface-checker-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/ts-interface-checker/download/ts-interface-checker-0.1.0.tgz"},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"},{"name":"paulfitz","email":"paul@robotrebuilt.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-interface-checker-0.1.0.tgz_1515702225171_0.06400847714394331"},"directories":{},"publish_time":1515702226109,"_hasShrinkwrap":false,"_cnpm_publish_time":1515702226109}},"readme":"# ts-interface-checker\n\n[![Build Status](https://travis-ci.org/gristlabs/ts-interface-checker.svg?branch=master)](https://travis-ci.org/gristlabs/ts-interface-checker)\n[![npm version](https://badge.fury.io/js/ts-interface-checker.svg)](https://badge.fury.io/js/ts-interface-checker)\n\n\n> Runtime library to validate data against TypeScript interfaces.\n\nThis package is the runtime support for validators created by\n[ts-interface-builder](https://github.com/gristlabs/ts-interface-builder).\nIt allows validating data, such as parsed JSON objects received\nover the network, or parsed JSON or YAML files, to check if they satisfy a\nTypeScript interface, and to produce informative error messages if they do not.\n\n## Installation\n\n```bash\nnpm install --save-dev ts-interface-builder\nnpm install --save ts-interface-checker\n```\n\n## Usage\n\nSuppose you have a TypeScript file defining an interface:\n```typescript\n// foo.ts\ninterface Square {\n  size: number;\n  color?: string;\n}\n```\n\nThe first step is to generate some code for runtime checks:\n```bash\n`npm bin`/ts-interface-builder foo.ts\n```\n\nIt produces a file like this:\n```typescript\n// foo-ti.js\nimport * as t from \"ts-interface-checker\";\n\nexport const Square = t.iface([], {\n  \"size\": \"number\",\n  \"color\": t.opt(\"string\"),\n});\n...\n```\n\nNow at runtime, to check if a value satisfies the Square interface:\n```typescript\nimport fooTI from \"./foo-ti\";\nimport {createCheckers} from \"ts-interface-checker\";\n\nconst {Square} = createCheckers(fooTI);\n\nSquare.check({size: 1});                  // OK\nSquare.check({size: 1, color: \"green\"});  // OK\nSquare.check({color: \"green\"});           // Fails with \"value.size is missing\"\nSquare.check({size: 4, color: 5});        // Fails with \"value.color is not a string\"\n```\n\nNote that `ts-interface-builder` is only needed for the build-time step, and\n`ts-interface-checker` is needed at runtime. That's why the recommendation is to npm-install the\nformer using `--save-dev` flag and the latter using `--save`.\n\n## Checking method calls\n\nIf you have an interface with methods, you can validate method call arguments and return values:\n```typescript\n// greet.ts\ninterface Greeter {\n  greet(name: string): string;\n}\n```\n\nAfter generating the runtime code, you can now check calls like:\n```typescript\nimport greetTI from \"./greet-ti\";\nimport {createCheckers} from \"ts-interface-checker\";\n\nconst {Greeter} = createCheckers(greetTI);\n\nGreeter.methodArgs(\"greet\").check([\"Bob\"]);     // OK\nGreeter.methodArgs(\"greet\").check([17]);        // Fails with \"value.name is not a string\"\nGreeter.methodArgs(\"greet\").check([]);          // Fails with \"value.name is missing\"\n\nGreeter.methodResult(\"greet\").check(\"hello\");   // OK\nGreeter.methodResult(\"greet\").check(null);      // Fails with \"value is not a string\"\n```\n\n## Type suites\n\nIf one type refers to a type defined in another file, you need to tell the interface checker about\nall type names when you call `createCheckers()`. E.g. given\n\n```typescript\n// color.ts\nexport type Color = RGB | string;\nexport type RGB = [number, number, number];\n```\n\n```typescript\n// shape.ts\nimport {Color} from \"./color\";\nexport interface Square {\n  size: number;\n  color?: Color;\n}\n```\n\nthe produced files `color-ti.ts` and `shape-ti.ts` do not automatically refer to each other, but\nexpect you to relate them in `createCheckers()` call:\n```typescript\nimport color from \"./color-ti\";\nimport shape from \"./shape-ti\";\nimport {createCheckers} from \"ts-interface-checker\";\n\nconst {Square} = createCheckers(shape, color);    // Pass in all required type suites.\n\nSquare.check({size: 1, color: [255,255,255]});\n```\n\n## Strict checking\n\nYou may check that data contains no extra properties. Note that it is not generally recommended as\nit this prevents backward compatibility: if you add new properties to an interface, then older\ncode with strict checks will not accept them.\n\nFollowing on the example above:\n```typescript\nSquare.strictCheck({size: 1, color: [255,255,255], bg: \"blue\"});    // Fails with value.bg is extraneous\nSquare.strictCheck({size: 1, color: [255,255,255,0.5]});            // Fails with ...value.color[3] is extraneous\n```\n\n## Type guards\n\nStandard `Checker` objects do the type checking logic, but are unable to make the TypeScript\ncompiler aware that an object of `unknown` type implements a certain interface.\n\nBasic code:\n```typescript\nconst unk: unknown = {size: 1, color: \"green\"};\n// Type is unknown, so TypeScript will not let you access the members.\nconsole.log(unk.size); // Error: \"Object is of type 'unknown'\"\n```\n\nWith a `Checker` available:\n```typescript\nimport fooTI from \"./foo-ti\";\nimport {createCheckers} from \"ts-interface-checker\";\n\nconst {Square} = createCheckers(fooTI);\n\nconst unk: unknown = {size: 1, color: \"green\"};\n\nif (Square.test(unk)) {\n  // unk does implement Square, but TypeScript is not aware of it.\n  console.log(unk.size); // Error: \"Object is of type 'unknown'\"\n}\n```\n\nTo enable type guard functionality on the existing `test`, and `strictTest` functions, `Checker`\nobjects should be cast to `CheckerT<>` using the appropriate type.\n\nUsing `CheckerT<>`:\n```typescript\nimport {Square} from \"./foo\";\nimport fooTI from \"./foo-ti\";\nimport {createCheckers, CheckerT} from \"ts-interface-checker\";\n\nconst {Square} = createCheckers(fooTI) as {Square: CheckerT<Square>};\n\nconst unk: unknown = {size: 1, color: \"green\"};\n\nif (Square.test(unk)) {\n  // TypeScript is now aware that unk implements Square, and allows member access.\n  console.log(unk.size);\n}\n```\n\n## Type assertions\n\n`CheckerT<>` will eventually support type assertions using the `check` and `strictCheck` functions,\nhowever, this feature is not yet fully working in TypeScript.\n","_attachments":{},"homepage":"https://github.com/gristlabs/ts-interface-checker#readme","bugs":{"url":"https://github.com/gristlabs/ts-interface-checker/issues"},"license":"Apache-2.0"}