babel-plugin-flow-type-getter

1.0.9 • Public • Published

Access your Flow types from classes before you instantiate objects.


To use :

npm install --save-dev babel-plugin-flow-type-getter babel-plugin-transform-flow-strip-types

.babelrc

{
  "plugins": ["flow-type-getter", "transform-flow-strip-types"]
}

Example

class Test1 {
  prop1: number;
  prop2: Array<User | string>;
  prop3: Client;
  prop4: boolean;
  prop5: Client | User;
  prop6: ?Array<number>;
  prop7: Array<User>;
  prop8: ?{a: string, b: ?number};
 
  static getType() {
    return 'cool';
  }
 
  getTypeTwo() {
    return 'yeah';
  }
}
 
class Test2 {
  prop1: number;
  prop2: Array<User | ID>;
 
  static getType() {
    return 'cool';
  }
 
  getTypeTwo() {
    return 'yeah';
  }
}
 
const obj_test = {
  t1 : Test1,
  t2 : Test2
}
 
const test1_str = 't1';
const testing_this_string = 'prop1';
 
console.log('unary test : ', typeof Test1[testing_this_string]); // number
console.log('binary test : ', typeof obj_test.t1.prop2 == 'User'); // true
console.log('array test : ', Array.isArray(Test1['prop5'])); // false
console.log('array test : ', Array.isArray(obj_test['t2'].prop2)) // true
console.log('undefined test : ', typeof Test1.prop9); // undefined
console.log('binary undefined test : ', typeof Test1.prop9 == 'string'); // false
console.log('array undefined test : ', Array.isArray(Test1.prop9)); // false

Run the example

-Navigate to the example directory of the project
-Open the file index.js in a text editor (only do this if you want to expriment)
-Enter the command npm run build to start the babel --watch process (keep this shell open)
-In a new shell, enter the command npm start to see the values logged out in example/index.js

Package Sidebar

Install

npm i babel-plugin-flow-type-getter

Weekly Downloads

1

Version

1.0.9

License

ISC

Last publish

Collaborators

  • daviddionise