Skip to content

Commit

Permalink
feat: adding keywords to autocast (#457)
Browse files Browse the repository at this point in the history
* feat: adding keywords

* fix: category

* feat: proper readme

* Update plugins/autocast/README.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update plugins/autocast/README.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update plugins/autocast/README.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update plugins/autocast/README.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update plugins/autocast/README.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: update url in package json

* Add string to casting types

* Apply suggestions from coderabbitai

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Carl Brugger <[email protected]>
  • Loading branch information
3 people authored Apr 3, 2024
1 parent a649fc0 commit 4574c86
Show file tree
Hide file tree
Showing 3 changed files with 116 additions and 5 deletions.
5 changes: 5 additions & 0 deletions .changeset/lovely-dogs-reply.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@flatfile/plugin-autocast': patch
---

Adding keywords
113 changes: 109 additions & 4 deletions plugins/autocast/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,112 @@
# @flatfile/autocast
# @flatfile/plugin-autocast
**Automatically cast values in Flatfile to their appropriate types with this plugin.**

This package automatically converts the initial user-inputted data to the correct type needed for that field so it can be processed.

## Get Started
The `@flatfile/plugin-autocast` plugin is an opinionated transformer that will
automatically convert the data in the Sheet to match the type defined by the
Blueprint.

Follow [this guide](https://flatfile.com/docs/plugins/transform/autocast) to learn how to use the plugin.

**Event Type:**
`listener.on('commit:created')`


**Supported field types:**
`number`, `boolean`, `date`


## Parameters

#### `sheetSlug` *string* (required)

The `sheetSlug` indicates the slug name of the sheet you want to monitor.

#### `fieldFilters` *string[]*

Use the `fieldFilters` parameter to select specific fields to monitor. Without
any specified `fieldFilters`, the plugin will automatically monitor
all castable fields, including strings, numbers, booleans, and dates.


#### `options.chunkSize` default="10_000" *number*

The `chunkSize` parameter allows you to specify the quantity of records to in
each chunk.

#### `options.parallel` default="1" *number*

The `parallel` parameter allows you to specify the number of chunks to process
in parallel.


## API Calls

- `api.sheets.get`

## Imported NPM Packages

- [`@flatfile/[email protected]+`](https://www.npmjs.com/package/@flatfile/api)
- [`@flatfile/[email protected]+`](https://www.npmjs.com/package/@flatfile/listener)
- [`@flatfile/[email protected]+`](./record-hook)
- `@flatfile/[email protected]+`

## Usage

The `autocast` plugin will listen for the `commit:created` event and cast strings, numbers, booleans,
and dates to the appropriate Blueprint type. Note that the `recordHook` and `bulkRecordHook` plugins
listen for the same event type. Plugins will fire in the order they are placed in the listener.

### Strings

Numbers and booleans are transformed from strings to their respective types (i.e., `'1'` to `1`, `"true"` to `true`).

### Numbers

String numbers (i.e `'1'`), string decimals (i.e `'1.1'`), and string numbers with commas (i.e `'1,000'`)
are interpreted as numbers.

### Booleans

`'1'`, `'yes'`, `'true'`, `'on'`, `'t'`, `'y'`, and `1` are interpreted as truthy values.

`'-1'`, `'0'`, `'no'`, `'false'`, `'off'`, `'f'`, `'n'`, `0`, `-1` are interpreted as falsy values.

### Dates

Date strings and numbers are cast to UTC strings. For example, `YYYY-MM-DD...` formats are treated as ISO 8601 dates (UTC), whereas other formats are considered local time and converted to UTC:

- `'2023-08-16'` => `'Wed, 16 Aug 2023 00:00:00 GMT'`
- `'08-16-2023'` => `'Wed, 16 Aug 2023 00:00:00 GMT'`
- `'08/16/2023'` => `'Wed, 16 Aug 2023 00:00:00 GMT'`
- `'Aug 16, 2023'` => `'Wed, 16 Aug 2023 00:00:00 GMT'`
- `'August 16, 2023'` => `'Wed, 16 Aug 2023 00:00:00 GMT'`
- `'2023-08-16T00:00:00.000Z'` => `'Wed, 16 Aug 2023 00:00:00 GMT'`
- `1692144000000` => `'Wed, 16 Aug 2023 00:00:00 GMT'`

**install**
```bash
npm i @flatfile/plugin-autocast
```

**import**
```js
import { autocast } from "@flatfile/plugin-autocast";
```

**listener.js**
```js
listener.use(autocast("sheetSlug"));
```
**listener.js w/ fieldFilters**
```js
listener.use(autocast("sheetSlug", ["numberField", "dateField"]));
```
**listener.js w/ fieldFilters & options**
```js
listener.use(
autocast("sheetSlug", ["numberField", "dateField"], {
chunkSize: 10_000,
parallel: 2,
})
);
```
3 changes: 2 additions & 1 deletion plugins/autocast/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "@flatfile/plugin-autocast",
"version": "0.7.7",
"url": "https://github.com/FlatFilers/flatfile-plugins/tree/main/plugins/autocast",
"description": "A plugin for automatically casting values in Flatfile.",
"registryMetadata": {
"category": "transform"
Expand Down Expand Up @@ -31,7 +32,7 @@
"check": "tsc ./**/*.ts --noEmit --esModuleInterop",
"test": "jest ./**/*.spec.ts --config=../../jest.config.js --runInBand"
},
"keywords": [],
"keywords": ["flatfile-plugins", "category-transform", "featured"],
"author": "Alex Hollenbeck",
"repository": {
"type": "git",
Expand Down

0 comments on commit 4574c86

Please sign in to comment.