kintone-as-code
Version:
A CLI tool for managing kintone applications as code with type-safe TypeScript schemas
39 lines • 1.54 kB
JavaScript
import { KintoneRestAPIClient } from '@kintone/rest-api-client';
import dotenv from 'dotenv';
dotenv.config();
export const getKintoneClient = (authConfig) => {
// Type guard to check if config has API token
if ('apiToken' in authConfig) {
return new KintoneRestAPIClient({
baseUrl: authConfig.baseUrl,
auth: {
apiToken: authConfig.apiToken,
},
});
}
// Type guard to check if config has username/password
if ('username' in authConfig && 'password' in authConfig) {
return new KintoneRestAPIClient({
baseUrl: authConfig.baseUrl,
auth: {
username: authConfig.username,
password: authConfig.password,
},
});
}
throw new Error('Invalid auth configuration: must provide either apiToken or username/password');
};
// Wrapper to allow partial updates while keeping call sites type-safe
export async function updateFormFieldsPartial(client, payload) {
// The official client types may require full properties; cast in one place.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
await client.app.updateFormFields(payload);
}
export function isKintoneApiError(e) {
return typeof e === 'object' && e !== null && 'errors' in e;
}
export async function addFormFieldsLoose(client, payload) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
await client.app.addFormFields(payload);
}
//# sourceMappingURL=kintone-client.js.map