Skip to content

JavaScript is amazing. Managing project dependencies less so. This repo utilizes the Airtable Scripting app to deliver more robust prototyping capabilities despite the block's sanitized, DOM- and HTML-less environment.

Notifications You must be signed in to change notification settings

dddominikk/airtable-script-extender

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Airtable Script Extender

JavaScript is amazing.

Project management less so.

Airtable's Scripting app allows us to cut through a lot of red tape in the form of npm-prefixed CLI commands.

This repo aimed to make the most that luxury. It's also what led to the creation of Modulartable/Mable, some year or so later.

Every airtable-script-extender module was transitioned to the main Mable repository and continues being supported. And besides Finnicky Filtering, each and every one has been signifivantly improved since that time. Some of those -- and others -- are also available via Airtable Universe. But the main repository is the aforementioned Gumroad release.

Same licensing and condition applies. contPing me if you need/want to use any particular component (file) commercially and I'll give you a written permission within a day or two. Some of the included scripts might already be licensed individually. You should be able to recognize them, but just to be sure: if a source code starts with a sizable block of text telling you it's a free software license - it's a free software license, I promise.

Scripts

Key traits:

  • single-purpose
  • zero problems (totally not jinxing it)
  • written on request, a straightforward method of keeping tabs on the latest record in a given table
  • regardless of how you define "latest"
  • a prototypal approach to building out more complex, nuanced user interfaces
  • relative to what you're used to due to the constraints of the Scripting app environment
  • fully load all records in a given table
  • the result includes mapped out cell values covering every field from the source
  • multifaceted
  • may not be entirely polished in all respects
  • mostly proof-of-concepts meant to either:
    • intrigue newcomers to ECMAScript
    • broaden the horizons of moderately proficient coders
    • entertain veterans, hopefully including those who inspired most of these stunts
  • a proof-of-concept illustrating a technique for implementing
    • branching logic
    • potentially including user input
    • asynchronously
    • before reaching line two of the Scripting block
    • how's that for a strong start?
  • the original module system prototype, or thereabout
  • meant to be used alongside stateChange.js
  • an alternative module system leveraging Java-like class syntax from ES&
  • needs to be in a separate Scripting block as you can't have a single one of those responding to repeated input from the (Air)table itself while it's still running
    • well, with this little trick you can
    • got the idea while lurking at community.airtable.com
    • someone specifically described this workaround for using table buttons as actual Scripting app controls, and not just initializers
    • the promise/thenable-heavy implementation seemed fitting for such a straightforward functionality
    • in reality, I might have actually overthunk this one, code review in progress

Misc

  • playful experiments mostly intended as distractions
  • their purpose doesn's stretch far beyond making you go "aww, neat" or "ooh, really?"
  • fully animated digital die factory using the ES6 class syntax
  • a charmingly unpredictable digital clock

Background

The Block SDK has crashed and burned my Windows installation one too many times.

Also, I'm lazy, so I'm finding ways to extend the Scripting block from inside the app itself. This feeling of entitlement has so far culminated in me writing a mini application state manager (React in React, basically, sans the 'wtfisthis' effect) that I'm gradually releasing into the public domain as time permits.

About

JavaScript is amazing. Managing project dependencies less so. This repo utilizes the Airtable Scripting app to deliver more robust prototyping capabilities despite the block's sanitized, DOM- and HTML-less environment.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published