margrave
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

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
file import statement allowed
src/pages/Page.tsx src/user ✔️
src/pages/Page.tsx src/user/type
src/pages/Page.tsx ../user
src/pages/Page.tsx ../user/type
src/user/User.tsx ./type ✔️
src/user/User.tsx .
src/user/User.tsx src/user/type
src/user/User.tsx src/user

Readme

Keywords

none

Package Sidebar

Install

npm i margrave

Weekly Downloads

2

Version

0.1.1

License

MIT

Unpacked Size

109 kB

Total Files

60

Last publish

Collaborators

  • smmoosavi