{"_id":"ast-types-flow","_rev":"2972343","name":"ast-types-flow","description":"Flow types for the Javascript AST","dist-tags":{"latest":"0.0.8"},"maintainers":[{"name":"kyldvs","email":"kyldvs@gmail.com"}],"time":{"modified":"2023-06-15T05:56:59.000Z","created":"2015-09-14T04:06:13.677Z","0.0.8":"2023-04-15T00:34:00.324Z","0.0.7":"2015-10-30T06:48:44.166Z","0.0.6":"2015-10-28T02:20:43.702Z","0.0.5":"2015-10-28T02:18:39.697Z","0.0.4":"2015-09-30T04:24:40.694Z","0.0.3":"2015-09-14T04:20:17.961Z","0.0.2":"2015-09-14T04:16:27.173Z","0.0.1":"2015-09-14T04:06:13.677Z"},"users":{},"author":{"name":"kyldvs"},"repository":{"type":"git","url":"git+https://github.com/kyldvs/ast-types-flow.git"},"versions":{"0.0.8":{"name":"ast-types-flow","version":"0.0.8","description":"Flow types for the Javascript AST","main":"lib/types.js","scripts":{"build":"gulp build","test":"flow"},"repository":{"type":"git","url":"git+https://github.com/kyldvs/ast-types-flow.git"},"keywords":["flow","ast","javascript"],"author":{"name":"kyldvs"},"license":"MIT","bugs":{"url":"https://github.com/kyldvs/ast-types-flow/issues"},"homepage":"https://github.com/kyldvs/ast-types-flow#readme","devDependencies":{"gulp":"^3.9.0","gulp-util":"^3.0.6","jscodeshift":"^0.3.7","nuclide-node-transpiler":"0.0.30","through2":"^2.0.0"},"gitHead":"7890bc46dc5fb5b0009792851f698972359adcc2","_id":"ast-types-flow@0.0.8","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"shasum":"0a85e1c92695769ac13a428bb653e7538bea27d6","size":8683,"noattachment":false,"key":"/ast-types-flow/-/ast-types-flow-0.0.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/ast-types-flow/download/ast-types-flow-0.0.8.tgz"},"_npmUser":{"name":"kyldvs","email":"npm@kyle.dev"},"directories":{},"maintainers":[{"name":"kyldvs","email":"kyldvs@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ast-types-flow_0.0.8_1681518840161_0.13803071524510813"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-04-15T00:34:00.324Z","publish_time":1681518840324,"_cnpm_publish_time":1681518840324},"0.0.7":{"name":"ast-types-flow","version":"0.0.7","description":"Flow types for the Javascript AST","main":"lib/types.js","files":["lib"],"scripts":{"build":"gulp build","test":"flow"},"repository":{"type":"git","url":"git+https://github.com/kyldvs/ast-types-flow.git"},"keywords":["flow","ast","javascript"],"author":{"name":"kyldvs"},"license":"ISC","bugs":{"url":"https://github.com/kyldvs/ast-types-flow/issues"},"homepage":"https://github.com/kyldvs/ast-types-flow#readme","devDependencies":{"gulp":"^3.9.0","gulp-util":"^3.0.6","jscodeshift":"^0.3.7","nuclide-node-transpiler":"0.0.30","through2":"^2.0.0"},"gitHead":"003086278fe72acf0c9ecc12e569a3ec01c4f0af","_id":"ast-types-flow@0.0.7","_shasum":"f70b735c6bca1a5c9c22d982c3e39e7feba3bdad","_from":".","_npmVersion":"2.14.8","_nodeVersion":"4.2.1","_npmUser":{"name":"kyldvs","email":"kyldvs@gmail.com"},"dist":{"shasum":"f70b735c6bca1a5c9c22d982c3e39e7feba3bdad","size":8565,"noattachment":false,"key":"/ast-types-flow/-/ast-types-flow-0.0.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/ast-types-flow/download/ast-types-flow-0.0.7.tgz"},"maintainers":[{"name":"kyldvs","email":"kyldvs@gmail.com"}],"directories":{},"publish_time":1446187724166,"_cnpm_publish_time":1446187724166,"_hasShrinkwrap":false},"0.0.6":{"name":"ast-types-flow","version":"0.0.6","description":"Flow types for the Javascript AST","main":"lib/types.js","files":["lib"],"scripts":{"build":"gulp build","test":"flow"},"repository":{"type":"git","url":"git+https://github.com/kyldvs/ast-types-flow.git"},"keywords":["flow","ast","javascript"],"author":{"name":"kyldvs"},"license":"ISC","bugs":{"url":"https://github.com/kyldvs/ast-types-flow/issues"},"homepage":"https://github.com/kyldvs/ast-types-flow#readme","devDependencies":{"gulp":"^3.9.0","gulp-util":"^3.0.6","jscodeshift":"^0.3.7","nuclide-node-transpiler":"0.0.30","through2":"^2.0.0"},"gitHead":"0e1286e31f987abf7b228efdbbc9a600be38047c","_id":"ast-types-flow@0.0.6","_shasum":"6e334ba2637f3d5f63a1ad59aca7340536eacfd6","_from":".","_npmVersion":"2.14.8","_nodeVersion":"4.2.1","_npmUser":{"name":"kyldvs","email":"kyldvs@gmail.com"},"dist":{"shasum":"6e334ba2637f3d5f63a1ad59aca7340536eacfd6","size":8014,"noattachment":false,"key":"/ast-types-flow/-/ast-types-flow-0.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/ast-types-flow/download/ast-types-flow-0.0.6.tgz"},"maintainers":[{"name":"kyldvs","email":"kyldvs@gmail.com"}],"directories":{},"publish_time":1445998843702,"_cnpm_publish_time":1445998843702,"_hasShrinkwrap":false},"0.0.5":{"name":"ast-types-flow","version":"0.0.5","description":"Flow types for the Javascript AST","main":"lib/types.js","files":["lib"],"scripts":{"build":"gulp build","test":"flow"},"repository":{"type":"git","url":"git+https://github.com/kyldvs/ast-types-flow.git"},"keywords":["flow","ast","javascript"],"author":{"name":"kyldvs"},"license":"ISC","bugs":{"url":"https://github.com/kyldvs/ast-types-flow/issues"},"homepage":"https://github.com/kyldvs/ast-types-flow#readme","devDependencies":{"gulp":"^3.9.0","gulp-util":"^3.0.6","jscodeshift":"^0.3.7","nuclide-node-transpiler":"0.0.30","through2":"^2.0.0"},"gitHead":"f31c41130d9d37140ec42babe1e39298a7365013","_id":"ast-types-flow@0.0.5","_shasum":"2fad49ef51c3b41c8b3d54f2c771bf2e97a9e984","_from":".","_npmVersion":"2.14.8","_nodeVersion":"4.2.1","_npmUser":{"name":"kyldvs","email":"kyldvs@gmail.com"},"dist":{"shasum":"2fad49ef51c3b41c8b3d54f2c771bf2e97a9e984","size":8019,"noattachment":false,"key":"/ast-types-flow/-/ast-types-flow-0.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/ast-types-flow/download/ast-types-flow-0.0.5.tgz"},"maintainers":[{"name":"kyldvs","email":"kyldvs@gmail.com"}],"directories":{},"publish_time":1445998719697,"_cnpm_publish_time":1445998719697,"_hasShrinkwrap":false},"0.0.4":{"name":"ast-types-flow","version":"0.0.4","description":"Flow types for the Javascript AST","main":"lib/types.js","files":["lib"],"scripts":{"build":"gulp build","test":"flow"},"repository":{"type":"git","url":"git+https://github.com/kyldvs/ast-types-flow.git"},"keywords":["flow","ast","javascript"],"author":{"name":"kyldvs"},"license":"ISC","bugs":{"url":"https://github.com/kyldvs/ast-types-flow/issues"},"homepage":"https://github.com/kyldvs/ast-types-flow#readme","devDependencies":{"gulp":"^3.9.0","gulp-util":"^3.0.6","jscodeshift":"^0.3.7","nuclide-node-transpiler":"0.0.30","through2":"^2.0.0"},"gitHead":"ef2e32cb0a3224e693208de5eb2d224d644d9761","_id":"ast-types-flow@0.0.4","_shasum":"92cd7f99221dc483fe377f862cc6dae836889231","_from":".","_npmVersion":"2.14.1","_nodeVersion":"0.12.7","_npmUser":{"name":"kyldvs","email":"kyldvs@gmail.com"},"dist":{"shasum":"92cd7f99221dc483fe377f862cc6dae836889231","size":7143,"noattachment":false,"key":"/ast-types-flow/-/ast-types-flow-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/ast-types-flow/download/ast-types-flow-0.0.4.tgz"},"maintainers":[{"name":"kyldvs","email":"kyldvs@gmail.com"}],"directories":{},"publish_time":1443587080694,"_cnpm_publish_time":1443587080694,"_hasShrinkwrap":false},"0.0.3":{"name":"ast-types-flow","version":"0.0.3","description":"Flow types for the Javascript AST","main":"lib/types.js","files":["lib"],"scripts":{"build":"gulp build","test":"flow"},"repository":{"type":"git","url":"git+https://github.com/kyldvs/ast-types-flow.git"},"keywords":["flow","ast","javascript"],"author":{"name":"kyldvs"},"license":"ISC","bugs":{"url":"https://github.com/kyldvs/ast-types-flow/issues"},"homepage":"https://github.com/kyldvs/ast-types-flow#readme","devDependencies":{"gulp":"^3.9.0","gulp-util":"^3.0.6","jscodeshift":"^0.3.7","nuclide-node-transpiler":"0.0.30","through2":"^2.0.0"},"gitHead":"25e58c054d5011afe48fac9f3bc54e288278ec2c","_id":"ast-types-flow@0.0.3","_shasum":"d92ac303170523449f5b45632c37186c9aab9807","_from":".","_npmVersion":"2.14.1","_nodeVersion":"0.12.7","_npmUser":{"name":"kyldvs","email":"kyldvs@gmail.com"},"dist":{"shasum":"d92ac303170523449f5b45632c37186c9aab9807","size":7132,"noattachment":false,"key":"/ast-types-flow/-/ast-types-flow-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/ast-types-flow/download/ast-types-flow-0.0.3.tgz"},"maintainers":[{"name":"kyldvs","email":"kyldvs@gmail.com"}],"directories":{},"publish_time":1442204417961,"_cnpm_publish_time":1442204417961,"_hasShrinkwrap":false},"0.0.2":{"name":"ast-types-flow","version":"0.0.2","description":"Flow types for the Javascript AST","main":"lib/types.js","files":["lib"],"scripts":{"build":"gulp build","test":"flow"},"repository":{"type":"git","url":"git+https://github.com/kyldvs/ast-types-flow.git"},"keywords":["flow","ast","javascript"],"author":{"name":"kyldvs"},"license":"ISC","bugs":{"url":"https://github.com/kyldvs/ast-types-flow/issues"},"homepage":"https://github.com/kyldvs/ast-types-flow#readme","devDependencies":{"gulp":"^3.9.0","gulp-util":"^3.0.6","jscodeshift":"^0.3.7","nuclide-node-transpiler":"0.0.30","through2":"^2.0.0"},"gitHead":"79fbc67368fea4e027db4dcac847008520102919","_id":"ast-types-flow@0.0.2","_shasum":"4c149675409163e4780b498ace4f840418d9612e","_from":".","_npmVersion":"2.14.1","_nodeVersion":"0.12.7","_npmUser":{"name":"kyldvs","email":"kyldvs@gmail.com"},"dist":{"shasum":"4c149675409163e4780b498ace4f840418d9612e","size":7096,"noattachment":false,"key":"/ast-types-flow/-/ast-types-flow-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/ast-types-flow/download/ast-types-flow-0.0.2.tgz"},"maintainers":[{"name":"kyldvs","email":"kyldvs@gmail.com"}],"directories":{},"publish_time":1442204187173,"_cnpm_publish_time":1442204187173,"_hasShrinkwrap":false},"0.0.1":{"name":"ast-types-flow","version":"0.0.1","description":"Flow types for the Javascript AST","main":"lib/types.js","files":["lib"],"scripts":{"build":"gulp build","test":"flow"},"repository":{"type":"git","url":"git+https://github.com/kyldvs/ast-types-flow.git"},"keywords":["flow","ast","javascript"],"author":{"name":"kyldvs"},"license":"ISC","bugs":{"url":"https://github.com/kyldvs/ast-types-flow/issues"},"homepage":"https://github.com/kyldvs/ast-types-flow#readme","devDependencies":{"gulp":"^3.9.0","gulp-util":"^3.0.6","jscodeshift":"^0.3.7","nuclide-node-transpiler":"0.0.30","through2":"^2.0.0"},"gitHead":"b3401e2634266d424c11b66c34279adfe4fe3de0","_id":"ast-types-flow@0.0.1","_shasum":"a1271377d54726c6ce4c744f2e07248300c5754e","_from":".","_npmVersion":"2.14.1","_nodeVersion":"0.12.7","_npmUser":{"name":"kyldvs","email":"kyldvs@gmail.com"},"dist":{"shasum":"a1271377d54726c6ce4c744f2e07248300c5754e","size":7043,"noattachment":false,"key":"/ast-types-flow/-/ast-types-flow-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/ast-types-flow/download/ast-types-flow-0.0.1.tgz"},"maintainers":[{"name":"kyldvs","email":"kyldvs@gmail.com"}],"directories":{},"publish_time":1442203573677,"_cnpm_publish_time":1442203573677,"_hasShrinkwrap":false}},"readme":"# ast-types-flow\n\nFlow types for the Javascript AST. Based off of [benjamn/ast-types](https://github.com/benjamn/ast-types).\n\n## Usage\n\nFirst install `ast-types-flow` via npm, then you can import any of the types\nthat are exported.\n\n```javascript\n/* @flow */\n\nimport type {Node} from 'ast-types-flow';\n\nfunction getName(node: Node): string {\n  switch (node.type) {\n    case 'Identifier':\n      return node.name;\n\n    case 'ClassDeclaration':\n      return node.id.name; // Error, id could be null.\n\n    case 'FunctionDeclaration':\n      return node.id.name; // Fine if it's always there.\n\n    case 'FunctionExpression':\n      if (node.id) {\n        return node.id.name; // Can refine id to make sure it exists.\n      } else {\n        return 'Unknown';\n      }\n\n    case 'Literal':\n      return node.name; // Error, Literals don't have names, don't be silly.\n  }\n  return 'Unknown';\n}\n```\n\n## How it works\n\nA notion of \"extends\" is added to the Flow syntax via comments. A transform is\nincluded that will compile the source code into useful disjoint union types\nbased on how the different types extend each other. For example:\n\n```javascript\ntype Node = {\n  common: string,\n};\n\ntype Foo = {\n  // extends Node\n  foo: string,\n};\n\ntype Bar = {\n  // extends Node\n  bar: number,\n};\n```\n\nWill be transformed into:\n\n```javascript\ntype Node = {\n  type: 'Foo',\n  _Foo: void,\n  common: string,\n  foo: string,\n} | {\n  type: 'Bar',\n  _Bar: void,\n  common: string,\n  bar: number,\n};\n\ntype Foo = {\n  type: 'Foo',\n  _Foo: void,\n  common: string,\n  foo: string,\n};\n\ntype Bar = {\n  type: 'Bar',\n  _Foo: void,\n  common: string,\n  bar: number,\n};\n```\n\nA few things to note:\n\n1. The type `Node` would more ideally be compiled into `Foo | Bar` but then the\ndisjoint union cannot be properly refined. For now we have to duplicate the\ncomplete definitions.\n2. Each entry in a disjoint union has to be structurally unique or Flow will\nhave an error on the definition. That is why the private `_Foo: void` fields\nappear in the types.\n","_attachments":{},"homepage":"https://github.com/kyldvs/ast-types-flow#readme","bugs":{"url":"https://github.com/kyldvs/ast-types-flow/issues"},"license":"MIT"}