1
0
mirror of synced 2026-02-04 12:08:33 -05:00

Compare commits

...

9 Commits

Author SHA1 Message Date
Dillon Raphael
fb01cc7788 pnpmlock 2022-06-10 10:34:59 -04:00
github-actions[bot]
ac8c412da2 Version Packages (alpha) (#3419)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-06-10 10:31:19 -04:00
David
dfd2408e95 Added resolverBasePath option to rpc loaders (#3380)
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
2022-06-08 14:50:00 -07:00
Dillon Raphael
9741287050 pnpmlock 2022-06-07 18:28:53 -04:00
github-actions[bot]
0e9c81abdc Version Packages (alpha) (#3409)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-06-07 18:28:29 -04:00
Dillon Raphael
9e05d6e155 Filter file extensions in codemod (#3408)
* add allowedExt to getAllFiles for codemod

* pnpmlock

* codemod
2022-06-07 18:24:10 -04:00
beerose
17f70e65ef Update pnpm-lock.yaml 2022-06-07 13:21:28 -07:00
github-actions[bot]
0ddc5a8169 Version Packages (alpha) (#3407)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-06-07 13:20:44 -07:00
Aleksandra
e6fb09d494 Use dist/templates for rpc template (#3406) 2022-06-07 13:02:13 -07:00
33 changed files with 758 additions and 217 deletions

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/codemod": patch
---
Fix templates source in RPC codemod step

View File

@@ -39,6 +39,7 @@
"nice-starfishes-live",
"nine-onions-admire",
"ninety-pets-heal",
"olive-bees-buy",
"olive-feet-rhyme",
"plenty-bottles-swim",
"poor-peas-lick",
@@ -55,11 +56,13 @@
"tasty-news-collect",
"ten-rivers-burn",
"tender-pianos-check",
"thick-parrots-float",
"thirty-countries-build",
"twenty-beans-pump",
"two-kiwis-help",
"unlucky-papayas-sleep",
"violet-bags-leave",
"violet-lions-help",
"weak-suns-shave",
"wicked-ghosts-cough",
"wise-frogs-give"

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/codemod": patch
---
allow extension catch in getAllFiles codemod util

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/rpc": patch
---
Add resolverBasePath to Blitz config to change the way rpc routes are generated

1
.npmrc
View File

@@ -6,3 +6,4 @@ public-hoist-pattern[]=*types*
public-hoist-pattern[]=*eslint*
public-hoist-pattern[]=@prettier/plugin-*
public-hoist-pattern[]=*prettier-plugin-*
strict-peer-dependencies=false

View File

@@ -29,7 +29,7 @@
"@blitzjs/rpc": "workspace:*",
"@hookform/resolvers": "2.8.8",
"@prisma/client": "3.9.0",
"blitz": "workspace:2.0.0-alpha.31",
"blitz": "workspace:2.0.0-alpha.34",
"next": "12.1.6-canary.17",
"prisma": "3.9.0",
"react": "18.0.0",

View File

@@ -10,6 +10,7 @@ module.exports = withBlitz(
customServer: {
hotReload: false,
},
resolverBasePath: "root",
},
}),
)

View File

@@ -1,5 +1,23 @@
# @blitzjs/auth
## 2.0.0-alpha.34
### Patch Changes
- blitz@2.0.0-alpha.34
## 2.0.0-alpha.33
### Patch Changes
- blitz@2.0.0-alpha.33
## 2.0.0-alpha.32
### Patch Changes
- blitz@2.0.0-alpha.32
## 2.0.0-alpha.31
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/auth",
"version": "2.0.0-alpha.31",
"version": "2.0.0-alpha.34",
"scripts": {
"build": "unbuild",
"predev": "wait-on -d 250 ../blitz/dist/index-server.d.ts",
@@ -26,7 +26,7 @@
"@types/secure-password": "3.1.1",
"b64-lite": "1.4.0",
"bad-behavior": "1.0.1",
"blitz": "2.0.0-alpha.31",
"blitz": "2.0.0-alpha.34",
"cookie": "0.4.1",
"cookie-session": "2.0.0",
"debug": "4.3.3",
@@ -39,7 +39,7 @@
"url": "0.11.0"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.31",
"@blitzjs/config": "workspace:2.0.0-alpha.34",
"@testing-library/react": "13.0.0",
"@testing-library/react-hooks": "7.0.2",
"@types/cookie": "0.4.1",

View File

@@ -1,5 +1,24 @@
# @blitzjs/next
## 2.0.0-alpha.34
### Patch Changes
- Updated dependencies [dfd2408e]
- @blitzjs/rpc@2.0.0-alpha.34
## 2.0.0-alpha.33
### Patch Changes
- @blitzjs/rpc@2.0.0-alpha.33
## 2.0.0-alpha.32
### Patch Changes
- @blitzjs/rpc@2.0.0-alpha.32
## 2.0.0-alpha.31
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/next",
"version": "2.0.0-alpha.31",
"version": "2.0.0-alpha.34",
"scripts": {
"build": "unbuild",
"dev": "pnpm predev && pnpm watch unbuild src --wait=0.2",
@@ -23,7 +23,7 @@
"eslint.js"
],
"dependencies": {
"@blitzjs/rpc": "2.0.0-alpha.31",
"@blitzjs/rpc": "2.0.0-alpha.34",
"@types/hoist-non-react-statics": "3.3.1",
"debug": "4.3.3",
"fs-extra": "10.0.1",
@@ -32,7 +32,7 @@
"superjson": "1.8.0"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.31",
"@blitzjs/config": "workspace:2.0.0-alpha.34",
"@testing-library/dom": "8.13.0",
"@testing-library/jest-dom": "5.16.3",
"@testing-library/react": "13.0.0",
@@ -43,7 +43,7 @@
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"@types/testing-library__react-hooks": "4.0.0",
"blitz": "2.0.0-alpha.31",
"blitz": "2.0.0-alpha.34",
"cross-spawn": "7.0.3",
"find-up": "4.1.0",
"lodash.frompairs": "4.0.1",

View File

@@ -1,3 +1,4 @@
import type {NextConfig} from "next"
import {
GetServerSideProps,
GetServerSidePropsResult,
@@ -7,21 +8,20 @@ import {
NextApiResponse,
} from "next"
import type {
Ctx as BlitzCtx,
AddParameters,
AsyncFunc,
BlitzServerPlugin,
Ctx as BlitzCtx,
FirstParam,
Middleware,
MiddlewareResponse,
AsyncFunc,
FirstParam,
AddParameters,
} from "blitz"
import {handleRequestWithMiddleware, startWatcher, stopWatcher} from "blitz"
import type {NextConfig} from "next"
import {getQueryKey, getInfiniteQueryKey, installWebpackConfig} from "@blitzjs/rpc"
import {dehydrate} from "@blitzjs/rpc"
import {dehydrate, getQueryKey, getInfiniteQueryKey, loaderClient, loaderServer} from "@blitzjs/rpc"
import {DefaultOptions, QueryClient} from "react-query"
import {IncomingMessage, ServerResponse} from "http"
import {withSuperJsonProps} from "./superjson"
import {ResolverBasePath} from "@blitzjs/rpc/src/index-server"
export * from "./index-browser"
@@ -133,12 +133,59 @@ export const setupBlitzServer = ({plugins}: SetupBlitzOptions) => {
export interface BlitzConfig extends NextConfig {
blitz?: {
resolverBasePath?: ResolverBasePath
customServer?: {
hotReload?: boolean
}
}
}
interface WebpackRuleOptions {
resolverBasePath?: ResolverBasePath
}
interface WebpackRule {
test: RegExp
use: Array<{
loader: string
options: WebpackRuleOptions
}>
}
interface InstallWebpackConfigOptions {
webpackConfig: {
module: {
rules: WebpackRule[]
}
}
nextConfig: BlitzConfig
}
export function installWebpackConfig({webpackConfig, nextConfig}: InstallWebpackConfigOptions) {
const options: WebpackRuleOptions = {
resolverBasePath: nextConfig.blitz?.resolverBasePath,
}
webpackConfig.module.rules.push({
test: /\/\[\[\.\.\.blitz]]\.[jt]s$/,
use: [
{
loader: loaderServer,
options,
},
],
})
webpackConfig.module.rules.push({
test: /[\\/](queries|mutations)[\\/]/,
use: [
{
loader: loaderClient,
options,
},
],
})
}
export function withBlitz(nextConfig: BlitzConfig = {}) {
if (
process.env.NODE_ENV !== "production" &&
@@ -158,8 +205,8 @@ export function withBlitz(nextConfig: BlitzConfig = {}) {
}
const config = Object.assign({}, nextConfig, {
webpack: (config: any, options: any) => {
installWebpackConfig(config)
webpack: (config: InstallWebpackConfigOptions["webpackConfig"], options: any) => {
installWebpackConfig({webpackConfig: config, nextConfig})
if (typeof nextConfig.webpack === "function") {
return nextConfig.webpack(config, options)
}

View File

@@ -1,5 +1,27 @@
# @blitzjs/rpc
## 2.0.0-alpha.34
### Patch Changes
- dfd2408e: Add resolverBasePath to Blitz config to change the way rpc routes are generated
- @blitzjs/auth@2.0.0-alpha.34
- blitz@2.0.0-alpha.34
## 2.0.0-alpha.33
### Patch Changes
- @blitzjs/auth@2.0.0-alpha.33
- blitz@2.0.0-alpha.33
## 2.0.0-alpha.32
### Patch Changes
- @blitzjs/auth@2.0.0-alpha.32
- blitz@2.0.0-alpha.32
## 2.0.0-alpha.31
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/rpc",
"version": "2.0.0-alpha.31",
"version": "2.0.0-alpha.34",
"scripts": {
"build": "unbuild",
"predev": "wait-on -d 250 ../blitz/dist/index-server.d.ts && wait-on -d 250 ../blitz-auth/dist/index-browser.d.ts",
@@ -20,7 +20,7 @@
"dist/**"
],
"dependencies": {
"@blitzjs/auth": "2.0.0-alpha.31",
"@blitzjs/auth": "2.0.0-alpha.34",
"b64-lite": "1.4.0",
"bad-behavior": "1.0.1",
"chalk": "^4.1.0",
@@ -30,11 +30,11 @@
"zod": "3.10.1"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.31",
"@blitzjs/config": "workspace:2.0.0-alpha.34",
"@types/debug": "4.1.7",
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"blitz": "2.0.0-alpha.31",
"blitz": "2.0.0-alpha.34",
"next": "12.1.6-canary.17",
"react": "18.0.0",
"react-dom": "18.0.0",
@@ -43,7 +43,7 @@
"watch": "1.0.2"
},
"peerDependencies": {
"blitz": "2.0.0-alpha.31",
"blitz": "2.0.0-alpha.34",
"next": "*"
},
"publishConfig": {

View File

@@ -2,7 +2,7 @@ import {normalizePathTrailingSlash} from "next/dist/client/normalize-trailing-sl
import {addBasePath} from "next/dist/shared/lib/router/router"
import {deserialize, serialize} from "superjson"
import {SuperJSONResult} from "superjson/dist/types"
import {isServer, CSRFTokenMismatchError} from "blitz"
import {CSRFTokenMismatchError, isServer} from "blitz"
import {getQueryKeyFromUrlAndParams, queryClient} from "./react-query-utils"
import {
getAntiCSRFToken,
@@ -55,7 +55,7 @@ export function __internal_buildRpcClient({
resolverType,
routePath,
}: BuildRpcClientParams): RpcClient {
const fullRoutePath = normalizeApiRoute("/api/rpc/" + routePath)
const fullRoutePath = normalizeApiRoute("/api/rpc" + routePath)
const httpClient: RpcClientBase = async (params, opts = {}) => {
const debug = (await import("debug")).default("blitz:rpc")

View File

@@ -1,7 +1,8 @@
import {assert, Ctx, baseLogger, prettyMs, newLine} from "blitz"
import {assert, baseLogger, Ctx, newLine, prettyMs} from "blitz"
import {NextApiRequest, NextApiResponse} from "next"
import {deserialize, serialize as superjsonSerialize} from "superjson"
import chalk from "chalk"
import {resolve} from "path"
// TODO - optimize end user server bundles by not exporting all client stuff here
export * from "./index-browser"
@@ -24,6 +25,7 @@ function getGlobalObject<T extends Record<string, unknown>>(key: string, default
type Resolver = (...args: unknown[]) => Promise<unknown>
type ResolverFiles = Record<string, () => Promise<{default?: Resolver}>>
export type ResolverBasePath = "queries|mutations" | "root" | undefined
// We define `global.__internal_blitzRpcResolverFiles` to ensure we use the same global object.
// Needed for Next.js. I'm guessing that Next.js is including the `node_modules/` files in a seperate bundle than user files.
@@ -47,21 +49,9 @@ export function __internal_addBlitzRpcResolver(
return resolver
}
import {resolve} from "path"
const dir = __dirname + (() => "")() // trick to avoid `@vercel/ncc` to glob import
const loaderServer = resolve(dir, "./loader-server.cjs")
const loaderClient = resolve(dir, "./loader-client.cjs")
export function installWebpackConfig<T extends any[]>(config: {module?: {rules?: T}}) {
config.module!.rules!.push({
test: /\/\[\[\.\.\.blitz]]\.[jt]s$/,
use: [{loader: loaderServer}],
})
config.module!.rules!.push({
test: /[\\/](queries|mutations)[\\/]/,
use: [{loader: loaderClient}],
})
}
export const loaderServer = resolve(dir, "./loader-server.cjs")
export const loaderClient = resolve(dir, "./loader-client.cjs")
// ----------
// END LOADER

View File

@@ -3,20 +3,13 @@ import {
convertFilePathToResolverName,
convertFilePathToResolverType,
convertPageFilePathToRoutePath,
Loader,
LoaderOptions,
toPosixPath,
} from "./loader-utils"
import {assert} from "blitz"
import {posix} from "path"
// Subset of `import type { LoaderDefinitionFunction } from 'webpack'`
type Loader = {
_compiler?: {
name: string
context: string
}
resource: string
cacheable: (enabled: boolean) => void
}
export async function loader(this: Loader, input: string): Promise<string> {
const compiler = this._compiler!
@@ -25,8 +18,12 @@ export async function loader(this: Loader, input: string): Promise<string> {
const isSSR = compiler.name === "server"
if (!isSSR) {
const code = await transformBlitzRpcResolverClient(input, toPosixPath(id), toPosixPath(root))
return code
return await transformBlitzRpcResolverClient(
input,
toPosixPath(id),
toPosixPath(root),
this.query,
)
}
return input
@@ -34,13 +31,18 @@ export async function loader(this: Loader, input: string): Promise<string> {
module.exports = loader
export async function transformBlitzRpcResolverClient(_src: string, id: string, root: string) {
export async function transformBlitzRpcResolverClient(
_src: string,
id: string,
root: string,
options?: LoaderOptions,
) {
assertPosixPath(id)
assertPosixPath(root)
const resolverFilePath = "/" + posix.relative(root, id)
assertPosixPath(resolverFilePath)
const routePath = convertPageFilePathToRoutePath(resolverFilePath)
const routePath = convertPageFilePathToRoutePath(resolverFilePath, options?.resolverBasePath)
const resolverName = convertFilePathToResolverName(resolverFilePath)
const resolverType = convertFilePathToResolverType(resolverFilePath)

View File

@@ -1,23 +1,17 @@
import {posix, join, dirname} from "path"
import {dirname, join, posix} from "path"
import {promises} from "fs"
import {
assertPosixPath,
toPosixPath,
buildPageExtensionRegex,
getIsRpcFile,
topLevelFoldersThatMayContainResolvers,
convertPageFilePathToRoutePath,
getIsRpcFile,
Loader,
LoaderOptions,
topLevelFoldersThatMayContainResolvers,
toPosixPath,
} from "./loader-utils"
// Subset of `import type { LoaderDefinitionFunction } from 'webpack'`
type Loader = {
_compiler?: {
name: string
context: string
}
resource: string
cacheable: (enabled: boolean) => void
}
export async function loader(this: Loader, input: string): Promise<string> {
const compiler = this._compiler!
@@ -29,8 +23,13 @@ export async function loader(this: Loader, input: string): Promise<string> {
this.cacheable(false)
const resolvers = await collectResolvers(root, ["ts", "js"])
const code = await transformBlitzRpcServer(input, toPosixPath(id), toPosixPath(root), resolvers)
return code
return await transformBlitzRpcServer(
input,
toPosixPath(id),
toPosixPath(root),
resolvers,
this.query,
)
}
return input
@@ -43,6 +42,7 @@ export async function transformBlitzRpcServer(
id: string,
root: string,
resolvers: string[],
options?: LoaderOptions,
) {
assertPosixPath(id)
assertPosixPath(root)
@@ -55,7 +55,7 @@ export async function transformBlitzRpcServer(
for (let resolverFilePath of resolvers) {
const relativeResolverPath = posix.relative(dirname(id), join(root, resolverFilePath))
const routePath = convertPageFilePathToRoutePath(resolverFilePath)
const routePath = convertPageFilePathToRoutePath(resolverFilePath, options?.resolverBasePath)
code += `__internal_addBlitzRpcResolver('${routePath}', () => import('${relativeResolverPath}'));`
code += "\n"
}

View File

@@ -0,0 +1,24 @@
import {describe, expect, it} from "vitest"
import {convertPageFilePathToRoutePath} from "./loader-utils"
const FILE_PATH = "app/queries/getData.ts"
describe("convertPageFilePathToRoutePath", () => {
it("should return the full path when resolverBasePath is set to root", () => {
const res = convertPageFilePathToRoutePath(FILE_PATH, "root")
expect(res).toEqual("app/queries/getData")
})
it("should return the relative path when resolverBasePath is set to queries|mutations", () => {
const res = convertPageFilePathToRoutePath(FILE_PATH, "queries|mutations")
expect(res).toEqual("/getData")
})
it("should return the relative path when resolverBasePath is set to undefined", () => {
const res = convertPageFilePathToRoutePath(FILE_PATH, undefined)
expect(res).toEqual("/getData")
})
})

View File

@@ -1,5 +1,20 @@
import {assert} from "blitz"
import {win32, posix, sep} from "path"
import {posix, sep, win32} from "path"
import {ResolverBasePath} from "./index-server"
export interface LoaderOptions {
resolverBasePath?: ResolverBasePath
}
export interface Loader {
_compiler?: {
name: string
context: string
}
resource: string
cacheable: (enabled: boolean) => void
query: LoaderOptions
}
export function assertPosixPath(path: string) {
const errMsg = `Wrongly formatted path: ${path}`
@@ -34,7 +49,14 @@ export function buildPageExtensionRegex(pageExtensions: string[]) {
const fileExtensionRegex = /\.([a-z]+)$/
export function convertPageFilePathToRoutePath(filePath: string) {
export function convertPageFilePathToRoutePath(
filePath: string,
resolverBasePath: ResolverBasePath,
) {
if (resolverBasePath === "root") {
return filePath.replace(fileExtensionRegex, "")
}
return filePath
.replace(/^.*?[\\/]queries[\\/]/, "/")
.replace(/^.*?[\\/]mutations[\\/]/, "/")

View File

@@ -1,5 +1,5 @@
import {Ctx} from "blitz"
import {describe, it, expect} from "vitest"
import {describe, expect, it} from "vitest"
import {z} from "zod"
import {ParserType, resolver} from "./resolver"
@@ -44,10 +44,9 @@ const asyncResolver = resolver.pipe(
const resolverTest = async ({type}: {type?: ParserType}) => {
const resolver1 = type === "sync" ? syncResolver : asyncResolver
const result1 = await resolver1(
{email: "test@example.com"},
{session: {$authorize: () => undefined} as Ctx},
)
const result1 = await resolver1({email: "test@example.com"}, {
session: {$authorize: () => undefined},
} as Ctx)
expect(result1).toBe("test@example.com")
const resolver2 = resolver.pipe(
@@ -55,9 +54,8 @@ const resolverTest = async ({type}: {type?: ParserType}) => {
return input.email
},
)
const result2 = await resolver2(
{email: "test@example.com"},
{session: {$authorize: () => undefined} as Ctx},
)
const result2 = await resolver2({email: "test@example.com"}, {
session: {$authorize: () => undefined},
} as Ctx)
expect(result2).toBe("test@example.com")
}

View File

@@ -1,5 +1,23 @@
# blitz
## 2.0.0-alpha.34
### Patch Changes
- @blitzjs/generator@2.0.0-alpha.34
## 2.0.0-alpha.33
### Patch Changes
- @blitzjs/generator@2.0.0-alpha.33
## 2.0.0-alpha.32
### Patch Changes
- @blitzjs/generator@2.0.0-alpha.32
## 2.0.0-alpha.31
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "blitz",
"version": "2.0.0-alpha.31",
"version": "2.0.0-alpha.34",
"scripts": {
"build": "unbuild",
"dev": "watch unbuild src --wait=0.2",
@@ -23,7 +23,7 @@
"blitz": "bin/blitz"
},
"dependencies": {
"@blitzjs/generator": "2.0.0-alpha.31",
"@blitzjs/generator": "2.0.0-alpha.34",
"arg": "5.0.1",
"chalk": "^4.1.0",
"console-table-printer": "2.10.0",
@@ -52,7 +52,7 @@
"watchpack": "2.1.1"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.31",
"@blitzjs/config": "workspace:2.0.0-alpha.34",
"@types/cookie": "0.4.1",
"@types/cross-spawn": "6.0.2",
"@types/debug": "4.1.7",

View File

@@ -1,5 +1,28 @@
# @blitzjs/codemod
## 2.0.0-alpha.34
### Patch Changes
- @blitzjs/generator@2.0.0-alpha.34
- blitz@2.0.0-alpha.34
## 2.0.0-alpha.33
### Patch Changes
- 9e05d6e1: allow extension catch in getAllFiles codemod util
- @blitzjs/generator@2.0.0-alpha.33
- blitz@2.0.0-alpha.33
## 2.0.0-alpha.32
### Patch Changes
- e6fb09d4: Fix templates source in RPC codemod step
- @blitzjs/generator@2.0.0-alpha.32
- blitz@2.0.0-alpha.32
## 2.0.0-alpha.31
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/codemod",
"version": "2.0.0-alpha.31",
"version": "2.0.0-alpha.34",
"scripts": {
"build": "unbuild",
"dev": "watch unbuild src --wait=0.2",
@@ -25,9 +25,9 @@
"@babel/plugin-proposal-class-properties": "7.17.12",
"@babel/plugin-syntax-jsx": "7.17.12",
"@babel/plugin-syntax-typescript": "7.17.12",
"@blitzjs/generator": "2.0.0-alpha.31",
"@blitzjs/generator": "2.0.0-alpha.34",
"arg": "5.0.1",
"blitz": "2.0.0-alpha.31",
"blitz": "2.0.0-alpha.34",
"chalk": "^4.1.0",
"cross-spawn": "7.0.3",
"debug": "4.3.3",

View File

@@ -170,7 +170,7 @@ const upgradeLegacy = async () => {
BlitzLayout: "@blitzjs/next",
}
getAllFiles(appDir, [], [], [".css"]).forEach((filename) => {
getAllFiles(appDir, [], [], [".ts", ".tsx", ".js", ".jsx"]).forEach((filename) => {
const program = getCollectionFromSource(path.resolve(appDir, filename))
const parsedProgram = program.get()
@@ -213,7 +213,7 @@ const upgradeLegacy = async () => {
steps.push({
name: "update NextJS' default imports",
action: async () => {
getAllFiles(appDir, [], [], [".css"]).forEach((file) => {
getAllFiles(appDir, [], [], [".ts", ".tsx", ".js", ".jsx"]).forEach((file) => {
const program = getCollectionFromSource(file)
const nextImage = findImport(program, "next/image")
@@ -308,7 +308,12 @@ const upgradeLegacy = async () => {
name: "create pages/api/rpc directory and add [[...blitz]].ts wildecard API route",
action: async () => {
const pagesDir = path.resolve("pages/api/rpc")
const templatePath = path.join(require.resolve("@blitzjs/generator"), "..", "..", "templates")
const templatePath = path.join(
require.resolve("@blitzjs/generator"),
"..",
"..",
isInternalBlitzMonorepoDevelopment ? "templates" : "dist/templates",
)
const rpcRoute = fs
.readFileSync(path.join(templatePath, "app", "pages", "api", "rpc", "blitzrpcroute.ts"))
.toString()
@@ -472,7 +477,7 @@ const upgradeLegacy = async () => {
action: async () => {
//First check ./pages
const pagesDir = path.resolve("pages")
getAllFiles(pagesDir, [], [], [".css"]).forEach((file) => {
getAllFiles(pagesDir, [], [], [".ts", ".tsx", ".js", ".jsx"]).forEach((file) => {
const filepath = path.resolve(pagesDir, file)
const program = getCollectionFromSource(filepath)
@@ -515,7 +520,7 @@ const upgradeLegacy = async () => {
fs.writeFileSync(filepath, program.toSource())
})
getAllFiles(appDir, [], [], [".css"]).forEach((file) => {
getAllFiles(appDir, [], [], [".ts", ".tsx", ".js", ".jsx"]).forEach((file) => {
const filepath = path.resolve(appDir, file)
const program = getCollectionFromSource(filepath)
@@ -645,7 +650,7 @@ const upgradeLegacy = async () => {
name: "wrap getServerSideProps, getStaticProps and API handlers with gSSP, gSP, and api",
action: async () => {
const pagesDir = path.resolve("pages")
getAllFiles(pagesDir, [], ["api"]).forEach((file) => {
getAllFiles(pagesDir, [], ["api"], [".ts", ".tsx", ".js", ".jsx"]).forEach((file) => {
const program = getCollectionFromSource(file)
// 1. getServerSideProps
@@ -669,7 +674,12 @@ const upgradeLegacy = async () => {
// 3. api
if (fs.existsSync(path.join(pagesDir, "api"))) {
getAllFiles(path.join(pagesDir, "api"), [], ["rpc"]).forEach((file) => {
getAllFiles(
path.join(pagesDir, "api"),
[],
["rpc"],
[".ts", ".tsx", ".js", ".jsx"],
).forEach((file) => {
const program = getCollectionFromSource(file)
const defaultExportPath = findDefaultExportPath(program)
@@ -692,7 +702,7 @@ const upgradeLegacy = async () => {
action: async () => {
let errors = 0
getAllFiles(appDir, [], ["components"], [".css"]).forEach((file) => {
getAllFiles(appDir, [], ["components"], [".ts", ".tsx", ".js", ".jsx"]).forEach((file) => {
const program = getCollectionFromSource(file)
const middlewarePath = findVariable(program, "middleware")
if (middlewarePath?.length) {
@@ -712,7 +722,7 @@ const upgradeLegacy = async () => {
action: async () => {
let errors = 0
getAllFiles(appDir, [], [], [".css"]).forEach((file) => {
getAllFiles(appDir, [], [], [".ts", ".tsx", ".js", ".jsx"]).forEach((file) => {
const program = getCollectionFromSource(file)
const invokeWithMiddlewarePath = findCallExpression(program, "invokeWithMiddleware")
if (invokeWithMiddlewarePath?.length) {
@@ -721,7 +731,7 @@ const upgradeLegacy = async () => {
}
})
getAllFiles(path.resolve("pages"), [], [], [".css"]).forEach((file) => {
getAllFiles(path.resolve("pages"), [], [], [".ts", ".tsx", ".js", ".jsx"]).forEach((file) => {
const program = getCollectionFromSource(file)
const invokeWithMiddlewarePath = findCallExpression(program, "invokeWithMiddleware")
if (invokeWithMiddlewarePath?.length) {

View File

@@ -192,17 +192,21 @@ export function getAllFiles(
dirPath: string,
accFiles: string[] = [],
skipDirs?: string[],
skipExt?: string[],
allowedExt?: string[],
) {
let currentFiles = fs.readdirSync(dirPath)
currentFiles.forEach((file) => {
if (fs.statSync(dirPath + "/" + file).isDirectory()) {
if (!skipDirs?.includes(file)) {
accFiles = getAllFiles(dirPath + "/" + file, accFiles, skipDirs, skipExt)
accFiles = getAllFiles(dirPath + "/" + file, accFiles, skipDirs, allowedExt)
}
} else {
if (!skipExt?.includes(path.extname(file))) {
if (allowedExt?.length) {
if (allowedExt?.includes(path.extname(file))) {
accFiles.push(path.join(dirPath, "/", file))
}
} else {
accFiles.push(path.join(dirPath, "/", file))
}
}

View File

@@ -1,5 +1,11 @@
# @blitzjs/config
## 2.0.0-alpha.34
## 2.0.0-alpha.33
## 2.0.0-alpha.32
## 2.0.0-alpha.31
## 2.0.0-alpha.30

View File

@@ -1,7 +1,7 @@
{
"name": "@blitzjs/config",
"private": true,
"version": "2.0.0-alpha.31",
"version": "2.0.0-alpha.34",
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "5.9.1",

View File

@@ -1,5 +1,11 @@
# @blitzjs/generator
## 2.0.0-alpha.34
## 2.0.0-alpha.33
## 2.0.0-alpha.32
## 2.0.0-alpha.31
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/generator",
"version": "2.0.0-alpha.31",
"version": "2.0.0-alpha.34",
"scripts": {
"dev": "watch unbuild src --wait=0.2",
"build": "unbuild && pnpm build:templates",
@@ -45,7 +45,7 @@
"vinyl": "2.2.1"
},
"devDependencies": {
"@blitzjs/config": "2.0.0-alpha.31",
"@blitzjs/config": "2.0.0-alpha.34",
"@juanm04/cpx": "2.0.1",
"@types/babel__core": "7.1.19",
"@types/diff": "5.0.2",

View File

@@ -25,7 +25,7 @@
"@typescript-eslint/parser": "5.9.1"
},
"devDependencies": {
"@blitzjs/config": "2.0.0-alpha.31",
"@blitzjs/config": "2.0.0-alpha.34",
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"react": "18.0.0",

544
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff