Skip to main content

Search

Items tagged with: javascript


JSDB 5.0.1 published šŸŽ‰

ā€¢ Fixes #14: Crash if DataProxy getHandler() called on object with null prototype. (https://codeberg.org/small-tech/jsdb/issues/14)

To install update:

npm install @small-tech/jsdb@5.0.1

Learn more about JSDB:

https://codeberg.org/small-tech/jsdb#javascript-database-jsdb

#JavaScriptDatabase #JavaScript #database JSDB #JSDB5 #NodeJS #SmallTech #SmallWeb #web #dev


To really drive home the above šŸ‘† point that 100% test coverage does not mean ā€˜bug freeā€™, just found a bug in JSDBĀ¹ 5.0.0 where running JSON.stringify() on a complex custom object (actually: the automatic Proxy of the custom object created by JSDB) results in an error.

Already have a failing test and about to implement fix.

(Itā€™s at this point where the test harness is invaluable.)

Ā¹ https://codeberg.org/small-tech/jsdb

#JavaScriptDatabase #JavaScript #database #JSDB #JSDB5 #NodeJS #SmallWeb #SmallTech


If you use a parameter object in JavaScript, even if you specify its shape using JSDoc, youā€™ll only get errors if required properties are missing; not if there are extra properties provided.

e.g.,

```js
class A {
/**
@param {{
id:string
}} params
*/
constructor (params) {
Object.assign(this, params)
}
}

// Error:
new A({})

// No error:
new A({id: 'x', foo:'bar'})
```

According to this thread, itā€™s a fact-of-life:

https://stackoverflow.com/questions/49580725/is-it-possible-to-restrict-typescript-object-to-contain-only-properties-defined

#JavaScript #JSDoc


Philosophically, JSDB ā€“ which writes out to native JavaScript logs ā€“ is very much the JavaScript version of SWX, the native data format for Flash that I released around 2007 (where data was written out in native SWF format). I have to say that Iā€™m glad I didnā€™t have to reverse engineer SWF bytecode this time around :)

Hereā€™s a video of a younger me doing an impromptu demo of SWX at some conference or other from 16 years ago.

https://m.youtube.com/watch?v=OM9qOADsO3w

#JSDB #SWX #JavaScript #Flash #flashback


100% test coverage doesnā€™t mean your codeā€™s bug free but it did just lead me to find and fix an issue in JavaScript Database (JSDB)Ā¹ with a code path that wasnā€™t being hit that I would have otherwise missed because it was causing the relevant test to pass.

Ā¹ JSDB is a zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database for the Small Web that persists to a JavaScript transaction log (an append-only log).

https://codeberg.org/small-tech/jsdb

#JavaScript #database #JSDB


Just wrote a note about a little gotcha with default values for destructured properties of parameter objects in JavaScript that has gotten me a few times:

https://codeberg.org/aral/gists/src/branch/main/default-values-for-destructured-properties-of-parameter-objects-in-javascript.md

#JavaScript #destructuring #defaults #parameterObjects #web #dev


Realised last night that JavaScript Database (JSDB) doesnā€™t run the constructor on persisted custom objects (https://codeberg.org/small-tech/jsdb#custom-data-types) when deserialising them because I didnā€™t know that you apparently have to define your constructor manually when using Object.create().

Will fix it today but itā€™s something to watch out for if youā€™re using Object.create() directly.

For more info, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create

#JSDB #customObjects #constructor #bug #JavaScript #NodeJS #SmallTech #SmallWeb


#Fedify is an #ActivityPub server framework in #TypeScript & #JavaScript. It aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.

The key features it provides currently are:

ā€¢ Type-safe objects for Activity Vocabulary (including some vendor-specific extensions)
ā€¢ #WebFinger client and server
ā€¢ HTTP Signatures
ā€¢ Middleware for handling webhooks
ā€¢ #NodeInfo protocol
ā€¢ #Node.js, #Deno, and #Bun support

If you're curious, take a look at the Fedify website! There's comprehensive docs, a demo, a tutorial, example code, and more:

https://fedify.dev/

#fedidev


Little web dev tip: if you have just one address field in your HTML form (e.g., a textarea) but you still want the person filling it in to avail themselves of autocomplete, hereā€™s a little reusable snippet you can use to achieve that:

https://codeberg.org/aral/gists/src/branch/main/single-html-address-field-with-autocomplete-using-javascript.md

(Ideally the web spec should be extended to include a full-address value for the autocomplete attribute.)

#HTML #autocomplete #JavaScript #address #web #dev #tip #code


This is a niche one and will likely not affect any of the (three?) people playing with KittenĀ¹ right now but, in any case:

If you persist custom types to your Kitten database, you might be hit by this bug that was introduced when I released versions of Kitten with minified identifiers.

I briefly wrote about what happened, how you can identify if youā€™re affected, and how you can fix it here:

https://codeberg.org/kitten/app/issues/160#issuecomment-1775375

Ā¹ https://codeberg.org/kitten/app

#SmallWeb #Kitten #web #dev #JSDB #JavaScript


Pragmatic drag and drop lib that can be used with any view layer (react, svelte, vue, angular and so on).

Powers Trello, Jira and Confluence.

#TypeScript #JavaScript #opensource

https://github.com/atlassian/pragmatic-drag-and-drop #webdev


freeCodeCamp
freeCodeCamp's open-source mobile app

freeCodeCamp.org is an online learning platform offering a comprehensive curriculum in #web development and machine learning. The curriculum is self-paced and available free of charge. The App includes challenges, tutorials, Code Radio, and podcasts.
Contribute to freeCodeCamp: https://contribute.freecodecamp.org/

Download: https://play.google.com/store/apps/details?id=org.freecodecamp

#FOSS #Android #OpenSource #Coding #Education #freeCodeCamp #OSS #Podcasts #python #Flutter #JavaScript #iOS


šŸ“: Enhancing pagination with a page selector #Eleventy #WebDev #JavaScript https://coryd.dev/posts/2024/enhancing-pagination-with-a-page-selector/


Hey, all! On stream today we'll be making more updates to the Andromeda website, making use of Eleventy - check them out at @eleventy, and come hang out with us in chat!

https://www.twitch.tv/martine_dowden

#webdev #Eleventy #11ty #HTML #CSS #JavaScript


Just improved the display of error messages in KittenĀ¹.

They should be far more robust now.

Run `kitten update` to get the latest.

:kitten:šŸ’•

Ā¹ https://codeberg.org/kitten/app

#Kitten #errorMessages #stackTrace #web #dev #JavaScript #nodeJS


šŸ“: Building a scrobbler using Plex webhooks, edge functions and blob storage #Eleventy #WebDev #Music #IndieWeb #SmallWeb #JavaScript https://coryd.dev/posts/2024/building-a-scrobbler-using-plex-webhooks-edge-functions-and-blob-storage/

ā‡§