Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module.exports = {
// This tells ESLint to load the config from the package `eslint-config-custom`
extends: ['custom'],

root: true,
settings: {
next: {
rootDir: ['apps/*/'],
},
},
};
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: 2
updates:
# Enable version updates for npm
- package-ecosystem: 'npm'
# Look for `package.json` and `lock` files in the `root` directory
directory: '/'
# Check the npm registry for updates every day
schedule:
interval: 'weekly'
time: '11:00'
timezone: 'Asia/Seoul'
reviewers:
- 'mononoke-choi'
# Raise all npm pull requests with an assignee
assignees:
- 'mononoke-choi'
56 changes: 56 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# vercel
.vercel

# dependencies
node_modules
.pnp
.pnp.js
.idea

# testing
coverage

# next.js
.next/
.swc/
out/
build

# expo
*.jks
*.p8
*.p12
*.key
*.mobileprovision
*.orig.*
.expo*
web-build/
ios
android

# misc
.DS_Store
*.pem
dist

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env
.env.development.local
.env.test.local
.env.production.local
env.json

# turbo
.turbo

# codegen
__generated__
.tamagui
.metro-health-check*
5 changes: 5 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

yarn run lint
yarn run prettier
11 changes: 11 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Add files here to ignore them from prettier formatting
.bundle
coverage
ios
android
dist
.vercel
.next
.expo*
__generated__
.tamagui
5 changes: 5 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
arrowParens: 'avoid',
singleQuote: true,
trailingComma: 'all',
};
73 changes: 73 additions & 0 deletions @types/eas.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
interface EASBuildPayload {
id: string;
accountName: string;
projectName: string;
buildDetailsPageUrl: string;
parentBuildId?: string;
appId: string;
initiatingUserId: string;
cancelingUserId?: null;
platform: 'android' | 'ios';
status: 'errored' | 'finished' | 'canceled';
artifacts: {
buildUrl?: string;
logsS3KeyPrefix: string;
};
metadata: {
appName: string;
username: string;
workflow: string;
appVersion: string;
appBuildVersion: string;
cliVersion: string;
sdkVersion: string;
buildProfile: 'development' | 'preview' | 'production';
distribution: string;
appIdentifier: string;
gitCommitHash: string;
gitCommitMessage: string;
runtimeVersion: string;
channel?: string;
releaseChannel?: string;
reactNativeVersion: string;
trackingContext: {
platform: string;
account_id: string;
dev_client: false;
project_id: string;
tracking_id: string;
project_type: string;
dev_client_version: string;
};
credentialsSource: string;
isGitWorkingTreeDirty: false;
message: string;
runFromCI: false;
};
metrics: {
memory: number;
buildEndTimestamp: number;
totalDiskReadBytes: number;
buildStartTimestamp: number;
totalDiskWriteBytes: number;
cpuActiveMilliseconds: number;
buildEnqueuedTimestamp: number;
totalNetworkEgressBytes: number;
totalNetworkIngressBytes: number;
};
error?: {
message: string;
errorCode: string;
};
createdAt: string;
enqueuedAt: string;
provisioningStartedAt: string;
workerStartedAt: string;
completedAt: string;
updatedAt: string;
expirationDate: string;
priority: 'high' | 'normal' | 'low';
resourceClass: string;
actualResourceClass: string;
maxRetryTimeMinutes: number;
}
6 changes: 6 additions & 0 deletions @types/process.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
declare namespace NodeJS {
export interface ProcessEnv {
APP_ENV: 'production' | 'development' | 'preview';
SECRET_WEBHOOK_KEY: string;
}
}
15 changes: 15 additions & 0 deletions @types/react-native-svg-transformer.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
declare module '*.svg' {
// eslint-disable-next-line import/no-namespace
import * as React from 'react';
import type { SvgProps } from 'react-native-svg';

export type ExtendedSVGProps = SvgProps & {
color1?: string;
color2?: string;
color3?: string;
color4?: string;
};

const content: React.FC<ExtendedSVGProps>;
export default content;
}
139 changes: 139 additions & 0 deletions @types/service-worker.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
interface ExtendableEvent extends Event {
waitUntil(fn: Promise<any>): void;
}

interface PushSubscriptionChangeEvent extends ExtendableEvent {
readonly newSubscription?: PushSubscription;
readonly oldSubscription?: PushSubscription;
}

// Client API

declare class Client {
frameType: ClientFrameType;
id: string;
url: string;
focused: boolean;

focus(): void;

postMessage(message: any): void;
}

interface Clients {
claim(): Promise<any>;

get(id: string): Promise<Client>;

matchAll(options?: ClientMatchOptions): Promise<Client[]>;

openWindow(url: string): Promise<void>;
}

interface ClientMatchOptions {
includeUncontrolled?: boolean;
type?: ClientMatchTypes;
}

interface WindowClient {
focused: boolean;
visibilityState: WindowClientState;

focus(): Promise<WindowClient>;

navigate(url: string): Promise<WindowClient>;
}

type ClientFrameType = 'auxiliary' | 'top-level' | 'nested' | 'none';
type ClientMatchTypes = 'window' | 'worker' | 'sharedworker' | 'all';
type WindowClientState = 'hidden' | 'visible' | 'prerender' | 'unloaded';

// Fetch API

interface FetchEvent extends ExtendableEvent {
clientId: string | null;
request: Request;

respondWith(response: Promise<Response> | Response): Promise<Response>;
}

interface InstallEvent extends ExtendableEvent {
activeWorker: ServiceWorker;
}

interface ActivateEvent extends ExtendableEvent {}

// Notification API

interface NotificationEvent extends ExtendableEvent {
action: string;
notification: Notification;
}

// Push API

interface PushEvent extends ExtendableEvent {
data: PushMessageData;
}

interface PushMessageData {
arrayBuffer(): ArrayBuffer;

blob(): Blob;

json(): any;

text(): string;
}

// Sync API

interface SyncEvent extends ExtendableEvent {
lastChance: boolean;
tag: string;
}

interface ExtendableMessageEvent extends ExtendableEvent {
data: any;
source: Client | object;
}

// ServiceWorkerGlobalScope

interface ServiceWorkerGlobalScope {
__WB_DISABLE_DEV_LOGS: boolean;

caches: CacheStorage;
clients: Clients;
registration: ServiceWorkerRegistration;

addEventListener(
event: 'activate',
fn: (event?: ExtendableEvent) => any,
): void;

addEventListener(
event: 'message',
fn: (event?: ExtendableMessageEvent) => any,
): void;

addEventListener(event: 'fetch', fn: (event?: FetchEvent) => any): void;

addEventListener(
event: 'install',
fn: (event?: ExtendableEvent) => any,
): void;

addEventListener(event: 'push', fn: (event?: PushEvent) => any): void;

addEventListener(
event: 'notificationclick',
fn: (event?: NotificationEvent) => any,
): void;

addEventListener(event: 'sync', fn: (event?: SyncEvent) => any): void;

fetch(request: Request | string): Promise<Response>;

skipWaiting(): Promise<void>;
}
7 changes: 7 additions & 0 deletions @types/tamagui.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import type { TamaguiConfig } from 'ui/src/tamagui.config';

declare module 'tamagui' {
// overrides TamaguiCustomConfig so your custom types
// work everywhere you import `tamagui`
type TamaguiCustomConfig = TamaguiConfig;
}
Loading