This repository was archived by the owner on Mar 9, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 7 files changed +103
-16
lines changed Expand file tree Collapse file tree 7 files changed +103
-16
lines changed Original file line number Diff line number Diff line change 5
5
"version" : " 1.0.0" ,
6
6
"main" : " index.js" ,
7
7
"scripts" : {
8
- "build" : " npm run clean && tsc" ,
8
+ "build" : " yarn run clean && yarn tsc" ,
9
9
"clean" : " rimraf ./lib ./build" ,
10
- "lint:fix" : " yarn lint:package && yarn lint:ts --fix && prettier --write ./src" ,
10
+ "lint:fix" : " yarn lint:package && yarn lint:ts --fix && prettier --write ./src && yarn typecheck " ,
11
11
"lint:fix:md" : " prettier --write *.md" ,
12
12
"lint:package" : " prettier-package-json --write ./package.json" ,
13
13
"lint:ts" : " eslint './src/**/*.ts'" ,
14
- "test" : " npm run build && jest --testTimeout 10000 --rootDir ./lib/test" ,
15
- "watch" : " npm run clean && tsc --watch"
14
+ "test" : " yarn run build && jest --testTimeout 10000 --rootDir ./lib/test" ,
15
+ "typecheck" : " yarn tsc --noEmit" ,
16
+ "watch" : " yarn run clean && yarn tsc --watch"
16
17
},
17
18
"dependencies" : {
18
19
"zapier-platform-core" : " 10.1.1"
Original file line number Diff line number Diff line change 1
1
import { Bundle , ZObject } from "zapier-platform-core" ;
2
- import { PatchResponse } from "../types" ;
2
+ import { ZapierCreate , PatchResponse } from "../types" ;
3
3
4
4
type CreateData = {
5
5
mass_g : number ;
@@ -20,15 +20,13 @@ const perform = async (
20
20
return ( data as PatchResponse ) . data ;
21
21
} ;
22
22
23
- export const OrderCreate = {
23
+ export const OrderCreate : ZapierCreate < CreateData > = {
24
24
key : "order" ,
25
25
noun : "order" ,
26
-
27
26
display : {
28
27
label : "Create Order" ,
29
28
description : "Creates a new order." ,
30
29
} ,
31
-
32
30
operation : {
33
31
perform,
34
32
inputFields : [
Original file line number Diff line number Diff line change 1
1
import { Bundle , HttpRequestOptions , ZObject } from "zapier-platform-core" ;
2
- import { ProjectTrigger } from "./triggers" ;
2
+ import { OrderTrigger , ProjectTrigger } from "./triggers" ;
3
3
import { OrderCreate } from "./creates" ;
4
4
import { version as platformVersion } from "zapier-platform-core" ;
5
5
const { version } = require ( "../package.json" ) ; // eslint-disable-line
@@ -33,6 +33,7 @@ export default {
33
33
34
34
triggers : {
35
35
[ ProjectTrigger . key ] : ProjectTrigger ,
36
+ [ OrderTrigger . key ] : OrderTrigger ,
36
37
} ,
37
38
38
39
creates : {
Original file line number Diff line number Diff line change
1
+ export * from "./order" ;
1
2
export * from "./project" ;
Original file line number Diff line number Diff line change
1
+ import { Bundle , ZObject } from "zapier-platform-core" ;
2
+ import { PatchResponse , ZapierTrigger } from "../types" ;
3
+
4
+ const perform = async ( z : ZObject , bundle : Bundle ) : Promise < unknown > => {
5
+ // zapier starts with page 0
6
+ const page = bundle . meta . page + 1 ;
7
+ const { data } = await z . request ( "https://api.usepatch.com/v1/orders" , {
8
+ json : { page } ,
9
+ } ) ;
10
+ return ( data as PatchResponse ) . data ;
11
+ } ;
12
+
13
+ export const OrderTrigger : ZapierTrigger = {
14
+ key : "order" ,
15
+ noun : "order" ,
16
+ display : {
17
+ label : "New Order" ,
18
+ description : "Triggers when a new order is created." ,
19
+ } ,
20
+ operation : {
21
+ type : "polling" ,
22
+ canPaginate : true ,
23
+ perform,
24
+ sample : {
25
+ id : "ord_test_16d8054a8f8502d81a830252d58024bb" ,
26
+ allocation_state : "allocated" ,
27
+ allocations : [
28
+ {
29
+ id : "all_test_be33c362135078d77cce3e8ab242dac1" ,
30
+ mass_g : 34 ,
31
+ offset : {
32
+ id : "off_test_a6a8c407b8f3e9f783f9aa41fb833d1a" ,
33
+ developer : "Carbo Culture" ,
34
+ production : false ,
35
+ serial_number : null ,
36
+ vintage_year : 2020 ,
37
+ } ,
38
+ production : false ,
39
+ } ,
40
+ ] ,
41
+ mass_g : 34 ,
42
+ metadata : {
43
+ foo : "bar" ,
44
+ } ,
45
+ price_cents_usd : "1.0" ,
46
+ production : false ,
47
+ state : "placed" ,
48
+ } ,
49
+ } ,
50
+ } ;
Original file line number Diff line number Diff line change 1
- import { ZObject } from "zapier-platform-core" ;
2
- import { PatchResponse } from "../types" ;
1
+ import { Bundle , ZObject } from "zapier-platform-core" ;
2
+ import { PatchResponse , ZapierTrigger } from "../types" ;
3
3
4
- const perform = async ( z : ZObject ) : Promise < unknown > => {
4
+ const perform = async ( z : ZObject , bundle : Bundle ) : Promise < unknown > => {
5
+ // zapier starts with page 0
6
+ const page = bundle . meta . page + 1 ;
5
7
const { data } = await z . request ( "https://api.usepatch.com/v1/projects" , {
6
- json : { page : 1 } ,
8
+ json : { page } ,
7
9
} ) ;
8
10
return ( data as PatchResponse ) . data ;
9
11
} ;
10
12
11
- export const ProjectTrigger = {
13
+ export const ProjectTrigger : ZapierTrigger = {
12
14
key : "project" ,
13
15
noun : "project" ,
14
-
15
16
display : {
16
17
label : "New Project" ,
17
18
description : "Triggers when a new project is created." ,
18
19
} ,
19
-
20
20
operation : {
21
+ type : "polling" ,
22
+ canPaginate : true ,
21
23
perform,
22
24
sample : {
23
25
id : "pro_test_2e049bbfe8c998ca82025d776f8289ff" ,
Original file line number Diff line number Diff line change
1
+ import { Bundle , ZObject } from "zapier-platform-core" ;
2
+
1
3
export type PatchResponse = { data : unknown } ;
4
+
5
+ type DefaultBundleConfig = Record < string , unknown > ;
6
+
7
+ type ZapierBase < BundleConfig > = {
8
+ key : string ;
9
+ noun : string ;
10
+ display : {
11
+ label : string ;
12
+ description : string ;
13
+ } ;
14
+ operation : {
15
+ perform : ( z : ZObject , bundle : Bundle < BundleConfig > ) => Promise < unknown > ;
16
+ sample : Record < string , unknown > ;
17
+ } ;
18
+ } ;
19
+
20
+ export type ZapierTrigger < BundleConfig = DefaultBundleConfig > = ZapierBase <
21
+ BundleConfig
22
+ > & {
23
+ operation : {
24
+ type : "polling" ;
25
+ canPaginate : true ;
26
+ } ;
27
+ } ;
28
+
29
+ export type ZapierCreate < BundleConfig = DefaultBundleConfig > = ZapierBase <
30
+ BundleConfig
31
+ > & {
32
+ operation : {
33
+ inputFields : Array < Record < string , unknown > > ;
34
+ } ;
35
+ } ;
You can’t perform that action at this time.
0 commit comments