Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(auth): Convert @redwoodjs/auth to ESM+CJS dual build #10417

Merged
merged 16 commits into from
Apr 7, 2024
Merged
1 change: 0 additions & 1 deletion packages/auth/.babelrc.js

This file was deleted.

24 changes: 24 additions & 0 deletions packages/auth/build.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { build, defaultBuildOptions } from '@redwoodjs/framework-tools'

// ESM build
await build({
buildOptions: {
...defaultBuildOptions,
bundle: true,
entryPoints: ['./src/index.ts'],
format: 'esm',
outExtension: { '.js': '.mjs' },
packages: 'external',
},
})

// CJS build
await build({
buildOptions: {
...defaultBuildOptions,
bundle: true,
entryPoints: ['./src/index.ts'],
outExtension: { '.js': '.cjs' },
packages: 'external',
},
})
5 changes: 0 additions & 5 deletions packages/auth/jest.config.js

This file was deleted.

23 changes: 13 additions & 10 deletions packages/auth/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,38 @@
"directory": "packages/auth"
},
"license": "MIT",
"main": "./dist/index.js",
"type": "module",
"exports": {
"types": "./dist/index.d.ts",
"import": "./dist/index.mjs",
"default": "./dist/index.cjs"
},
"types": "./dist/index.d.ts",
"files": [
"dist"
],
"scripts": {
"build": "yarn build:js && yarn build:types",
"build:js": "babel src -d dist --extensions \".js,.jsx,.ts,.tsx\"",
"build": "tsx ./build.ts && yarn build:types",
"build:pack": "yarn pack -o redwoodjs-auth.tgz",
"build:types": "tsc --build --verbose",
"build:watch": "nodemon --watch src --ext \"js,jsx,ts,tsx\" --ignore dist --exec \"yarn build\"",
"prepublishOnly": "NODE_ENV=production yarn build",
"test": "jest src",
"test:watch": "yarn test --watch"
"test": "vitest run",
"test:watch": "vitest watch"
},
"dependencies": {
"@babel/runtime-corejs3": "7.24.1",
Tobbe marked this conversation as resolved.
Show resolved Hide resolved
"core-js": "3.36.1",
"react": "18.3.0-canary-a870b2d54-20240314"
"react": "18.3.0-canary-a870b2d54-20240314",
"tsx": "4.7.1"
Tobbe marked this conversation as resolved.
Show resolved Hide resolved
},
"devDependencies": {
"@babel/cli": "7.24.1",
"@babel/core": "^7.22.20",
Tobbe marked this conversation as resolved.
Show resolved Hide resolved
"@testing-library/jest-dom": "6.4.2",
"@testing-library/react": "14.2.2",
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"msw": "1.3.3",
"typescript": "5.4.3"
"typescript": "5.4.3",
"vitest": "1.4.0"
},
"gitHead": "3905ed045508b861b495f8d5630d76c7a157d8f1"
}
30 changes: 15 additions & 15 deletions packages/auth/src/AuthProvider/AuthProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
import type { ReactNode } from 'react'
import React, { useContext, useEffect, useState } from 'react'

import type { AuthContextInterface, CurrentUser } from '../AuthContext'
import type { AuthImplementation } from '../AuthImplementation'
import type { AuthContextInterface, CurrentUser } from '../AuthContext.js'
import type { AuthImplementation } from '../AuthImplementation.js'

import type { AuthProviderState } from './AuthProviderState'
import { defaultAuthProviderState } from './AuthProviderState'
import { ServerAuthContext } from './ServerAuthProvider'
import { useCurrentUser } from './useCurrentUser'
import { useForgotPassword } from './useForgotPassword'
import { useHasRole } from './useHasRole'
import { useLogIn } from './useLogIn'
import { useLogOut } from './useLogOut'
import { useReauthenticate } from './useReauthenticate'
import { useResetPassword } from './useResetPassword'
import { useSignUp } from './useSignUp'
import { useToken } from './useToken'
import { useValidateResetToken } from './useValidateResetToken'
import type { AuthProviderState } from './AuthProviderState.js'
import { defaultAuthProviderState } from './AuthProviderState.js'
import { ServerAuthContext } from './ServerAuthProvider.js'
import { useCurrentUser } from './useCurrentUser.js'
import { useForgotPassword } from './useForgotPassword.js'
import { useHasRole } from './useHasRole.js'
import { useLogIn } from './useLogIn.js'
import { useLogOut } from './useLogOut.js'
import { useReauthenticate } from './useReauthenticate.js'
import { useResetPassword } from './useResetPassword.js'
import { useSignUp } from './useSignUp.js'
import { useToken } from './useToken.js'
import { useValidateResetToken } from './useValidateResetToken.js'

export interface AuthProviderProps {
skipFetchCurrentUser?: boolean
Expand Down
2 changes: 1 addition & 1 deletion packages/auth/src/AuthProvider/AuthProviderState.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { CurrentUser } from '../AuthContext'
import type { CurrentUser } from '../AuthContext.js'

export type AuthProviderState<TUser, TClient = unknown> = {
loading: boolean
Expand Down
4 changes: 2 additions & 2 deletions packages/auth/src/AuthProvider/ServerAuthProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { ReactNode } from 'react'
import React from 'react'

import type { AuthProviderState } from './AuthProviderState'
import { defaultAuthProviderState } from './AuthProviderState'
import type { AuthProviderState } from './AuthProviderState.js'
import { defaultAuthProviderState } from './AuthProviderState.js'

export type ServerAuthState = AuthProviderState<never> & {
cookieHeader?: string
Expand Down
4 changes: 2 additions & 2 deletions packages/auth/src/AuthProvider/useCurrentUser.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useCallback } from 'react'

import type { AuthImplementation } from '../AuthImplementation'
import type { AuthImplementation } from '../AuthImplementation.js'

import { useToken } from './useToken'
import { useToken } from './useToken.js'

export const useCurrentUser = (authImplementation: AuthImplementation) => {
const getToken = useToken(authImplementation)
Expand Down
2 changes: 1 addition & 1 deletion packages/auth/src/AuthProvider/useForgotPassword.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useCallback } from 'react'

import type { AuthImplementation } from '../AuthImplementation'
import type { AuthImplementation } from '../AuthImplementation.js'

export const useForgotPassword = <
TUser,
Expand Down
2 changes: 1 addition & 1 deletion packages/auth/src/AuthProvider/useHasRole.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useCallback } from 'react'

import type { CurrentUser } from '../AuthContext'
import type { CurrentUser } from '../AuthContext.js'

export const useHasRole = (currentUser: CurrentUser | null) => {
/**
Expand Down
10 changes: 5 additions & 5 deletions packages/auth/src/AuthProvider/useLogIn.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { useCallback } from 'react'

import type { AuthImplementation } from '../AuthImplementation'
import type { AuthImplementation } from '../AuthImplementation.js'

import type { AuthProviderState } from './AuthProviderState'
import { defaultAuthProviderState } from './AuthProviderState'
import type { useCurrentUser } from './useCurrentUser'
import { useReauthenticate } from './useReauthenticate'
import type { AuthProviderState } from './AuthProviderState.js'
import { defaultAuthProviderState } from './AuthProviderState.js'
import type { useCurrentUser } from './useCurrentUser.js'
import { useReauthenticate } from './useReauthenticate.js'

export const useLogIn = <
TUser,
Expand Down
4 changes: 2 additions & 2 deletions packages/auth/src/AuthProvider/useLogOut.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useCallback } from 'react'

import type { AuthImplementation } from '../AuthImplementation'
import type { AuthImplementation } from '../AuthImplementation.js'

import type { AuthProviderState } from './AuthProviderState'
import type { AuthProviderState } from './AuthProviderState.js'

export const useLogOut = <
TUser,
Expand Down
8 changes: 4 additions & 4 deletions packages/auth/src/AuthProvider/useReauthenticate.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { useCallback } from 'react'

import type { AuthImplementation } from '../AuthImplementation'
import type { AuthImplementation } from '../AuthImplementation.js'

import type { AuthProviderState } from './AuthProviderState'
import type { useCurrentUser } from './useCurrentUser'
import { useToken } from './useToken'
import type { AuthProviderState } from './AuthProviderState.js'
import type { useCurrentUser } from './useCurrentUser.js'
import { useToken } from './useToken.js'

const notAuthenticatedState = {
isAuthenticated: false,
Expand Down
2 changes: 1 addition & 1 deletion packages/auth/src/AuthProvider/useResetPassword.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useCallback } from 'react'

import type { AuthImplementation } from '../AuthImplementation'
import type { AuthImplementation } from '../AuthImplementation.js'

export const useResetPassword = <
TUser,
Expand Down
8 changes: 4 additions & 4 deletions packages/auth/src/AuthProvider/useSignUp.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { useCallback } from 'react'

import type { AuthImplementation } from '../AuthImplementation'
import type { AuthImplementation } from '../AuthImplementation.js'

import type { AuthProviderState } from './AuthProviderState'
import type { useCurrentUser } from './useCurrentUser'
import { useReauthenticate } from './useReauthenticate'
import type { AuthProviderState } from './AuthProviderState.js'
import type { useCurrentUser } from './useCurrentUser.js'
import { useReauthenticate } from './useReauthenticate.js'

export const useSignUp = <
TUser,
Expand Down
2 changes: 1 addition & 1 deletion packages/auth/src/AuthProvider/useToken.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useCallback } from 'react'

import type { AuthImplementation } from '../AuthImplementation'
import type { AuthImplementation } from '../AuthImplementation.js'

export const useToken = (authImplementation: AuthImplementation) => {
return useCallback(async () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/auth/src/AuthProvider/useValidateResetToken.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useCallback } from 'react'

import type { AuthImplementation } from '../AuthImplementation'
import type { AuthImplementation } from '../AuthImplementation.js'

export const useValidateResetToken = <
TUser,
Expand Down
Loading
Loading