Skip to content

Instantly share code, notes, and snippets.

View ezzabuzaid's full-sized avatar
🎯
Focusing

ezzabuzaid ezzabuzaid

🎯
Focusing
View GitHub Profile
@ezzabuzaid
ezzabuzaid / encryption.ts
Last active December 12, 2024 12:21
Secrets Managment
export async function generateKey() {
const sodium = await import('libsodium-wrappers').then(
({ default: sodium }) => sodium.ready.then(() => sodium)
);
return sodium.crypto_secretbox_keygen();
}
export async function encrypt(key: ArrayBuffer, plain: string) {
const sodium = await import('libsodium-wrappers').then(
({ default: sodium }) => sodium.ready.then(() => sodium)
@ezzabuzaid
ezzabuzaid / locals.entity.ts
Last active December 8, 2024 12:54
january translation tables
import { Column, Entity, PrimaryColumn } from 'typeorm';
@Entity()
export class Locales {
@PrimaryColumn({ nullable: false })
code!: string;
@Column({ unique: true, nullable: false })
displayName!: string;
@ezzabuzaid
ezzabuzaid / ajv.ts
Last active March 12, 2025 01:06
January archive
import Ajv from 'ajv';
import addErrors from 'ajv-errors';
import addFormats from 'ajv-formats';
import validator from 'validator';
import { ErrorObject, JSONSchemaType } from 'ajv';
import { PartialSchema } from 'ajv/dist/types/json-schema';
import { ProblemDetailsException } from 'rfc-7807-problem-details';
const ajv = new Ajv({
allErrors: true,
useDefaults: true,
@ezzabuzaid
ezzabuzaid / client.ts
Last active November 19, 2024 12:00
observe file changes in node.js
import { createInterface } from 'readline';
import { observeFile } from './observer.ts';
import { PassThrough } from 'stream';
const controller = new AbortController();
const signal = controller.signal;
const duplex = new PassThrough();
const reader = createInterface({
input: duplex,
import fs, { rm } from 'fs';
import { mkdir, writeFile } from 'fs/promises';
import git from 'isomorphic-git';
import http from 'isomorphic-git/http/node';
import os from 'os';
import { dirname, join } from 'path';
import { Context, Inject, Injectable, ServiceLifetime } from 'tiny-injector';
import { v4 } from 'uuid';
import { safeFail } from '@faslh/utils';
@ezzabuzaid
ezzabuzaid / rxjs-server.ts
Created October 2, 2024 20:54
rxjs-server.mjs
import { Console } from 'node:console';
import { createReadStream, createWriteStream } from 'node:fs';
import {
type IncomingMessage,
type ServerResponse,
createServer,
} from 'node:http';
import { Readable } from 'node:stream';
import ollama from 'ollama';
import {
@ezzabuzaid
ezzabuzaid / config.json
Last active August 13, 2024 12:36
january-todo.md
{
"projectName": "Todo API",
"title": "Todo API",
"description": "A simple API for managing todos",
"extensions": ["core", "identity", "postgresql", "hono", "fly"],
"sourceCode": "",
"author": {
"name": "January",
"url": "https://github.com/JanuaryLabs"
}
projectName extensions
HTTP trigger project
core,identity,hono,fly,postgresql,google-cloud-storage
export default project(
  feature('blogs', {
    workflows: [
 workflow('UploadSingleFileWorkflow', {
---
projectName: "HTTP trigger project"
extensions: "core,identity,hono,fly,postgresql"
---
```ts
export default project(
feature('InventoryFeature', {
policies: {
cambodiaClient: policy.country('Cambodia'),
projectName extensions
HTTP trigger project
core,identity,hono,fly,postgresql,github
export default project(
  feature('products', {
    tables: {
 issues: table({