0.1.1 • Published 4 years ago

margrave v0.1.1

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

margrave

NPM version NPM downloads Build Status codecov

maintain the defense of borders of modules

Install

yarn global add margrave

Usage

cd path-to-project
margrave

The margrave command line scans import statements and checks some conventions about relative and absolute imports.

Conventions

  • any directory contains aa index.ts files is a territory
  • index.ts files only should contain re-exports
  • some functions, types, and variables can be re-exported from index.ts as public
  • any ts or tsx file inside a territory can import from any file inside the territory and this import should be relative
  • any ts or tsx file can import from index.ts of other territories, and this import should be absolute

Example

src
|-- app.tsx
|-- pages
|   |-- index.ts
|   `-- Page.tsx
`-- user
    |-- index.ts
    |-- type.ts
    `-- User.tsx
fileimport statementallowed
src/pages/Page.tsxsrc/user:heavy_check_mark:
src/pages/Page.tsxsrc/user/type:x:
src/pages/Page.tsx../user:x:
src/pages/Page.tsx../user/type:x:
src/user/User.tsx./type:heavy_check_mark:
src/user/User.tsx.:x:
src/user/User.tsxsrc/user/type:x:
src/user/User.tsxsrc/user:x: