Skip to content

Commit

Permalink
chore: lint:fix
Browse files Browse the repository at this point in the history
  • Loading branch information
ChronicStone committed Dec 3, 2023
1 parent 7656e6b commit 227a528
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 21 deletions.
42 changes: 21 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

## INSTALLATION
```ts
```bash
pnpm add @chronicstone/typed-xlsx
```

Expand Down Expand Up @@ -42,7 +42,7 @@ interface User {

#### 2. Build a sheet schema :
```ts
import { ExcelSchemaBuilder } from "@chronicstone/typed-xlsx"
import { ExcelSchemaBuilder } from '@chronicstone/typed-xlsx'

// OPTIONAL : DEFINE SHARED TRANSFORMERS THAT CAN BE USE TO TRANSFORM VALUE INSERTED INTO A CELL
const transformers = {
Expand All @@ -53,32 +53,32 @@ const transformers = {

// Use the schema builder to define your sheet schema
const userExportSchema = ExcelSchemaBuilder
.create<User>()
.withTransformers(transformers)
.column('id', { value: 'id' }) // TYPE-SAFE OBJECT KEYS ACCESSOR
.column('firstName', { value: 'firstName' })
.column('lastName', { value: 'lastName' })
.column('email', { value: 'email' })
.column('roles', { value: 'roles', transform: 'list' }) // TRANSFORM TYPE-SAFE DEPENDING ON TYPE MATCHING 'value' PROP
.column('nbOrgs', { value: 'organizations', transform: 'arrayLength' }) // IF VALUE KEY DOES MATCH ACCEPTED CELL VALUE, TRANSFORMATION WILL BE REQUIRED
.column('orgs', { value: 'organizations', transform: value => value.map(org => org.name).join(', ') }) // TRANSFORM CAN BE EITHER SHARED TRANSFORMER OR FUNCTION (AUTO-TYPE-SAFE)
.column('generalScore', { value: 'results.general.overall' })
.column('technicalScore', { value: 'results.technical.overall' })
.column('interviewScore', { value: 'results.interview.overall', default: 'N/A' }) // AUTO-HANDLES NULL / UNDEFINED VALUE, PROVIDE DEFAULT IF NEEDED
.build()
.create<User>()
.withTransformers(transformers)
.column('id', { value: 'id' }) // TYPE-SAFE OBJECT KEYS ACCESSOR
.column('firstName', { value: 'firstName' })
.column('lastName', { value: 'lastName' })
.column('email', { value: 'email' })
.column('roles', { value: 'roles', transform: 'list' }) // TRANSFORM TYPE-SAFE DEPENDING ON TYPE MATCHING 'value' PROP
.column('nbOrgs', { value: 'organizations', transform: 'arrayLength' }) // IF VALUE KEY DOES MATCH ACCEPTED CELL VALUE, TRANSFORMATION WILL BE REQUIRED
.column('orgs', { value: 'organizations', transform: value => value.map(org => org.name).join(', ') }) // TRANSFORM CAN BE EITHER SHARED TRANSFORMER OR FUNCTION (AUTO-TYPE-SAFE)
.column('generalScore', { value: 'results.general.overall' })
.column('technicalScore', { value: 'results.technical.overall' })
.column('interviewScore', { value: 'results.interview.overall', default: 'N/A' }) // AUTO-HANDLES NULL / UNDEFINED VALUE, PROVIDE DEFAULT IF NEEDED
.build()
```


#### 3. Safely compose excel file from schemas

```ts
import { ExcelBuilder } from "@chronicstone/typed-xlsx"
import { ExcelBuilder } from '@chronicstone/typed-xlsx'

const arrayBuffer ExcelBuilder
.create()
.sheet('sheet1', { data: users, schema: assessmentExport })
.sheet('sheet2', { data: users, schema: assessmentExport, select: ['firstName', 'lastName', 'email'] }) // OPTIONALLY SELECT COLUMNS YOU WANT
.build()
const arrayBuffer = ExcelBuilder
.create()
.sheet('sheet1', { data: users, schema: assessmentExport })
.sheet('sheet2', { data: users, schema: assessmentExport, select: ['firstName', 'lastName', 'email'] }) // OPTIONALLY SELECT COLUMNS YOU WANT
.build()

fs.writeFileSync('test.xlsx', arrayBuffer)
```
Expand Down
Binary file added test.xlsx
Binary file not shown.

0 comments on commit 227a528

Please sign in to comment.