Skip to content

Commit

Permalink
Don't export prefixed methods in +server.ts (#687)
Browse files Browse the repository at this point in the history
* #685 Don't export prefixed methods

* ✅ NEW: tests for underscore

* ✏️ UPDATE: changeset

---------

Co-authored-by: jycouet <[email protected]>
  • Loading branch information
Dan1ve and jycouet authored Jul 29, 2024
1 parent 1b707ba commit db682d4
Show file tree
Hide file tree
Showing 23 changed files with 55 additions and 19 deletions.
5 changes: 5 additions & 0 deletions .changeset/wet-knives-sniff.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'vite-plugin-kit-routes': patch
---

Methods with \_ prefix in +server.ts are exported in ROUTES.ts
2 changes: 2 additions & 0 deletions packages/vite-plugin-kit-routes/src/lib/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ const PAGES = {
*/
const SERVERS = {
'GET /server_func_get': `/server_func_get`,
'GET /server_func_get_and_': `/server_func_get_and_`,
'POST /server_func_post': `/server_func_post`,
'GET /contract': (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/contract`
Expand Down Expand Up @@ -318,6 +319,7 @@ export type KIT_ROUTES = {
}
SERVERS: {
'GET /server_func_get': never
'GET /server_func_get_and_': never
'POST /server_func_post': never
'GET /contract': 'lang'
'POST /contract': 'lang'
Expand Down
2 changes: 1 addition & 1 deletion packages/vite-plugin-kit-routes/src/lib/ast.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export const getMethodsOfServerFiles = (pathFile: string) => {

// Check for function declarations
if (declaration?.type === 'FunctionDeclaration') {
if (declaration.id && declaration.id.name) {
if (declaration.id && declaration.id.name && !String(declaration.id.name).startsWith('_')) {
exportedNames.push(String(declaration.id.name))
}
}
Expand Down
4 changes: 4 additions & 0 deletions packages/vite-plugin-kit-routes/src/lib/plugins.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -876,6 +876,7 @@ describe('rmv Helper', () => {
"(rootGroup)/subGroup/+page.svelte",
"(rootGroup)/subGroup2/+page.svelte",
"(servers)/server_func_get/+server.ts",
"(servers)/server_func_get_and_/+server.ts",
"(servers)/server_func_post/+server.ts",
"+layout.svelte",
"/contract/+page.svelte",
Expand Down Expand Up @@ -924,6 +925,7 @@ describe('rmv Helper', () => {
"(rootGroup)/subGroup/+page.svelte",
"(rootGroup)/subGroup2/+page.svelte",
"(servers)/server_func_get/+server.ts",
"(servers)/server_func_get_and_/+server.ts",
"(servers)/server_func_post/+server.ts",
"+layout.svelte",
"[[lang]]/contract/+page.svelte",
Expand Down Expand Up @@ -965,6 +967,7 @@ describe('rmv Helper', () => {
"/subGroup/+page.svelte",
"/subGroup2/+page.svelte",
"/server_func_get/+server.ts",
"/server_func_get_and_/+server.ts",
"/server_func_post/+server.ts",
"+layout.svelte",
"[[lang]]/contract/+page.svelte",
Expand Down Expand Up @@ -1009,6 +1012,7 @@ describe('rmv Helper', () => {
"/subGroup/+page.svelte",
"/subGroup2/+page.svelte",
"/server_func_get/+server.ts",
"/server_func_get_and_/+server.ts",
"/server_func_post/+server.ts",
"+layout.svelte",
"/contract/+page.svelte",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export async function GET() {
return new Response()
}

export function _someMethod() {
// We should not see this method in the generated ROUTES.ts as it's prefixed with an underscore
}
3 changes: 2 additions & 1 deletion packages/vite-plugin-kit-routes/src/test/ROUTES_base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ const PAGES = {
*/
const SERVERS = {
"GET /server_func_get": `${base}/server_func_get`,
"GET /server_func_get_and_": `${base}/server_func_get_and_`,
"POST /server_func_post": `${base}/server_func_post`,
"GET /contract": (params?: { lang?: (string | number) }) => {
return `${base}${params?.lang ? `/${params?.lang}`: ''}/contract`
Expand Down Expand Up @@ -215,7 +216,7 @@ export function route<T extends keyof AllTypes>(key: T, ...params: any[]): strin
*/
export type KIT_ROUTES = {
PAGES: { '/': never, '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'id' | 'lang', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/sp': never, '/spArray': never, '/spArrayComma': never }
SERVERS: { 'GET /server_func_get': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
ACTIONS: { 'default /contract/[id]': 'id' | 'lang', 'create /site': 'lang', 'update /site/[id]': 'id' | 'lang', 'delete /site/[id]': 'id' | 'lang', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' }
LINKS: Record<string, never>
Params: { lang: never, id: never, siteId: never, contractId: never, rest: never, locale: never }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export const PAGES = {
*/
export const SERVERS = {
"GET /server_func_get": `/server_func_get`,
"GET /server_func_get_and_": `/server_func_get_and_`,
"POST /server_func_post": `/server_func_post`,
"GET /contract": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => {
return `${params?.lang ? `/${params?.lang}`: ''}/contract`
Expand Down Expand Up @@ -196,7 +197,7 @@ function StringOrUndefined(val: any) {
*/
export type KIT_ROUTES = {
PAGES: { '/': never, '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/sp': never, '/spArray': never, '/spArrayComma': never }
SERVERS: { 'GET /server_func_get': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
ACTIONS: { 'default /contract/[id]': 'id' | 'lang', 'create /site': 'lang', 'update /site/[id]': 'id' | 'lang', 'delete /site/[id]': 'id' | 'lang', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' }
LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' }
Params: { first: never, lang: never, id: never, limit: never, demo: never, siteId: never, contractId: never, rest: never, locale: never, extra: never, name: never, str: never, s: never, d: never }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export const PAGES = {
*/
export const SERVERS = {
"GET /server_func_get": `/server_func_get`,
"GET /server_func_get_and_": `/server_func_get_and_`,
"POST /server_func_post": `/server_func_post`,
"GET /contract": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => {
return `${params?.lang ? `/${params?.lang}`: ''}/contract`
Expand Down Expand Up @@ -197,7 +198,7 @@ function StringOrUndefined(val: any) {
*/
export type KIT_ROUTES = {
PAGES: { '/': never, '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'lang' | 'id', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'lang' | 'id', '/match/[id=int]': 'lang' | 'id', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/sp': never, '/spArray': never, '/spArrayComma': never }
SERVERS: { 'GET /server_func_get': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
ACTIONS: { 'default /contract/[id]': 'lang' | 'id', 'create /site': 'lang', 'update /site/[id]': 'lang' | 'id', 'delete /site/[id]': 'lang' | 'id', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' }
LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' }
Params: { first: never, lang: never, id: never, limit: never, demo: never, siteId: never, contractId: never, rest: never, locale: never, extra: never, name: never, str: never, s: never, d: never }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ export const PAGES = {
*/
export const SERVERS = {
"GET_server_func_get": `/server_func_get`,
"GET_server_func_get_and": `/server_func_get_and_`,
"POST_server_func_post": `/server_func_post`,
"GET_contract": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => {
return `${params?.lang ? `/${params?.lang}`: ''}/contract`
Expand Down Expand Up @@ -200,7 +201,7 @@ function StringOrUndefined(val: any) {
*/
export type KIT_ROUTES = {
PAGES: { '_ROOT': never, 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'sp': never, 'spArray': never, 'spArrayComma': never }
SERVERS: { 'GET_server_func_get': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' }
SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' }
ACTIONS: { 'default_contract_id': 'id' | 'lang', 'create_site': 'lang', 'update_site_id': 'id' | 'lang', 'delete_site_id': 'id' | 'lang', 'noSatisfies_site_contract': 'lang', 'send_site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' }
LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' }
Params: { first: never, lang: never, id: never, limit: never, demo: never, siteId: never, contractId: never, rest: never, ids: never, locale: never, extra: never, name: never, str: never, s: never, d: never }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ export const PAGES = {
*/
export const SERVERS = {
"GET_server_func_get": `/server_func_get`,
"GET_server_func_get_and": `/server_func_get_and_`,
"POST_server_func_post": `/server_func_post`,
"GET_contract": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => {
return `${params?.lang ? `/${params?.lang}`: ''}/contract`
Expand Down Expand Up @@ -201,7 +202,7 @@ function StringOrUndefined(val: any) {
*/
export type KIT_ROUTES = {
PAGES: { '_ROOT': never, 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'lang' | 'id', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'lang' | 'id', 'match_id_int': 'lang' | 'id', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'sp': never, 'spArray': never, 'spArrayComma': never }
SERVERS: { 'GET_server_func_get': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' }
SERVERS: { 'GET_server_func_get': never, 'GET_server_func_get_and': never, 'POST_server_func_post': never, 'GET_contract': 'lang', 'POST_contract': 'lang', 'GET_site': 'lang', 'GET_api_graphql': never, 'POST_api_graphql': never, 'GET_data_errors_locale_json': 'locale' }
ACTIONS: { 'default_contract_id': 'lang' | 'id', 'create_site': 'lang', 'update_site_id': 'lang' | 'id', 'delete_site_id': 'lang' | 'id', 'noSatisfies_site_contract': 'lang', 'send_site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' }
LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' }
Params: { first: never, lang: never, id: never, limit: never, demo: never, siteId: never, contractId: never, rest: never, ids: never, locale: never, extra: never, name: never, str: never, s: never, d: never }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export const PAGES = {
*/
export const SERVERS = {
"GET /server_func_get": `/server_func_get`,
"GET /server_func_get_and_": `/server_func_get_and_`,
"POST /server_func_post": `/server_func_post`,
"GET /contract": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => {
return `${params?.lang ? `/${params?.lang}`: ''}/contract`
Expand Down Expand Up @@ -228,7 +229,7 @@ export function route<T extends keyof AllTypes>(key: T, ...params: any[]): strin
*/
export type KIT_ROUTES = {
PAGES: { '/': never, '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'id' | 'lang', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'id' | 'lang', '/match/[id=int]': 'id' | 'lang', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/sp': never, '/spArray': never, '/spArrayComma': never }
SERVERS: { 'GET /server_func_get': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
ACTIONS: { 'default /contract/[id]': 'id' | 'lang', 'create /site': 'lang', 'update /site/[id]': 'id' | 'lang', 'delete /site/[id]': 'id' | 'lang', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' }
LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' }
Params: { first: never, lang: never, id: never, limit: never, demo: never, siteId: never, contractId: never, rest: never, locale: never, extra: never, name: never, str: never, s: never, d: never }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export const PAGES = {
*/
export const SERVERS = {
"GET /server_func_get": `/server_func_get`,
"GET /server_func_get_and_": `/server_func_get_and_`,
"POST /server_func_post": `/server_func_post`,
"GET /contract": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => {
return `${params?.lang ? `/${params?.lang}`: ''}/contract`
Expand Down Expand Up @@ -229,7 +230,7 @@ export function route<T extends keyof AllTypes>(key: T, ...params: any[]): strin
*/
export type KIT_ROUTES = {
PAGES: { '/': never, '/subGroup': never, '/subGroup/user': never, '/subGroup2': never, '/contract': 'lang', '/contract/[id]': 'lang' | 'id', '/gp/one': 'lang', '/gp/two': 'lang', '/main': 'lang', '/match/[id=ab]': 'lang' | 'id', '/match/[id=int]': 'lang' | 'id', '/site': 'lang', '/site/[id]': 'lang' | 'id', '/site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang', '/a/[...rest]/z': 'rest', '/lay/normal': never, '/lay/root-layout': never, '/lay/skip': never, '/sp': never, '/spArray': never, '/spArrayComma': never }
SERVERS: { 'GET /server_func_get': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
SERVERS: { 'GET /server_func_get': never, 'GET /server_func_get_and_': never, 'POST /server_func_post': never, 'GET /contract': 'lang', 'POST /contract': 'lang', 'GET /site': 'lang', 'GET /api/graphql': never, 'POST /api/graphql': never, 'GET /data/errors/[locale].json': 'locale' }
ACTIONS: { 'default /contract/[id]': 'lang' | 'id', 'create /site': 'lang', 'update /site/[id]': 'lang' | 'id', 'delete /site/[id]': 'lang' | 'id', 'noSatisfies /site_contract': 'lang', 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' }
LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' }
Params: { first: never, lang: never, id: never, limit: never, demo: never, siteId: never, contractId: never, rest: never, locale: never, extra: never, name: never, str: never, s: never, d: never }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export const PAGES = {
*/
export const SERVERS = {
"GET server_func_get": `/server_func_get`,
"GET server_func_get_and": `/server_func_get_and_`,
"POST server_func_post": `/server_func_post`,
"GET contract": (params?: { lang?: ('fr' | 'en' | 'hu' | 'at' | string) }) => {
return `${params?.lang ? `/${params?.lang}`: ''}/contract`
Expand Down Expand Up @@ -228,7 +229,7 @@ export function route<T extends keyof AllTypes>(key: T, ...params: any[]): strin
*/
export type KIT_ROUTES = {
PAGES: { '_ROOT': never, 'subGroup': never, 'subGroup_user': never, 'subGroup2': never, 'contract': 'lang', 'contract_id': 'id' | 'lang', 'gp_one': 'lang', 'gp_two': 'lang', 'main': 'lang', 'match_id_ab': 'id' | 'lang', 'match_id_int': 'id' | 'lang', 'site': 'lang', 'site_id': 'lang' | 'id', 'site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang', 'a_rest_z': 'rest', 'lay_normal': never, 'lay_root_layout': never, 'lay_skip': never, 'sp': never, 'spArray': never, 'spArrayComma': never }
SERVERS: { 'GET server_func_get': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' }
SERVERS: { 'GET server_func_get': never, 'GET server_func_get_and': never, 'POST server_func_post': never, 'GET contract': 'lang', 'POST contract': 'lang', 'GET site': 'lang', 'GET api_graphql': never, 'POST api_graphql': never, 'GET data_errors_locale_json': 'locale' }
ACTIONS: { 'default contract_id': 'id' | 'lang', 'create site': 'lang', 'update site_id': 'id' | 'lang', 'delete site_id': 'id' | 'lang', 'noSatisfies site_contract': 'lang', 'send site_contract_siteId_contractId': 'siteId' | 'contractId' | 'lang' }
LINKS: { 'twitter': never, 'twitter_post': 'name' | 'id', 'gravatar': 'str' }
Params: { first: never, lang: never, id: never, limit: never, demo: never, siteId: never, contractId: never, rest: never, locale: never, extra: never, name: never, str: never, s: never, d: never }
Expand Down
Loading

0 comments on commit db682d4

Please sign in to comment.