2.10.1 • Published 6 months ago

@snickbit/indexer v2.10.1

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

@snickbit/indexer

Simple cli tool to generate index files for almost any project.

Installation

pnpm add -g @snickbit/indexer
yarn global add @snickbit/indexer
npm install -g @snickbit/indexer

Usage

CLI Usage

indexer [source] [--config|c=config/file/path.json] [--dry-run|d]

Once you have a config file, you can use the CLI to generate index files just by running indexer in the same directory as the config file.

Config Options

Indexer is configured by a "indexer.config.json" file or the "indexer" package.json property.

Starter config file for a library:

{
	"source": "src/**/*.{js,jsx,ts,tsx}",
	"output": "src/index.ts",
	"type": "wildcard"
}

source

Type: string | string[] \ Example: "src/*/.{js,jsx,ts,tsx}"

Glob pattern(s) to match the source files.

Note: Generated index files are automatically excluded from the glob pattern. If you want to include a generated index in a parent index, use the include property.

output

Type: string Example: "src/index.ts"

The index file to generate.

Note: It's recommended to output to a file inside the source directory, so that the index file can be committed and/or transpiled by any build tools.

type

Type: string Default: 'wildcard'

The type of exports to generate in the index file.

Options:

  • default - Re-exports the default export of the source file(s) as a named export. \ export {default as Factory} from './src/Factory.ts'
  • wildcard - Re-exports all exports of the source file(s). \ export * from './src/main.ts'
  • group - Re-exports all exports of the source file(s) as a named export. \ export * as Factory from './src/Factory.ts'
  • slug - Re-exports all exports of the source file(s) as a slugged export. \ export * as commands_my_command from './src/commands/my-command.ts'

casing

Type: string

The casing of the exported name(s).

Options:

  • keep - Maintains the casing of the file name, but removes non-variable characters.
  • camel - myCommand
  • pascal - MyCommand
  • snake - my_command
  • lower - mycommand
  • upper - MYCOMMAND

ignore

Type: string[] \

Array of glob patterns to ignore.

include

Type: string[] \

Array of glob patterns to explicitly include. Overrides the ignore option.

Example:

 [
	"**/node_modules/**",
	"**/dist/**"
]

overrides

Type: object

Overrides the type of exports for specific files or globs.

Example:

{
	"source": "src/**/*.{js,jsx,ts,tsx}",
	"output": "src/index.ts",
	"type": "wildcard",
	"overrides": {
		"./src/commands/**/*.ts": "group",
		"./src/models/*.ts": "default"
	}
}

default

Type: object

Generate a default export for the index file.

Options:

  • source - optional glob(s) specific to the default export.
  • type - either 'default', 'group', or 'slug' export type
  • overrides - optional overrides for the default export.

Example:

Config:

{
	"source": "src/**/*.ts",
	"output": "src/index.ts",
	"type": "wildcard",
	"default": {
		"source": "src/factory.ts",
		"type": "default"
	}
}

Results:

// WARNING: This file is automatically generated. Any changes will be lost the next time the generator is run.

import {default as factory} from './factory'

export * from './MyClass'
export * from './config'
export * from './definitions'
export * from './factory'
export * from './helpers'

export default factory

recursive

Type: boolean \ Default: false

Root only. Whether to recursively generate index files for subdirectories. Recursive indexes will always be named index.[ext] and will be placed in the same directory as the source file.

indexes

Type: object[]

Array of indexer configurations. Use this to generate multiple index files. The root configuration will be used as a base and be merged with the other configuration(s).

License

Copyright (c) 2022 - Nicholas Lowe aka Snickbit

MIT License

2.10.1

6 months ago

2.10.0

6 months ago

2.9.2

1 year ago

2.9.1

1 year ago

2.9.4

1 year ago

2.9.3

1 year ago

2.9.6

1 year ago

2.9.5

1 year ago

2.9.8

1 year ago

2.9.7

1 year ago

2.9.0

1 year ago

2.8.4

1 year ago

2.8.3

1 year ago

2.8.2

1 year ago

2.8.1

2 years ago

2.8.0

2 years ago

2.7.0

2 years ago

2.6.1

2 years ago

2.6.0

2 years ago

2.7.2

2 years ago

2.7.1

2 years ago

2.7.3

2 years ago

2.5.25

2 years ago

2.5.26

2 years ago

2.5.27

2 years ago

2.5.28

2 years ago

2.5.21

2 years ago

2.5.22

2 years ago

2.5.23

2 years ago

2.5.24

2 years ago

1.0.0

2 years ago

2.5.20

2 years ago

2.5.8

2 years ago

2.5.9

2 years ago

2.5.18

2 years ago

2.5.19

2 years ago

2.5.14

2 years ago

2.5.15

2 years ago

2.5.16

2 years ago

2.5.17

2 years ago

2.5.10

2 years ago

2.5.11

2 years ago

2.5.12

2 years ago

2.5.13

2 years ago

2.5.7

2 years ago

2.5.6

2 years ago

2.5.5

2 years ago

2.5.4

3 years ago

2.5.3

3 years ago

2.5.2

3 years ago

2.0.72

3 years ago

2.0.71

3 years ago

2.0.70

3 years ago