Skip to content

Instantly share code, notes, and snippets.

View adevinwild's full-sized avatar
🧙‍♂️
Looking for new opportunities!

adil adevinwild

🧙‍♂️
Looking for new opportunities!
View GitHub Profile
@adevinwild
adevinwild / user.entity.ts
Created December 29, 2022 18:52
ExtenderUserEntity for Medusa.js
import { User as MedusaUser } from "@medusajs/medusa/dist";
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
import { Entity as MedusaEntity } from "medusa-extender";
import { Store } from "../../store/entities/store.entity";
@MedusaEntity({ override: MedusaUser })
@Entity()
export class User extends MedusaUser {
@Index()
@Column({ nullable: true, type: "text" })
@adevinwild
adevinwild / user.repository.ts
Created December 29, 2022 18:54
ExtendedUserRepository for Medusa
import { UserRepository as MedusaUserRepository } from "@medusajs/medusa/dist/repositories/user";
import { Repository as MedusaRepository, Utils } from "medusa-extender";
import { EntityRepository } from "typeorm";
import { User } from "../entities/user.entity";
@MedusaRepository({ override: MedusaUserRepository })
@EntityRepository(User)
export default class UserRepository extends Utils.repositoryMixin<
User,
MedusaUserRepository
@adevinwild
adevinwild / gist:7a47848853679705163cb19faff365c5
Created December 29, 2022 18:55
UserMigration for Medusa
import { Migration } from "medusa-extender";
import { MigrationInterface, QueryRunner } from "typeorm";
@Migration()
export default class addStoreIdToUser1672134240438
implements MigrationInterface
{
name = "addStoreIdToUser1672134240438";
public async up(queryRunner: QueryRunner): Promise<void> {
@adevinwild
adevinwild / user.service.ts
Created December 29, 2022 18:56
ExtendedUserService for Medusa
import { Service } from "medusa-extender";
import { EntityManager, FindConditions } from "typeorm";
import EventBusService from "@medusajs/medusa/dist/services/event-bus";
import { FindConfig } from "@medusajs/medusa/dist/types/common";
import {
AnalyticsConfigService,
UserService as MedusaUserService,
} from "@medusajs/medusa/dist/services";
import { User } from "../entities/user.entity";
import UserRepository from "../repositories/user.repository";
@adevinwild
adevinwild / store.entity.ts
Created December 29, 2022 18:59
ExtendedStoreEntity for Medusa
import { Store as MedusaStore } from "@medusajs/medusa/dist";
import { Column, Entity, JoinColumn, OneToMany } from "typeorm";
import { Entity as MedusaEntity } from "medusa-extender";
import { User } from "../../user/entities/user.entity";
import { ProductVariant } from "../../product-variant/entities/product-variant.entity";
@MedusaEntity({ override: MedusaStore })
@Entity()
export class Store extends MedusaStore {
@OneToMany(() => User, (user) => user.store)
@adevinwild
adevinwild / server-cli.ts
Last active January 26, 2023 13:32
Handle medusa.js insertion inside a table without the medusa-cli
import { User, UserRoles } from '@medusajs/medusa'
import { CreateUserInput } from '@medusajs/medusa/dist/types/user'
import { validateEmail } from '@medusajs/medusa/dist/utils/is-email'
import arg from 'arg'
import Scrypt from 'scrypt-kdf'
import { getConnection, Repository } from 'typeorm'
type ArgOption = {
createUser?: boolean
@adevinwild
adevinwild / react-quick-classname.code-snippets
Created October 6, 2023 13:16
VSCode - Quickly add React className attribute
{
"Add React className": {
"scope": "javascript,javascriptreact,typescriptreact",
"prefix": "cn",
"body": [
"className='${1}'"
],
"description": "Quickly add a React className attribute"
}
}
@adevinwild
adevinwild / dev-indicator.tsx
Created December 31, 2023 07:24
A simple dev indicator for React using TailwindCSS
const isDev = process.env.NODE_ENV === "development";
const DevIndicator = () => {
if (!isDev) {
return null;
}
return (
<>
<div className="w-full h-full fixed ring-4 opacity-80 ring-orange-300 ring-inset z-[9999]"></div>
@adevinwild
adevinwild / link-with-before-unload.tsx
Created January 30, 2024 13:59
A component to override the Next.js 13+ Link App Router component to block internal changes based on a URL parameter.
@adevinwild
adevinwild / scroll-area.tsx
Last active February 4, 2024 09:42
A shadcn/ui like scroll area that adds a little gradient inside the list with TailwindCSS
import clsx from "clsx";
import {
useEffect,
useRef,
useState,
type HTMLAttributes,
type ReactNode,
type RefObject,
} from "react";