Telefunc
source link: https://telefunc.com/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Telefunc
// CreateTodo.telefunc.js
// Environment: Node.js server
import { shield, Abort, getContext } from 'telefunc'
// Telefunc makes functions exported in `*.telefunc.js`
// remotely callable from the browser.
export { onNewTodo }
// `shield()` is auto-generated when using TypeScript
shield(onNewTodo, [{ text: shield.type.string }])
async function onNewTodo({ text }) {
const { user } = getContext()
if (user === null) throw Abort()
// With an ORM:
const todoItem = new Todo({text, authorId: user.id})
await todoItem.save()
// Or with SQL:
await execute(
"INSERT INTO todo_items VALUES (:text, :authorId)",
{ text, authorId: user.id }
)
}
// CreateTodo.jsx
// Environment: Browser
// The `CreateTodo.telefunc.js` file is not loaded:
// Telefunc transforms `*.telefunc.js` imports into a
// thin HTTP client.
import { onNewTodo } from './CreateTodo.telefunc.js'
async function onClick(form) {
const text = form.input.value
// Behind the scenes, Telefunc makes an HTTP request
await onNewTodo({ text })
}
function CreateTodo() {
return (
<form>
<input input="text"></input>
<button onClick={onClick}>Add To-Do</button>
</form>
)
}
💫 Simple
With Telefunc, you get a simple frontend-backend relationship: it's just a set of remote functions.
Your frontend can directly use any SQL/ORM query to retrieve & mutate data.
Permissions
Telefunc enables programmatically defined permissions. It's both simple and flexible.
Telefunc introduces new techniques that enable advanced permissions and increased safety.
🔌 Any Stack
Telefunc supports Next.js, CRA, Nuxt, SvelteKit, Vite, vite-plugin-ssr, React Native and any framework based on Webpack, Babel, Parcel or Vite.
You want to change your stack? Bring Telefunc along.
⚡ Performance
The frontend can directly tap into the full power of the server. You can use highly tailored & optimized SQL/ORM queries for highly performant data retrieval and mutations.
TypeScript
Seamless TypeScript support out-of-the-box.
Use your types across the frontend and backend for end-to-end type safety, including runtime validation.
💎 Rock-solid
The source code of Telefunc has no known bug (bugs are fixed swiftly) and every release is assailed against a heavy suite of automated tests.
Have a question? Want a feature? Found a bug? Join our Discord or open a GitHub ticket.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK