Requires json2yaml
and, of course, ActionHero itself installed in the project. This script is fairly crude
and has some hard-coded behaviors, such as expecting to find data models defined on api.models
. It is provided
here only for reference.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import socket | |
import struct | |
import threading | |
import time | |
GPUDPORT = 59123 | |
APIVERSION = 1 | |
class GPUDServer: | |
def __init__(self, port=GPUDPORT): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const useCrudeEventWrapper = () => { | |
const [someUiThing, setSomeUiThing] = useState(); | |
useEffect(() => { | |
const adapter = new MyAdapter(); | |
adapter.on('somethinghappened', (event) => { | |
setSomeUiThing(event.whatever); | |
}); | |
return () => adapter.off('somethinghappened'); // or however you unsub | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The rain came down in sheets, threatening to drench the small hunter's gear and clothes. | |
John had been tracking his prize elk all morning, but as the storm rolled in, he knew it | |
was time to find shelter. He set his backpack aside and began frantically searching for | |
a place to take cover. | |
Spotting a nearby old oak tree, John gathered his gear and ran towards it. He quickly | |
found a suitable spot near the trunk and began to set up his tarp, securing it with | |
rocks and trees to keep it from blowing away. As he worked, the wind howled through | |
the branches above him. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const AppState = observable({ | |
isAuthenticated: false, | |
profile: null as Profile | null, | |
}); | |
export const setProfile = action((profile: Profile | null) => { | |
if (AppState.isAuthenticated && profile === null) { | |
console.log('[STATE] Logged out'); | |
AppState.isAuthenticated = false; | |
AppState.profile = null; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { loadSecrets } = require('./src/lib/secrets'); | |
exports.default = async function BOOT() { | |
await loadSecrets('path/to/my/secret'); | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const ReconnectingWebSocket = require('reconnecting-websocket'); | |
const axios = require('axios'); | |
const WS = require('ws'); | |
// Written with ES5 metaphors to eliminate the need for Babel in test. | |
const KEY_CHARS = '0123456789abcdefghijklmnopqrstuvwxyz'.split(''); | |
const generateRequestId = () => { | |
const uuid = []; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { Initializer, api } = require('actionhero'); | |
const fs = require('fs'); | |
const shortid = require('../lib/shortid'); | |
const safeApiRequestId = params => (params.apiRequestId || shortid(20)) | |
.replace(/[^0-9a-zA-Z_-]/g, '') | |
.substring(0, 64); | |
function instrumentAction(data) { | |
const { action, params, response, connection } = data; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { Initializer, api } = require('actionhero'); | |
// Adjust to suit... Or optionally move into config... | |
const allowedOrigins = [ | |
'https://staging.mydomain.com', | |
'https://www.mydomain.com', | |
'https://mydomain.com', | |
'http://localhost:8080', | |
]; |
This example provides a proof of concept for simple EJS-based template rendering in ActionHero. Note that EJS is this author's favorite "simple" NodeJS template engine but it could easily be replaced with any other engine you wish.
- Copy
ejs.js
toinitializers/
. - Create a folder called
templates/
and copyleaderboard.js
there. - Copy the sample 'getLeaderboard.js' action to
actions/
.
NewerOlder