-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit fd86895
Showing
50 changed files
with
18,549 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# editorconfig.org | ||
root = true | ||
|
||
[*] | ||
charset = utf-8 | ||
end_of_line = lf | ||
indent_size = 2 | ||
indent_style = space | ||
insert_final_newline = true | ||
trim_trailing_whitespace = true |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# These environment variables will be used by default if you do not create any | ||
# yourself in .env. This file should be safe to check into your version control | ||
# system. Any custom values should go in .env and .env should *not* be checked | ||
# into version control. | ||
|
||
# schema.prisma defaults | ||
DATABASE_URL=file:./dev.db | ||
|
||
# location of the test database for api service scenarios (defaults to ./.redwood/test.db if not set) | ||
# TEST_DATABASE_URL=file:./.redwood/test.db | ||
|
||
# disables Prisma CLI update notifier | ||
PRISMA_HIDE_UPDATE_MESSAGE=true | ||
|
||
|
||
# Option to override the current environment's default api-side log level | ||
# See: https://redwoodjs.com/docs/logger for level options: | ||
# trace | info | debug | warn | error | silent | ||
# LOG_LEVEL=debug | ||
|
||
# Sets an app-specific secret used to sign and verify your own app's webhooks. | ||
# For example if you schedule a cron job with a signed payload that later will | ||
# then invoke your api-side webhook function you will use this secret to sign and the verify. | ||
# Important: Please change this default to a strong password or other secret | ||
WEBHOOK_SECRET=THIS_IS_NOT_SECRET_PLEASE_CHANGE |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# DATABASE_URL=file:./dev.db | ||
# TEST_DATABASE_URL=file:./.redwood/test.db | ||
# PRISMA_HIDE_UPDATE_MESSAGE=true | ||
# LOG_LEVEL=trace |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
.idea | ||
.DS_Store | ||
.env | ||
.netlify | ||
.redwood | ||
dev.db* | ||
dist | ||
dist-babel | ||
node_modules | ||
yarn-error.log | ||
web/public/mockServiceWorker.js | ||
web/types/graphql.d.ts | ||
api/types/graphql.d.ts |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
lts/* |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"recommendations": [ | ||
"redwoodjs.redwood", | ||
"dbaeumer.vscode-eslint", | ||
"eamodio.gitlens", | ||
"ofhumanbondage.react-proptypes-intellisense", | ||
"mgmcdermott.vscode-language-babel", | ||
"wix.vscode-import-cost", | ||
"pflannery.vscode-versionlens", | ||
"editorconfig.editorconfig", | ||
"prisma.prisma", | ||
"graphql.vscode-graphql" | ||
], | ||
"unwantedRecommendations": [] | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
"version": "0.2.0", | ||
"configurations": [ | ||
{ | ||
"command": "yarn redwood dev", | ||
"name": "launch development", | ||
"request": "launch", | ||
"type": "node-terminal" | ||
} | ||
] | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
"editor.tabSize": 2, | ||
"files.trimTrailingWhitespace": true, | ||
"editor.formatOnSave": false, | ||
"editor.codeActionsOnSave": { | ||
"source.fixAll.eslint": true | ||
}, | ||
"[prisma]": { | ||
"editor.formatOnSave": true | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2021 Redwood | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Redwood | ||
|
||
> **NOTICE:** RedwoodJS is very close to a stable version 1.0. In the last two years, | ||
> the project has matured significantly and is already used in production by a number | ||
> of startups. We intend to have a 1.0 release candidate before the end of 2021 and | ||
> to release a truly production-ready 1.0 in early 2022. | ||
## Getting Started | ||
- [Tutorial](https://redwoodjs.com/tutorial/welcome-to-redwood): getting started and complete overview guide. | ||
- [Docs](https://redwoodjs.com/docs/introduction): using the Redwood Router, handling assets and files, list of command-line tools, and more. | ||
- [Redwood Community](https://community.redwoodjs.com): get help, share tips and tricks, and collaborate on everything about RedwoodJS. | ||
|
||
### Setup | ||
|
||
We use Yarn as our package manager. To get the dependencies installed, just do this in the root directory: | ||
|
||
```terminal | ||
yarn install | ||
``` | ||
|
||
### Fire it up | ||
|
||
```terminal | ||
yarn redwood dev | ||
``` | ||
|
||
Your browser should open automatically to `http://localhost:8910` to see the web app. Lambda functions run on `http://localhost:8911` and are also proxied to `http://localhost:8910/.redwood/functions/*`. |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
datasource db { | ||
provider = "sqlite" | ||
url = env("DATABASE_URL") | ||
} | ||
|
||
generator client { | ||
provider = "prisma-client-js" | ||
binaryTargets = "native" | ||
} | ||
|
||
// Define your own datamodels here and run `yarn redwood prisma migrate dev` | ||
// to create migrations for them and apply to your dev DB. | ||
// TODO: Please remove the following example: | ||
model UserExample { | ||
id Int @id @default(autoincrement()) | ||
email String @unique | ||
name String? | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
module.exports = require('@redwoodjs/testing/config/jest/api') |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"name": "api", | ||
"version": "0.0.0", | ||
"private": true, | ||
"dependencies": { | ||
"@redwoodjs/api": "0.41.0", | ||
"@redwoodjs/graphql-server": "0.41.0" | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
/** | ||
* This file allows you to configure the Fastify Server settings | ||
* used by the RedwoodJS dev server. | ||
* | ||
* It also applies when running the api server with `yarn rw serve`. | ||
* | ||
* For the Fastify server options that you can set, see: | ||
* https://www.fastify.io/docs/latest/Reference/Server/#factory | ||
* | ||
* Examples include: logger settings, timeouts, maximum payload limits, and more. | ||
* | ||
* Note: This configuration does not apply in a serverless deploy. | ||
*/ | ||
|
||
/** @type {import('fastify').FastifyServerOptions} */ | ||
const config = { | ||
requestTimeout: 15_000, | ||
logger: { | ||
level: process.env.NODE_ENV === 'development' ? 'debug' : 'warn', | ||
}, | ||
} | ||
|
||
module.exports = config |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import { mockRedwoodDirective, getDirectiveName } from '@redwoodjs/testing/api' | ||
|
||
import requireAuth from './requireAuth' | ||
|
||
describe('requireAuth directive', () => { | ||
it('declares the directive sdl as schema, with the correct name', () => { | ||
expect(requireAuth.schema).toBeTruthy() | ||
expect(getDirectiveName(requireAuth.schema)).toBe('requireAuth') | ||
}) | ||
|
||
it('requireAuth has stub implementation. Should not throw when current user', () => { | ||
// If you want to set values in context, pass it through e.g. | ||
// mockRedwoodDirective(requireAuth, { context: { currentUser: { id: 1, name: 'Lebron McGretzky' } }}) | ||
const mockExecution = mockRedwoodDirective(requireAuth, { context: {} }) | ||
|
||
expect(mockExecution).not.toThrowError() | ||
}) | ||
}) |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import gql from 'graphql-tag' | ||
|
||
import { createValidatorDirective } from '@redwoodjs/graphql-server' | ||
|
||
import { requireAuth as applicationRequireAuth } from 'src/lib/auth' | ||
|
||
export const schema = gql` | ||
""" | ||
Use to check whether or not a user is authenticated and is associated | ||
with an optional set of roles. | ||
""" | ||
directive @requireAuth(roles: [String]) on FIELD_DEFINITION | ||
` | ||
|
||
const validate = ({ directiveArgs }) => { | ||
const { roles } = directiveArgs | ||
applicationRequireAuth({ roles }) | ||
} | ||
|
||
const requireAuth = createValidatorDirective(schema, validate) | ||
|
||
export default requireAuth |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import { getDirectiveName } from '@redwoodjs/testing/api' | ||
|
||
import skipAuth from './skipAuth' | ||
|
||
describe('skipAuth directive', () => { | ||
it('declares the directive sdl as schema, with the correct name', () => { | ||
expect(skipAuth.schema).toBeTruthy() | ||
expect(getDirectiveName(skipAuth.schema)).toBe('skipAuth') | ||
}) | ||
}) |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import gql from 'graphql-tag' | ||
|
||
import { createValidatorDirective } from '@redwoodjs/graphql-server' | ||
|
||
export const schema = gql` | ||
""" | ||
Use to skip authentication checks and allow public access. | ||
""" | ||
directive @skipAuth on FIELD_DEFINITION | ||
` | ||
|
||
const skipAuth = createValidatorDirective(schema, () => { | ||
return | ||
}) | ||
|
||
export default skipAuth |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import { createGraphQLHandler } from '@redwoodjs/graphql-server' | ||
|
||
import directives from 'src/directives/**/*.{js,ts}' | ||
import sdls from 'src/graphql/**/*.sdl.{js,ts}' | ||
import services from 'src/services/**/*.{js,ts}' | ||
|
||
import { db } from 'src/lib/db' | ||
import { logger } from 'src/lib/logger' | ||
|
||
export const handler = createGraphQLHandler({ | ||
loggerConfig: { logger, options: {} }, | ||
directives, | ||
sdls, | ||
services, | ||
onException: () => { | ||
// Disconnect from your database with an unhandled exception. | ||
db.$disconnect() | ||
}, | ||
}) |
Empty file.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
/** | ||
* Once you are ready to add authentication to your application | ||
* you'll build out requireAuth() with real functionality. For | ||
* now we just return `true` so that the calls in services | ||
* have something to check against, simulating a logged | ||
* in user that is allowed to access that service. | ||
* | ||
* See https://redwoodjs.com/docs/authentication for more info. | ||
*/ | ||
export const isAuthenticated = () => { | ||
return true | ||
} | ||
|
||
export const hasRole = ({ roles }) => { | ||
return roles !== undefined | ||
} | ||
|
||
// This is used by the redwood directive | ||
// in ./api/src/directives/requireAuth | ||
|
||
// Roles are passed in by the requireAuth directive if you have auth setup | ||
// eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
export const requireAuth = ({ roles }) => { | ||
return isAuthenticated() | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
// See https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/constructor | ||
// for options. | ||
|
||
import { PrismaClient } from '@prisma/client' | ||
|
||
import { emitLogLevels, handlePrismaLogging } from '@redwoodjs/api/logger' | ||
|
||
import { logger } from './logger' | ||
|
||
/* | ||
* Instance of the Prisma Client | ||
*/ | ||
export const db = new PrismaClient({ | ||
log: emitLogLevels(['info', 'warn', 'error']), | ||
}) | ||
|
||
handlePrismaLogging({ | ||
db, | ||
logger, | ||
logLevels: ['info', 'warn', 'error'], | ||
}) |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
import { createLogger } from '@redwoodjs/api/logger' | ||
|
||
/** | ||
* Creates a logger with RedwoodLoggerOptions | ||
* | ||
* These extend and override default LoggerOptions, | ||
* can define a destination like a file or other supported pino log transport stream, | ||
* and sets whether or not to show the logger configuration settings (defaults to false) | ||
* | ||
* @param RedwoodLoggerOptions | ||
* | ||
* RedwoodLoggerOptions have | ||
* @param {options} LoggerOptions - defines how to log, such as redaction and format | ||
* @param {string | DestinationStream} destination - defines where to log, such as a transport stream or file | ||
* @param {boolean} showConfig - whether to display logger configuration on initialization | ||
*/ | ||
export const logger = createLogger({}) |
Empty file.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
{ | ||
"compilerOptions": { | ||
"noEmit": true, | ||
"allowJs": true, | ||
"esModuleInterop": true, | ||
"target": "esnext", | ||
"module": "esnext", | ||
"moduleResolution": "node", | ||
"baseUrl": "./", | ||
"rootDirs": [ | ||
"./src", | ||
"../.redwood/types/mirror/api/src" | ||
], | ||
"paths": { | ||
"src/*": [ | ||
"./src/*", | ||
"../.redwood/types/mirror/api/src/*" | ||
], | ||
"types/*": ["./types/*"], | ||
"@redwoodjs/testing": ["../node_modules/@redwoodjs/testing/api"] | ||
}, | ||
"typeRoots": [ | ||
"../node_modules/@types", | ||
"./node_modules/@types" | ||
], | ||
"types": ["jest"], | ||
}, | ||
"include": [ | ||
"src", | ||
"../.redwood/types/includes/all-*", | ||
"../.redwood/types/includes/api-*", | ||
] | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
const { getPaths } = require('@redwoodjs/internal') | ||
|
||
module.exports = { | ||
schema: getPaths().generated.schema, | ||
} |
Oops, something went wrong.