1.0.0 • Published 6 years ago

create-index-exports v1.0.0

Weekly downloads
2
License
ISC
Repository
github
Last release
6 years ago

createIndexExports.js

I use this structure for react components and other things:

  Components\
    AwesomeButton\
      AwesomeButton.js
      index.js
    NicyHeader\
    SexyDrawer\
    SomeOther\

Also i use absolute paths and imports like:

  import { AwesomeButton, NicyHeader, SexyDrawer } from 'Components'

if i run:

  $ node ./createIndexExports.js ./Components

It will create index.js file with all exports:

  import AwesomeButton from './AwesomeButton'
  import NicyHeader from './NicyHeader'
  ...
  export {
    AwesomeButton,
    NicyHeader,
    ...
  }

It can be useful with other tools. For ex., i have dumb script, that adds an empty component with given name. like:

# component.sh
component="import React, { Component } from 'react'

export default class $1 extends Component {
  render () {
    return (<div />)
  }
}"

index="import $1 from './$1'

export default $1"

mkdir ./src/Components/$1
printf '%s\n' "$component" >> ./src/Components/$1/$1.js
printf '%s\n' "$index" >> ./src/Components/$1/index.js

node ./tools/createIndexExports.js ./src/Components

I run:

  $ ./component.sh SomeComponent

Now i have new import-ready component. Magic!