Class: PackDefinitionBuilder¶
Defined in: builder.ts:57
A class that assists in constructing a pack definition. Use newPack to create one.
Implements¶
Constructors¶
Constructor¶
new PackDefinitionBuilder(
definition?):PackDefinitionBuilder
Defined in: builder.ts:123
Constructs a PackDefinitionBuilder. However, coda.newPack() should be used instead
rather than constructing a builder directly.
Parameters¶
| Parameter | Type |
|---|---|
definition? |
Partial<PackVersionDefinition> |
Returns¶
PackDefinitionBuilder
Properties¶
defaultAuthentication?¶
optionaldefaultAuthentication:Authentication
Defined in: builder.ts:98
See PackVersionDefinition.defaultAuthentication.
Implementation of¶
PackDefinition.defaultAuthentication
formats¶
formats:
Format[]
Defined in: builder.ts:65
See PackVersionDefinition.formats.
Implementation of¶
formulaNamespace?¶
optionalformulaNamespace:string
Defined in: builder.ts:115
Deprecated¶
Implementation of¶
PackDefinition.formulaNamespace
formulas¶
formulas:
Formula[]
Defined in: builder.ts:61
See PackVersionDefinition.formulas.
Implementation of¶
networkDomains¶
networkDomains:
string[]
Defined in: builder.ts:88
See PackVersionDefinition.networkDomains.
Implementation of¶
syncTables¶
syncTables:
SyncTable[]
Defined in: builder.ts:69
See PackVersionDefinition.syncTables.
Implementation of¶
systemConnectionAuthentication?¶
optionalsystemConnectionAuthentication:SystemAuthentication
Defined in: builder.ts:102
See PackVersionDefinition.systemConnectionAuthentication.
Implementation of¶
PackDefinition.systemConnectionAuthentication
version?¶
optionalversion:string
Defined in: builder.ts:113
See PackVersionDefinition.version.
Methods¶
addColumnFormat()¶
addColumnFormat(
format):this
Defined in: builder.ts:273
Adds a column format definition to this pack.
In the web editor, the /ColumnFormat shortcut will insert a snippet of a skeleton format.
Example¶
pack.addColumnFormat({
name: 'MyColumn',
formulaName: 'MyFormula',
});
Parameters¶
| Parameter | Type |
|---|---|
format |
Format |
Returns¶
this
addDynamicSyncTable()¶
addDynamicSyncTable<
K,L,ParamDefsT,SchemaT,ContextT,PermissionsContextT>(definition):this
Defined in: builder.ts:244
Adds a dynamic sync table definition to this pack.
In the web editor, the /DynamicSyncTable shortcut will insert a snippet of a skeleton sync table.
Example¶
pack.addDynamicSyncTable({
name: "MySyncTable",
getName: async funciton (context) => {
const response = await context.fetcher.fetch({method: "GET", url: context.sync.dynamicUrl});
return response.body.name;
},
getName: async function (context) => {
const response = await context.fetcher.fetch({method: "GET", url: context.sync.dynamicUrl});
return response.body.browserLink;
},
...
});
Type Parameters¶
| Type Parameter |
|---|
K extends string |
L extends string |
ParamDefsT extends ParamDefs |
SchemaT extends ObjectSchemaDefinition<K, L> |
ContextT extends SyncExecutionContext<any, any, any> |
PermissionsContextT extends SyncPassthroughData |
Parameters¶
| Parameter | Type |
|---|---|
definition |
DynamicSyncTableOptions<K, L, ParamDefsT, SchemaT, ContextT, PermissionsContextT> |
Returns¶
this
addFormula()¶
addFormula<
ParamDefsT,ResultT,SchemaT>(definition):this
Defined in: builder.ts:176
Adds a formula definition to this pack.
In the web editor, the /Formula shortcut will insert a snippet of a skeleton formula.
Example¶
pack.addFormula({
resultType: ValueType.String,
name: 'MyFormula',
description: 'My description.',
parameters: [
makeParameter({
type: ParameterType.String,
name: 'myParam',
description: 'My param description.',
}),
],
execute: async ([param]) => {
return `Hello ${param}`;
},
});
Type Parameters¶
| Type Parameter |
|---|
ParamDefsT extends ParamDefs |
ResultT extends ValueType |
SchemaT extends Schema |
Parameters¶
| Parameter | Type |
|---|---|
definition |
object & FormulaDefinitionOptions<ParamDefsT, ResultT, SchemaT> |
Returns¶
this
addNetworkDomain()¶
addNetworkDomain(...
domain):this
Defined in: builder.ts:459
Adds the domain that this pack makes HTTP requests to. For example, if your pack makes HTTP requests to "api.example.com", use "example.com" as your network domain.
If your pack make HTTP requests, it must declare a network domain, for security purposes. Coda enforces that your pack cannot make requests to any undeclared domains.
You are allowed one network domain per pack by default. If your pack needs to connect to multiple domains, contact Coda Support for approval.
Example¶
pack.addNetworkDomain('example.com');
Parameters¶
| Parameter | Type |
|---|---|
...domain |
string[] |
Returns¶
this
addSyncTable()¶
addSyncTable<
K,L,ParamDefsT,SchemaT,ContextT,PermissionsContextT>(definition):this
Defined in: builder.ts:206
Adds a sync table definition to this pack.
In the web editor, the /SyncTable shortcut will insert a snippet of a skeleton sync table.
Example¶
pack.addSyncTable({
name: 'MySyncTable',
identityName: 'EntityName',
schema: coda.makeObjectSchema({
...
}),
formula: {
...
},
});
Type Parameters¶
| Type Parameter |
|---|
K extends string |
L extends string |
ParamDefsT extends ParamDefs |
SchemaT extends ObjectSchema<K, L> |
ContextT extends SyncExecutionContext<any, any, any> |
PermissionsContextT extends SyncPassthroughData |
Parameters¶
| Parameter | Type |
|---|---|
definition |
SyncTableOptions<K, L, ParamDefsT, SchemaT, ContextT, PermissionsContextT> |
Returns¶
this
setSystemAuthentication()¶
setSystemAuthentication(
systemAuthentication):this
Defined in: builder.ts:419
Sets this pack to use authentication provided by you as the maker of this pack.
You will need to register credentials to use with this pack. When users use the pack, their requests will be authenticated with those system credentials, they need not register their own account.
In the web editor, the /SystemAuthentication shortcut will insert a snippet of a skeleton
authentication definition.
Example¶
pack.setSystemAuthentication({
type: AuthenticationType.HeaderBearerToken,
});
Parameters¶
| Parameter | Type |
|---|---|
systemAuthentication |
SystemAuthenticationDef |
Returns¶
this
setUserAuthentication()¶
setUserAuthentication(
authDef):this
Defined in: builder.ts:387
Sets this pack to use authentication for individual users, using the authentication method is the given definition.
Each user will need to register an account in order to use this pack.
In the web editor, the /UserAuthentication shortcut will insert a snippet of a skeleton
authentication definition.
By default, this will set a default connection (account) requirement, making a user account
required to invoke all formulas in this pack unless you specify differently on a particular
formula. To change the default, you can pass a defaultConnectionRequirement option into
this method.
Example¶
pack.setUserAuthentication({
type: AuthenticationType.HeaderBearerToken,
});
Parameters¶
| Parameter | Type |
|---|---|
authDef |
UserAuthenticationDef |
Returns¶
this
setVersion()¶
setVersion(
version):this
Defined in: builder.ts:477
Sets the semantic version of this pack version, e.g. '1.2.3'.
This is optional, and you only need to provide a version if you are manually doing semantic versioning, or using the CLI. If using the web editor, you can omit this and the web editor will automatically provide an appropriate semantic version each time you build a version.
Example¶
pack.setVersion('1.2.3');
Parameters¶
| Parameter | Type |
|---|---|
version |
string |
Returns¶
this