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

feat: add options to cloudflare-adapter to allow custom _routes rules #9111

Merged
merged 17 commits into from
Feb 28, 2023

Conversation

ajgeiss0702
Copy link
Contributor

Inspired by suggestions in #8827

This PR adds an options object to adapter-cloudflare, which allows configuration of custom includes/excludes for cloudflare's _routes.json file. It also allows disabling the auto-generation of excludes.

I'm not sure whether I should document these changes on the adapter-cloudflare docs page in this PR or a separate one, so for now I am leaving that out. Please advise!

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it. N/A: adapter-cloudflare has no tests

Tests

  • Run the tests with pnpm test and lint the project with pnpm lint and pnpm check N/A: adapter-cloudflare has no tests

Changesets

  • If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

for: add options to cloudflare-adapter to allow custom _routes rules
@ajgeiss0702 ajgeiss0702 changed the title add options to cloudflare-adapter to allow custom _routes rules feat: add options to cloudflare-adapter to allow custom _routes rules Feb 18, 2023
Copy link
Member

@ghostdevv ghostdevv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nitpick 🙏

packages/adapter-cloudflare/index.js Outdated Show resolved Hide resolved
Co-authored-by: Willow (GHOST) <ghostdevbusiness@gmail.com>
@nosovk
Copy link
Contributor

nosovk commented Feb 20, 2023

It could help with: #9138

@ajgeiss0702
Copy link
Contributor Author

ajgeiss0702 commented Feb 20, 2023

It could help with: #9138

This pr won’t (unless you add it manually), but once this is merged I plan on adding more similar features to the cloudflare adapter

@Rich-Harris
Copy link
Member

Rich-Harris commented Feb 22, 2023

Thanks for the PR! I'm not sure this is quite right in its current form — if you're opting out of automatically generating routes, then we shouldn't always be adding /* to includes and /_app/* to excludes. Manual should mean manual, otherwise it's confusing and contradictory. In any case if /* is present then any other include is redundant.

So I'd propose getting rid of autoGenerate and just saying that if include or exclude are provided, use them, otherwise generate them automatically using the existing logic. We also need to make sure that inclusions are taken into account when determining whether we've exceeded the limits or not — at the moment this PR only considers excludes.

@ajgeiss0702
Copy link
Contributor Author

Thanks for the PR! I'm not sure this is quite right in its current form — if you're opting out of automatically generating routes, then we shouldn't always be adding /* to includes and /_app/* to excludes. Manual should mean manual, otherwise it's confusing and contradictory. In any case if /* is present then any other include is redundant.

That makes sense. I'll make that change (probably only include /* and exclude /_app/* if autoGenerate is true)

So I'd propose getting rid of autoGenerate and just saying that if include or exclude are provided, use them, otherwise generate them automatically using the existing logic.

My reasoning for adding the autoGenerate is if a new pre-generated page or asset is added and you have custom excludes specified, if you forget to add the new page/asset it will incur unnecessary function/worker invocations. The autoGenerate option allows custom routes without the worry of constantly having to adjust it when adding/removing pre-generated pages or static assets. If one would like to have fully custom include/exclude, they can disable the autoGenerate option.

We also need to make sure that inclusions are taken into account when determining whether we've exceeded the limits or not — at the moment this PR only considers excludes.

Will do.

Thank you for the feedback on the PR, however, I am still not sure if I should make the docs changes in this PR or in a separate one.

@eltigerchino
Copy link
Member

Adding the docs in this PR would be great 👍

@Rich-Harris
Copy link
Member

I'm still not sure I follow — if you have /* in includes then there is no point adding anything else. You either have /* or you have manual includes.

Similarly for excludes: it already has everything that should be excluded, so adding additional entries is pointless. The exception is when the list grows too long and you need to handcraft the list making clever use of wildcards. But in that case you can't rely on the auto-generated excludes anyway, so it's very much on you to keep the configuration up to date.

So I don't see any reason to keep autoGenerate, unless there's something I'm missing?

@ajgeiss0702
Copy link
Contributor Author

I'm still not sure I follow — if you have /* in includes then there is no point adding anything else. You either have /* or you have manual includes.

Similarly for excludes: it already has everything that should be excluded, so adding additional entries is pointless. The exception is when the list grows too long and you need to handcraft the list making clever use of wildcards. But in that case you can't rely on the auto-generated excludes anyway, so it's very much on you to keep the configuration up to date.

So I don't see any reason to keep autoGenerate, unless there's something I'm missing?

Including /* without autoGenerate was a mistake. I'm about to push a commit fixing that.

Allowing custom excludes rules in addition to the auto-generated ones would allow _redirects to work. You could exclude the paths that are in _redirects (as currently _redirects does not get priority over functions)

@Rich-Harris
Copy link
Member

as currently _redirects does not get priority over functions

I find some of these design decisions... interesting.

Should the contents of _redirects be included in excludes for that reason? (Behind an option?) In the common case where you don't have _redirects and are instead using excludes to stay below the limit, the above point stands as far as I can see — it makes sense to auto-generate excludes or manually specify them but not both. So we need to come up with a solution that deals with redirects specifically.

@ajgeiss0702
Copy link
Contributor Author

ajgeiss0702 commented Feb 22, 2023

as currently _redirects does not get priority over functions

I find some of these design decisions... interesting.

Should the contents of _redirects be included in excludes for that reason? (Behind an option?) In the common case where you don't have _redirects and are instead using excludes to stay below the limit, the above point stands as far as I can see — it makes sense to auto-generate excludes or manually specify them but not both. So we need to come up with a solution that deals with redirects specifically.

I believe _redirects rules should be automatically excluded in excludes, but currently i'm planning on adding that in a future PR.

Another use case for adding excludes on top of the auto-generated ones (one that I am currently struggling with) is handling 404 pages that are commonly requested. For example, bots scanning for vulnerable wordpress sites, or old api routes that has been removed for years but still gets tens of thousands of requests per day.

I don't see the harm in keeping the option, unless I'm missing something.

@Rich-Harris
Copy link
Member

The harm is this:

you can't rely on the auto-generated excludes anyway

Either the automatic excludes are below the limit, or they're unreliable. We can't have it both ways!

@ajgeiss0702
Copy link
Contributor Author

ajgeiss0702 commented Feb 23, 2023

The harm is this:

you can't rely on the auto-generated excludes anyway

Either the automatic excludes are below the limit, or they're unreliable. We can't have it both ways!

If they are below the limit, there is room to add more. If they are not below the limit, autoGenerate can be disabled. That is why it is an option, and not unconditionally always on.

I believe that the warning message and the comments around the options make it perfectly clear on the behavior of the options, so there would not be any clarity improvement by removing the option. From what I can see, removing the option would only cause pain for anyone who just wants to add a few excludes, but wants to keep the auto-generated excludes.

I don't believe removing functionality just because it might cause a warning that describes the issue clearly is the right move here. Not every sveltekit site is the same, and there are many sites that could use this option. There are also many who might not need to use this option. This is why it is an option. Take the option away and workarounds would need to be made (for instance, as a workaround to my previously mentioned 404 problem, I made empty static files of the old path. This, obviously, is not ideal)

@ajgeiss0702
Copy link
Contributor Author

An alternative I thought of would be to have the behavior you described, but with an option called appendAutoGeneratedRules (maybe something shorter) that would do what it says, and default to false. Append the auto-generated rules to the one you provided.

@Rich-Harris
Copy link
Member

Ok, re-reading the 404 thing I understand the motivation a bit better — this isn't just about manually defining excludes to avoid exceeding the limit.

I'm not sure I understand how appendAutoGeneratedRules would be different to autoGenerate. In both cases, the API design rings a little off for me because it's a sibling to include and exclude but is specific to exclude. I wonder if we should have a special <assets> string or something, that allows you to decide for yourself whether avoiding a function invocation for a static asset is more or less than avoiding one for bots looking for vulnerabilities:

adapter({
  exclude: ['/wp-admin', '<assets>']
})

// or
adapter({
  exclude: ['<assets>', '/wp-admin']
})

In effect, exclude would default to ['<assets>'] while include defaults to ['/*'].

Thoughts?

@ajgeiss0702
Copy link
Contributor Author

ajgeiss0702 commented Feb 27, 2023

Ok, re-reading the 404 thing I understand the motivation a bit better — this isn't just about manually defining excludes to avoid exceeding the limit.

I'm not sure I understand how appendAutoGeneratedRules would be different to autoGenerate. In both cases, the API design rings a little off for me because it's a sibling to include and exclude but is specific to exclude. I wonder if we should have a special <assets> string or something, that allows you to decide for yourself whether avoiding a function invocation for a static asset is more or less than avoiding one for bots looking for vulnerabilities:

adapter({
  exclude: ['/wp-admin', '<assets>']
})

// or
adapter({
  exclude: ['<assets>', '/wp-admin']
})

In effect, exclude would default to ['<assets>'] while include defaults to ['/*'].

Thoughts?

I believe that would be a good solution. I would assume there could also be something like <pregenerated> too (since static assets are not the only thing excluded).

Unless there are any objections, I will do this within the next few days.

@ajgeiss0702
Copy link
Contributor Author

Ok. My current plan is to have these 4 placeholders:

  • <app> - the /_app dir
  • <static> - files from /static
  • <prerendered> - prerendered pages
  • <auto> - all of the above

Let me know if theres something I'm missing

@Rich-Harris
Copy link
Member

Let's stick with <build>, <files> and <prerendered> for consistency with $service-worker

@ajgeiss0702
Copy link
Contributor Author

ajgeiss0702 commented Feb 27, 2023

Let's stick with <build>, <files> and <prerendered> for consistency with $service-worker

Ah ok. I couldn't find documentation on <build> and <files> at first, and since they arent named very clearly, I assumed they did something else.

Here is what I'm thinking now:

  • <build> for /_app
  • <files> for static files (from /static)
  • <prerendered> for prerendered pages
  • <all> all of the above

I will also update the documentation (at least for this adapter) to make it more clear on what <build> and <files> are

> kit@0.0.1 format /home/aiden/WebstormProjects/kit
> pnpm -r format

Scope: 39 of 40 workspace projects
packages/adapter-cloudflare format$ pnpm lint --write
packages/adapter-cloudflare-workers format$ pnpm lint --write
packages/amp format$ pnpm lint --write
packages/create-svelte format$ pnpm lint --write
packages/adapter-cloudflare-workers format: > @sveltejs/adapter-cloudflare-workers@1.0.6 lint /home/aiden/WebstormProjects/kit/packages/adapter-cloudflare-workers
packages/adapter-cloudflare-workers format: > prettier --check . --config ../../.prettierrc --ignore-path .gitignore "--write"
packages/amp format: > @sveltejs/amp@1.0.2 lint /home/aiden/WebstormProjects/kit/packages/amp
packages/amp format: > prettier --check . --config ../../.prettierrc --ignore-path .gitignore "--write"
packages/create-svelte format: > create-svelte@3.0.1 lint /home/aiden/WebstormProjects/kit/packages/create-svelte
packages/create-svelte format: > prettier --check . --config ../../.prettierrc --ignore-path ../../.gitignore --ignore-path .gitignore --plugin prettier-plugin-svelte --plugin-search-dir=. "--write"
packages/adapter-cloudflare format: > @sveltejs/adapter-cloudflare@2.0.2 lint /home/aiden/WebstormProjects/kit/packages/adapter-cloudflare
packages/adapter-cloudflare format: > prettier --check . --config ../../.prettierrc --ignore-path .gitignore "--write"
packages/amp format: Checking formatting...
packages/create-svelte format: Checking formatting...
packages/adapter-cloudflare-workers format: Checking formatting...
packages/adapter-cloudflare format: Checking formatting...
packages/amp format: All matched files use Prettier code style!
packages/amp format: Done
packages/kit format$ prettier --write . --config ../../.prettierrc --ignore-path .gitignore
packages/adapter-cloudflare-workers format: All matched files use Prettier code style!
packages/adapter-cloudflare-workers format: Done
packages/package format$ pnpm lint --write
packages/adapter-cloudflare format: All matched files use Prettier code style!
packages/adapter-cloudflare format: Done
packages/kit format: CHANGELOG.md 18ms
packages/kit format: package.json 27ms
packages/kit format: postinstall.js 27ms
packages/kit format: README.md 12ms
packages/kit format: scripts/cp.js 3ms
packages/kit format: src/cli.js 12ms
packages/kit format: src/constants.js 3ms
packages/kit format: src/core/adapt/builder.js 29ms
packages/kit format: src/core/adapt/builder.spec.js 9ms
packages/kit format: src/core/adapt/fixtures/basic/static/answer.md 1ms
packages/kit format: src/core/adapt/index.js 4ms
packages/kit format: src/core/config/default-error.html 52ms
packages/kit format: src/core/config/fixtures/default/svelte.config.js 2ms
packages/kit format: src/core/config/fixtures/export-string/svelte.config.js 2ms
packages/package format: > @sveltejs/package@2.0.1 lint /home/aiden/WebstormProjects/kit/packages/package
packages/package format: > prettier --check . --config ../../.prettierrc --ignore-path .gitignore "--write"
packages/kit format: src/core/config/index.js 16ms
packages/kit format: src/core/config/index.spec.js 35ms
packages/kit format: src/core/config/options.js 28ms
packages/package format: Checking formatting...
packages/kit format: src/core/config/types.d.ts 133ms
packages/kit format: src/core/env.js 13ms
packages/kit format: src/core/generate_manifest/index.js 18ms
packages/kit format: src/core/postbuild/analyse.js 16ms
packages/kit format: src/core/postbuild/crawl.js 18ms
packages/kit format: src/core/postbuild/crawl.spec.js 4ms
packages/kit format: src/core/postbuild/entities.js 147ms
packages/kit format: src/core/postbuild/entities.spec.js 14ms
packages/kit format: src/core/postbuild/fallback.js 7ms
packages/kit format: src/core/postbuild/fixtures/basic-href/input.html 2ms
packages/kit format: src/core/postbuild/fixtures/basic-href/output.json 2ms
packages/kit format: src/core/postbuild/fixtures/basic-src/input.html 1ms
packages/kit format: src/core/postbuild/fixtures/basic-src/output.json 2ms
packages/kit format: src/core/postbuild/fixtures/basic-srcset/input.html 2ms
packages/kit format: src/core/postbuild/fixtures/basic-srcset/output.json 3ms
packages/kit format: src/core/postbuild/fixtures/href-with-character-reference/input.html 1ms
packages/kit format: src/core/postbuild/fixtures/href-with-character-reference/output.json 2ms
packages/kit format: src/core/postbuild/fixtures/ids/input.html 2ms
packages/kit format: src/core/postbuild/fixtures/ids/output.json 2ms
packages/kit format: src/core/postbuild/fixtures/include-rel-external/input.html 1ms
packages/kit format: src/core/postbuild/fixtures/include-rel-external/output.json 2ms
packages/kit format: src/core/postbuild/fixtures/unquoted-attributes/input.html 2ms
packages/kit format: src/core/postbuild/fixtures/unquoted-attributes/output.json 2ms
packages/kit format: src/core/postbuild/prerender.js 49ms
packages/kit format: src/core/postbuild/queue.js 7ms
packages/kit format: src/core/postbuild/queue.spec.js 13ms
packages/create-svelte format: All matched files use Prettier code style!
packages/kit format: src/core/sync/create_manifest_data/conflict.js 1ms
packages/create-svelte format: Done
packages/kit format: src/core/sync/create_manifest_data/index.js 49ms
packages/kit format: src/core/sync/create_manifest_data/index.spec.js 68ms
packages/kit format: src/core/sync/create_manifest_data/sort.js 17ms
packages/kit format: src/core/sync/create_manifest_data/test/params/bar.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/params/foo.js 2ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/basic/+page.d.ts 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/basic/blog.json/+server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/basic/blog/[slug].json/+server.ts 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/custom-extension/blog.json/+server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/custom-extension/blog/[slug].json/+server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/hidden-dot/.unknown/foo.txt.js 0ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/hidden-dot/.well-known/dnt-policy.txt/+server.js 0ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/hidden-underscore/_foo.js 0ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/hidden-underscore/a/_b/c/d.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/hidden-underscore/e/f/g/h/+server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/hidden-underscore/i/_j.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/invalid-named-layout-reference/x/+page@.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/invalid-params/[foo][bar]/+server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/lockfiles/foo/+server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/multiple-slugs/[file].[ext]/+server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/named-layouts/(special)/+layout.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/named-layouts/(special)/+layout.server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/optional/[[foo]]bar/+server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/page-without-svelte-file/error/[...path]/+page.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/page-without-svelte-file/layout/exists/+layout.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/page-without-svelte-file/layout/redirect/+page.server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/rest-prefix-suffix/[...rest].json/+server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/rest/a/[...rest]/+page.server.js 1ms
packages/kit format: src/core/sync/create_manifest_data/test/samples/rest/b/[...rest]/+page.server.ts 1ms
packages/kit format: src/core/sync/create_manifest_data/types.d.ts 11ms
packages/kit format: src/core/sync/sync.js 4ms
packages/kit format: src/core/sync/ts.js 1ms
packages/kit format: src/core/sync/utils.js 2ms
packages/kit format: src/core/sync/write_ambient.js 4ms
packages/kit format: src/core/sync/write_client_manifest.js 9ms
packages/kit format: src/core/sync/write_root.js 3ms
packages/kit format: src/core/sync/write_server.js 4ms
packages/kit format: src/core/sync/write_tsconfig.js 16ms
packages/kit format: src/core/sync/write_tsconfig.spec.js 5ms
packages/package format: All matched files use Prettier code style!
packages/kit format: src/core/sync/write_types/index.js 54ms
packages/package format: Done
packages/kit format: src/core/sync/write_types/index.spec.js 12ms
packages/kit format: src/core/sync/write_types/test/layout-advanced/(main)/+layout.server.js 1ms
packages/kit format: src/core/sync/write_types/test/layout-advanced/(main)/+page.js 2ms
packages/kit format: src/core/sync/write_types/test/layout-advanced/(main)/sub/+page.js 1ms
packages/kit format: src/core/sync/write_types/test/layout-advanced/+layout.js 1ms
packages/kit format: src/core/sync/write_types/test/layout/+layout.js 1ms
packages/kit format: src/core/sync/write_types/test/layout/+layout.server.js 2ms
packages/kit format: src/core/sync/write_types/test/layout/+page.js 1ms
packages/kit format: src/core/sync/write_types/test/layout/+page.server.js 1ms
packages/kit format: src/core/sync/write_types/test/package.json 1ms
packages/kit format: src/core/sync/write_types/test/simple-page-server-and-shared/+page.js 1ms
packages/kit format: src/core/sync/write_types/test/simple-page-server-and-shared/+page.server.js 1ms
packages/kit format: src/core/sync/write_types/test/simple-page-server-only/+page.server.js 2ms
packages/kit format: src/core/sync/write_types/test/simple-page-server-only/sub/+page.server.js 1ms
packages/kit format: src/core/sync/write_types/test/simple-page-shared-only/+page.js 2ms
packages/kit format: src/core/sync/write_types/test/simple-page-shared-only/sub/+page.js 1ms
packages/kit format: src/core/sync/write_types/test/slugs-layout-not-all-pages-have-load/+layout.js 1ms
packages/kit format: src/core/sync/write_types/test/slugs-layout-not-all-pages-have-load/nested/[...rest]/+page.js 1ms
packages/kit format: src/core/sync/write_types/test/slugs-layout-not-all-pages-have-load/nested/+layout.js 1ms
packages/kit format: src/core/sync/write_types/test/slugs/[...rest]/+page.js 2ms
packages/kit format: src/core/sync/write_types/test/slugs/[slug]/+page.js 2ms
packages/kit format: src/core/sync/write_types/test/slugs/+layout.js 2ms
packages/kit format: src/core/sync/write_types/test/slugs/x/[[optional]]/+page.js 2ms
packages/kit format: src/core/sync/write_types/test/tsconfig.json 1ms
packages/kit format: src/core/utils.js 4ms
packages/kit format: src/exports/hooks/index.js 1ms
packages/kit format: src/exports/hooks/sequence.js 2ms
packages/kit format: src/exports/hooks/sequence.spec.js 6ms
packages/kit format: src/exports/index.js 3ms
packages/kit format: src/exports/node/index.js 6ms
packages/kit format: src/exports/node/polyfills.js 1ms
packages/kit format: src/exports/vite/build/build_server.js 5ms
packages/kit format: src/exports/vite/build/build_service_worker.js 4ms
packages/kit format: src/exports/vite/build/utils.js 4ms
packages/kit format: src/exports/vite/dev/index.js 27ms
packages/kit format: src/exports/vite/graph_analysis/index.js 5ms
packages/kit format: src/exports/vite/graph_analysis/index.spec.js 4ms
packages/kit format: src/exports/vite/graph_analysis/types.d.ts 1ms
packages/kit format: src/exports/vite/graph_analysis/utils.js 1ms
packages/kit format: src/exports/vite/graph_analysis/utils.spec.js 2ms
packages/kit format: src/exports/vite/index.js 32ms
packages/kit format: src/exports/vite/preview/index.js 9ms
packages/kit format: src/exports/vite/types.d.ts 3ms
packages/kit format: src/exports/vite/utils.js 6ms
packages/kit format: src/exports/vite/utils.spec.js 3ms
packages/kit format: src/internal.d.ts 5ms
packages/kit format: src/runtime/app/env.js 1ms
packages/kit format: src/runtime/app/environment.js 1ms
packages/kit format: src/runtime/app/forms.js 7ms
packages/kit format: src/runtime/app/navigation.js 2ms
packages/kit format: src/runtime/app/paths.js 1ms
packages/kit format: src/runtime/app/stores.js 4ms
packages/kit format: src/runtime/client/ambient.d.ts 6ms
packages/kit format: src/runtime/client/client.js 69ms
packages/kit format: src/runtime/client/constants.js 2ms
packages/kit format: src/runtime/client/fetcher.js 10ms
packages/kit format: src/runtime/client/parse.js 3ms
packages/kit format: src/runtime/client/session-storage.js 2ms
packages/kit format: src/runtime/client/singletons.js 2ms
packages/kit format: src/runtime/client/start.js 2ms
packages/kit format: src/runtime/client/types.d.ts 10ms
packages/kit format: src/runtime/client/utils.js 9ms
packages/kit format: src/runtime/control.js 4ms
packages/kit format: src/runtime/env/dynamic/private.js 1ms
packages/kit format: src/runtime/env/dynamic/public.js 1ms
packages/kit format: src/runtime/hash.js 2ms
packages/kit format: src/runtime/server/ambient.d.ts 2ms
packages/kit format: src/runtime/server/cookie.js 11ms
packages/kit format: src/runtime/server/cookie.spec.js 20ms
packages/kit format: src/runtime/server/data/index.js 12ms
packages/kit format: src/runtime/server/endpoint.js 7ms
packages/kit format: src/runtime/server/fetch.js 14ms
packages/kit format: src/runtime/server/index.js 7ms
packages/kit format: src/runtime/server/page/actions.js 17ms
packages/kit format: src/runtime/server/page/crypto.js 12ms
packages/kit format: src/runtime/server/page/crypto.spec.js 1ms
packages/kit format: src/runtime/server/page/csp.js 9ms
packages/kit format: src/runtime/server/page/csp.spec.js 8ms
packages/kit format: src/runtime/server/page/index.js 19ms
packages/kit format: src/runtime/server/page/load_data.js 13ms
packages/kit format: src/runtime/server/page/load_data.spec.js 4ms
packages/kit format: src/runtime/server/page/render.js 21ms
packages/kit format: src/runtime/server/page/respond_with_error.js 3ms
packages/kit format: src/runtime/server/page/serialize_data.js 4ms
packages/kit format: src/runtime/server/page/serialize_data.spec.js 6ms
packages/kit format: src/runtime/server/page/types.d.ts 5ms
packages/kit format: src/runtime/server/respond.js 18ms
packages/kit format: src/runtime/server/utils.js 7ms
packages/kit format: src/runtime/shared.js 2ms
packages/kit format: src/utils/array.js 1ms
packages/kit format: src/utils/error.js 2ms
packages/kit format: src/utils/escape.js 1ms
packages/kit format: src/utils/escape.spec.js 2ms
packages/kit format: src/utils/exports.js 3ms
packages/kit format: src/utils/exports.spec.js 4ms
packages/kit format: src/utils/filesystem.js 6ms
packages/kit format: src/utils/filesystem.spec.js 5ms
packages/kit format: src/utils/fork.js 3ms
packages/kit format: src/utils/functions.js 1ms
packages/kit format: src/utils/http.js 5ms
packages/kit format: src/utils/http.spec.js 1ms
packages/kit format: src/utils/misc.js 1ms
packages/kit format: src/utils/options.js 1ms
packages/kit format: src/utils/platform.js 1ms
packages/kit format: src/utils/promises.js 1ms
packages/kit format: src/utils/routing.js 6ms
packages/kit format: src/utils/routing.spec.js 11ms
packages/kit format: src/utils/unit_test.js 1ms
packages/kit format: src/utils/url.js 10ms
packages/kit format: src/utils/url.spec.js 8ms
packages/kit format: svelte-kit.js 1ms
packages/kit format: test/ambient.d.ts 5ms
packages/kit format: test/apps/amp/package.json 1ms
packages/kit format: test/apps/amp/playwright.config.js 2ms
packages/kit format: test/apps/amp/src/app.d.ts 2ms
packages/kit format: test/apps/amp/src/app.html 6ms
packages/kit format: test/apps/amp/src/hooks.server.js 3ms
packages/kit format: test/apps/amp/src/routes/+layout.js 1ms
packages/kit format: test/apps/amp/src/routes/http-equiv/cache-control/+page.js 1ms
packages/kit format: test/apps/amp/src/routes/origin.json/+server.js 1ms
packages/kit format: test/apps/amp/src/routes/origin/+page.js 1ms
packages/kit format: test/apps/amp/src/routes/styles/imported.css 1ms
packages/kit format: test/apps/amp/src/routes/valid.json/+server.js 1ms
packages/kit format: test/apps/amp/src/routes/valid/+page.js 1ms
packages/kit format: test/apps/amp/svelte.config.js 1ms
packages/kit format: test/apps/amp/test/test.js 5ms
packages/kit format: test/apps/amp/tsconfig.json 1ms
packages/kit format: test/apps/amp/vite.config.js 1ms
packages/kit format: test/apps/basics/package.json 1ms
packages/kit format: test/apps/basics/playwright.config.js 1ms
packages/kit format: test/apps/basics/src/app.d.ts 2ms
packages/kit format: test/apps/basics/src/app.html 2ms
packages/kit format: test/apps/basics/src/error.html 1ms
packages/kit format: test/apps/basics/src/global.d.ts 2ms
packages/kit format: test/apps/basics/src/hooks.client.js 2ms
packages/kit format: test/apps/basics/src/hooks.server.js 6ms
packages/kit format: test/apps/basics/src/params/lowercase.js 0ms
packages/kit format: test/apps/basics/src/params/numeric.js 0ms
packages/kit format: test/apps/basics/src/params/uppercase.js 1ms
packages/kit format: test/apps/basics/src/routes/+layout.js 1ms
packages/kit format: test/apps/basics/src/routes/+layout.server.js 2ms
packages/kit format: test/apps/basics/src/routes/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/accessibility/autofocus/b/+page.server.js 0ms
packages/kit format: test/apps/basics/src/routes/accessibility/c/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/actions/enhance/+page.server.js 2ms
packages/kit format: test/apps/basics/src/routes/actions/form-errors-persist-fields/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/actions/form-errors/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/actions/redirect/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/actions/success-data/+page.server.js 2ms
packages/kit format: test/apps/basics/src/routes/answer.json/+server.js 0ms
packages/kit format: test/apps/basics/src/routes/before-navigate/redirect/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/caching/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/caching/server-data/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/delete/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/encoding/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/encoding/not-decoded-twice/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/encoding/set/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/enhanced/basic/+page.server.ts 6ms
packages/kit format: test/apps/basics/src/routes/cookies/forwarded-in-etag/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/nested/a/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/nested/b/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/serialize/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/set-in-layout/+layout.server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/set-in-layout/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/set-more-than-one/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/set/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/cookies/shared.js 1ms
packages/kit format: test/apps/basics/src/routes/csrf/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/css/_base.css 2ms
packages/kit format: test/apps/basics/src/routes/css/_styles.css 1ms
packages/kit format: test/apps/basics/src/routes/cyclical-dynamic-import/_is_even.js 2ms
packages/kit format: test/apps/basics/src/routes/cyclical-dynamic-import/_is_odd.js 1ms
packages/kit format: test/apps/basics/src/routes/delete-route/[id].json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/encoded/[slug]/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/encoded/endpoint/+server.js 0ms
packages/kit format: test/apps/basics/src/routes/encoded/redirect/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/encoded/redirected/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/encoded/反应/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/encoded/苗条/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/endpoint-input/sha256/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/endpoint-output/body/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/endpoint-output/options/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/endpoint-output/stream-throw-error/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/endpoint-output/stream-typeerror/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/endpoint-output/stream/+server.js 2ms
packages/kit format: test/apps/basics/src/routes/env/includes/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/+layout.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/endpoint-shadow-not-ok/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/endpoint-shadow/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/endpoint-throw-error/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/endpoint-throw-redirect/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/endpoint.json/+server.js 0ms
packages/kit format: test/apps/basics/src/routes/errors/endpoint/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/error-html/make-root-fail/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/init-error-endpoint/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/invalid-load-response/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/invalid-route-response/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/invalid-server-load-response/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/load-client/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/load-error-client/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/load-error-server/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/load-error-string-server/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/load-server/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/load-status-without-error-client/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/nested-error-page/nope/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/page-endpoint/_shared.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/page-endpoint/get-explicit/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/page-endpoint/get-implicit/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/page-endpoint/post-explicit/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/errors/page-endpoint/post-implicit/+page.server.js 2ms
packages/kit format: test/apps/basics/src/routes/errors/stack-trace/_bad.js 1ms
packages/kit format: test/apps/basics/src/routes/favicon.ico/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/headers/class/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/headers/echo/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/headers/set-cookie/+layout.server.js 1ms
packages/kit format: test/apps/basics/src/routes/headers/set-cookie/sub/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/index.css 2ms
packages/kit format: test/apps/basics/src/routes/load/[dynamic].json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/[dynamic]/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/+page.js 0ms
packages/kit format: test/apps/basics/src/routes/load/accumulated/with-page-data/+page.js 0ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/bust/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/bust/count/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/bust/increment/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/bust/state.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/default/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/default/count/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/default/increment/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/default/state.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/force/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/force/count/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/force/increment/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/cache-control/force/state.js 1ms
packages/kit format: test/apps/basics/src/routes/load/change-detection/+layout.js 2ms
packages/kit format: test/apps/basics/src/routes/load/change-detection/data.json/+server.js 0ms
packages/kit format: test/apps/basics/src/routes/load/change-detection/one/[x]/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/change-detection/two/[y]/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/devalue/regex/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/dynamic-import-styles/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-cache-control/headers-diff/+page.js 2ms
packages/kit format: test/apps/basics/src/routes/load/fetch-cache-control/headers-diff/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-cache-control/load-data/+page.js 2ms
packages/kit format: test/apps/basics/src/routes/load/fetch-cache-control/load-data/+server.js 2ms
packages/kit format: test/apps/basics/src/routes/load/fetch-credentialed.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-credentialed/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-external-no-cookies/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-origin-external/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-origin-internal/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-origin-internal/resource/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-relative.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-relative/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-request-headers/+page.js 0ms
packages/kit format: test/apps/basics/src/routes/load/fetch-request-headers/data/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-request.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-request/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-response-headers.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/fetch-response-headers/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/depends/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/depends/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/forced-goto/+layout.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/forced-goto/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/forced-goto/state.js 0ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/forced/+layout.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/forced/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/forced/state.js 0ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/multiple/+layout.js 2ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/multiple/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/multiple/redirect/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/multiple/state.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/params/+layout.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/route/server/+layout.server.js 0ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/route/shared/+layout.js 1ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/server-fetch/+page.server.js 2ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/server-fetch/count.json/+server.js 2ms
packages/kit format: test/apps/basics/src/routes/load/invalidation/url/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/large-response/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/large-response/text.txt/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/mutated-url/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/no-server-load/a/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/no-server-load/b/+page.server.js 0ms
packages/kit format: test/apps/basics/src/routes/load/parent/server/[x]/[y]/[z]/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/parent/server/[x]/+layout.server.js 0ms
packages/kit format: test/apps/basics/src/routes/load/parent/server/+layout.server.js 0ms
packages/kit format: test/apps/basics/src/routes/load/parent/shared/[x]/[y]/[z]/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/parent/shared/[x]/+layout.js 1ms
packages/kit format: test/apps/basics/src/routes/load/parent/shared/+layout.js 1ms
packages/kit format: test/apps/basics/src/routes/load/props/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/raw-body.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/raw-body/dataview/+page.js 2ms
packages/kit format: test/apps/basics/src/routes/load/raw-body/string/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/raw-body/uint8array/+page.js 2ms
packages/kit format: test/apps/basics/src/routes/load/relay.json/+server.js 0ms
packages/kit format: test/apps/basics/src/routes/load/relay/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/serialization-post-request/+page.js 2ms
packages/kit format: test/apps/basics/src/routes/load/serialization-post.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/serialization-post/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/serialization/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/serialization/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/serialization/fetched-from-server.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/serialization/fetched-from-shared.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/server-data-nostore/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/server-data-reuse/with-changing-parent/+layout.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/server-data-reuse/with-changing-parent/with-server-load/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/server-data-reuse/with-server-load/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/server-fetch-request/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/set-cookie-fetch/+page.js 2ms
packages/kit format: test/apps/basics/src/routes/load/set-cookie-fetch/a.json/+server.js 2ms
packages/kit format: test/apps/basics/src/routes/load/set-cookie-fetch/b.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/static-file-with-hash/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/unchanged-parent/+layout.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/unchanged-parent/state.js 1ms
packages/kit format: test/apps/basics/src/routes/load/unchanged-parent/uses-parent/[slug]/+page.server.js 2ms
packages/kit format: test/apps/basics/src/routes/load/unchanged/+layout.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/unchanged/isolated/[slug]/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/unchanged/state.js 1ms
packages/kit format: test/apps/basics/src/routes/load/url-hash/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/url-query-param/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/url-query-param/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/url-to-string/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/window-fetch/correct/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/load/window-fetch/data.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/load/window-fetch/incorrect/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/nested-layout/error/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/nested-layout/foo/bar/nope/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/no-csr/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/no-csr/data.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/no-ssr/+layout.js 0ms
packages/kit format: test/apps/basics/src/routes/no-ssr/ssr-page-config/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/no-ssr/ssr-page-config/layout/+layout.js 1ms
packages/kit format: test/apps/basics/src/routes/no-ssr/ssr-page-config/layout/overwrite/+page.js 0ms
packages/kit format: test/apps/basics/src/routes/package.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/prerendering/mutative-endpoint/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/prerendering/mutative-endpoint/+page.server.ts 1ms
packages/kit format: test/apps/basics/src/routes/prerendering/prerendered-endpoint/api/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/prerendering/prerendered-endpoint/page/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/prerendering/prerendered-endpoint/proxy/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/query/echo/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/query/echo/utils.js 1ms
packages/kit format: test/apps/basics/src/routes/redirect-on-load/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/redirect/a/+page.js 0ms
packages/kit format: test/apps/basics/src/routes/redirect/b/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/redirect/in-handle/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/redirect/loopy/a/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/redirect/loopy/b/+page.js 0ms
packages/kit format: test/apps/basics/src/routes/redirect/missing-status/a/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/redirect/missing-status/b/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/ambiguous/[slug].json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/b.json/+server.js 0ms
packages/kit format: test/apps/basics/src/routes/routing/b/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/cancellation/a/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/content-negotiation/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/content-negotiation/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/link-outside-app-target/state.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/params-in-handle/[x]/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/preloading/hash-route/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/preloading/preload-error/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/preloading/preloaded.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/preloading/preloaded/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/rest/[...rest]/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/rest/[...rest]/deep.json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/rest/[...rest]/deep/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/rest/complex/[...parts].json/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/rest/complex/prefix-[...parts]/+page.js 2ms
packages/kit format: test/apps/basics/src/routes/routing/rest/path/[...ignored]/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/route-id/[x]/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/skipped/[one]/[two]/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/trailing-slash/+layout.js 0ms
packages/kit format: test/apps/basics/src/routes/routing/trailing-slash/always/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/routing/trailing-slash/ignore/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/set-cookie/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/dynamic/[slug]/+page.server.js 0ms
packages/kit format: test/apps/basics/src/routes/shadowed/error-get/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/error-post/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/missing-get/+page.server.js 0ms
packages/kit format: test/apps/basics/src/routes/shadowed/no-get/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/parent/+layout.server.js 0ms
packages/kit format: test/apps/basics/src/routes/shadowed/parent/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/parent/sub/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/post-success-redirect/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/redirect-get-with-cookie-from-fetch/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/redirect-get-with-cookie-from-fetch/endpoint/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/redirect-get-with-cookie/+page.server.js 2ms
packages/kit format: test/apps/basics/src/routes/shadowed/redirect-get/+page.server.js 0ms
packages/kit format: test/apps/basics/src/routes/shadowed/redirect-post-with-cookie/+page.server.js 2ms
packages/kit format: test/apps/basics/src/routes/shadowed/redirect-post/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/redirect/[a]/+page.server.js 0ms
packages/kit format: test/apps/basics/src/routes/shadowed/redirected/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/same-render/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/serialization/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/simple/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/shadowed/simple/post/+page.server.js 1ms
packages/kit format: test/apps/basics/src/routes/src/[...anything]/+server.js 1ms
packages/kit format: test/apps/basics/src/routes/store/data/[item]/+page.js 2ms
packages/kit format: test/apps/basics/src/routes/store/data/+layout.js 1ms
packages/kit format: test/apps/basics/src/routes/store/data/foo/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/store/data/store-update/same-keys/+layout.js 1ms
packages/kit format: test/apps/basics/src/routes/store/data/store-update/same-keys/same-deep/nested/+layout.js 0ms
packages/kit format: test/apps/basics/src/routes/store/data/store-update/same-keys/same-deep/nested/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/store/data/store-update/same-keys/same/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/store/navigating/a/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/store/navigating/b/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/store/navigating/c/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/unsafe-replacement/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/xss.json/+server.js 2ms
packages/kit format: test/apps/basics/src/routes/xss/+page.js 3ms
packages/kit format: test/apps/basics/src/routes/xss/query/+page.js 1ms
packages/kit format: test/apps/basics/src/routes/xss/query/utils.js 1ms
packages/kit format: test/apps/basics/src/routes/xss/shadow/+page.server.js 1ms
packages/kit format: test/apps/basics/src/service-worker.js 4ms
packages/kit format: test/apps/basics/static/empty.js 1ms
packages/kit format: test/apps/basics/static/load/foo.json 1ms
packages/kit format: test/apps/basics/static/static.json 1ms
packages/kit format: test/apps/basics/static/subdirectory/static.json 0ms
packages/kit format: test/apps/basics/svelte.config.js 1ms
packages/kit format: test/apps/basics/test/client.test.js 56ms
packages/kit format: test/apps/basics/test/cross-platform/client.test.js 53ms
packages/kit format: test/apps/basics/test/cross-platform/test.js 42ms
packages/kit format: test/apps/basics/test/server.test.js 19ms
packages/kit format: test/apps/basics/test/setup.js 1ms
packages/kit format: test/apps/basics/test/test.js 48ms
packages/kit format: test/apps/basics/tsconfig.json 1ms
packages/kit format: test/apps/basics/vite.config.js 1ms
packages/kit format: test/apps/dev-only/package.json 1ms
packages/kit format: test/apps/dev-only/playwright.config.js 1ms
packages/kit format: test/apps/dev-only/src/app.html 3ms
packages/kit format: test/apps/dev-only/src/hooks.server.js 1ms
packages/kit format: test/apps/dev-only/src/lib/server/blah/test.js 1ms
packages/kit format: test/apps/dev-only/src/lib/test.server.js 1ms
packages/kit format: test/apps/dev-only/src/routes/illegal-imports/server-only-modules/illegal.server.js 0ms
packages/kit format: test/apps/dev-only/svelte.config.js 0ms
packages/kit format: test/apps/dev-only/test/test.js 3ms
packages/kit format: test/apps/dev-only/tsconfig.json 1ms
packages/kit format: test/apps/dev-only/vite.config.js 1ms
packages/kit format: test/apps/options-2/package.json 1ms
packages/kit format: test/apps/options-2/playwright.config.js 1ms
packages/kit format: test/apps/options-2/README.md 2ms
packages/kit format: test/apps/options-2/src/app.html 3ms
packages/kit format: test/apps/options-2/src/service-worker.js 3ms
packages/kit format: test/apps/options-2/svelte.config.js 1ms
packages/kit format: test/apps/options-2/test/test.js 2ms
packages/kit format: test/apps/options-2/tsconfig.json 0ms
packages/kit format: test/apps/options-2/vite.config.js 1ms
packages/kit format: test/apps/options/package.json 1ms
packages/kit format: test/apps/options/playwright.config.js 1ms
packages/kit format: test/apps/options/public/answer.html 1ms
packages/kit format: test/apps/options/source/hooks.client.js 1ms
packages/kit format: test/apps/options/source/hooks.server.js 1ms
packages/kit format: test/apps/options/source/pages/+layout.server.js 1ms
packages/kit format: test/apps/options/source/pages/base/+page.js 1ms
packages/kit format: test/apps/options/source/pages/custom-extensions/[slug]/+page.svelte.md 1ms
packages/kit format: test/apps/options/source/pages/endpoint-with-slash/+server.js 0ms
packages/kit format: test/apps/options/source/pages/endpoint/+server.js 1ms
packages/kit format: test/apps/options/source/pages/mode/+page.server.js 1ms
packages/kit format: test/apps/options/source/pages/page-endpoint/+page.server.js 1ms
packages/kit format: test/apps/options/source/pages/preloading/preloaded/+page.server.js 0ms
packages/kit format: test/apps/options/source/pages/routing/link-outside-app-target/state.js 1ms
packages/kit format: test/apps/options/source/template.html 2ms
packages/kit format: test/apps/options/svelte.config.js 2ms
packages/kit format: test/apps/options/test/test.js 15ms
packages/kit format: test/apps/options/tsconfig.json 1ms
packages/kit format: test/apps/options/vite.custom.config.js 1ms
packages/kit format: test/apps/writes/package.json 1ms
packages/kit format: test/apps/writes/playwright.config.js 1ms
packages/kit format: test/apps/writes/src/app.html 2ms
packages/kit format: test/apps/writes/src/global.d.ts 2ms
packages/kit format: test/apps/writes/svelte.config.js 1ms
packages/kit format: test/apps/writes/test/test.js 3ms
packages/kit format: test/apps/writes/tsconfig.json 1ms
packages/kit format: test/apps/writes/vite.config.js 1ms
packages/kit format: test/build-errors/apps/prerenderable-incorrect-fragment/package.json 1ms
packages/kit format: test/build-errors/apps/prerenderable-incorrect-fragment/src/app.html 1ms
packages/kit format: test/build-errors/apps/prerenderable-incorrect-fragment/src/routes/+layout.js 1ms
packages/kit format: test/build-errors/apps/prerenderable-incorrect-fragment/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/prerenderable-incorrect-fragment/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/prerenderable-incorrect-fragment/vite.config.js 2ms
packages/kit format: test/build-errors/apps/prerenderable-not-prerendered/package.json 0ms
packages/kit format: test/build-errors/apps/prerenderable-not-prerendered/src/app.html 2ms
packages/kit format: test/build-errors/apps/prerenderable-not-prerendered/src/routes/[x]/+page.js 1ms
packages/kit format: test/build-errors/apps/prerenderable-not-prerendered/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/prerenderable-not-prerendered/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/prerenderable-not-prerendered/vite.config.js 1ms
packages/kit format: test/build-errors/apps/private-dynamic-env-dynamic-import/package.json 0ms
packages/kit format: test/build-errors/apps/private-dynamic-env-dynamic-import/src/app.html 2ms
packages/kit format: test/build-errors/apps/private-dynamic-env-dynamic-import/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/private-dynamic-env-dynamic-import/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/private-dynamic-env-dynamic-import/vite.config.js 1ms
packages/kit format: test/build-errors/apps/private-dynamic-env/package.json 0ms
packages/kit format: test/build-errors/apps/private-dynamic-env/src/app.html 1ms
packages/kit format: test/build-errors/apps/private-dynamic-env/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/private-dynamic-env/tsconfig.json 0ms
packages/kit format: test/build-errors/apps/private-dynamic-env/vite.config.js 1ms
packages/kit format: test/build-errors/apps/private-static-env-dynamic-import/package.json 0ms
packages/kit format: test/build-errors/apps/private-static-env-dynamic-import/src/app.html 1ms
packages/kit format: test/build-errors/apps/private-static-env-dynamic-import/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/private-static-env-dynamic-import/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/private-static-env-dynamic-import/vite.config.js 1ms
packages/kit format: test/build-errors/apps/private-static-env/package.json 0ms
packages/kit format: test/build-errors/apps/private-static-env/src/app.html 2ms
packages/kit format: test/build-errors/apps/private-static-env/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/private-static-env/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/private-static-env/vite.config.js 1ms
packages/kit format: test/build-errors/apps/server-only-folder-dynamic-import/package.json 0ms
packages/kit format: test/build-errors/apps/server-only-folder-dynamic-import/src/app.html 1ms
packages/kit format: test/build-errors/apps/server-only-folder-dynamic-import/src/lib/server/something/test.js 0ms
packages/kit format: test/build-errors/apps/server-only-folder-dynamic-import/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/server-only-folder-dynamic-import/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/server-only-folder-dynamic-import/vite.config.js 1ms
packages/kit format: test/build-errors/apps/server-only-folder/package.json 0ms
packages/kit format: test/build-errors/apps/server-only-folder/src/app.html 2ms
packages/kit format: test/build-errors/apps/server-only-folder/src/lib/server/something/test.js 0ms
packages/kit format: test/build-errors/apps/server-only-folder/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/server-only-folder/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/server-only-folder/vite.config.js 1ms
packages/kit format: test/build-errors/apps/server-only-module-dynamic-import/package.json 1ms
packages/kit format: test/build-errors/apps/server-only-module-dynamic-import/src/app.html 2ms
packages/kit format: test/build-errors/apps/server-only-module-dynamic-import/src/lib/test.server.js 1ms
packages/kit format: test/build-errors/apps/server-only-module-dynamic-import/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/server-only-module-dynamic-import/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/server-only-module-dynamic-import/vite.config.js 1ms
packages/kit format: test/build-errors/apps/server-only-module/package.json 1ms
packages/kit format: test/build-errors/apps/server-only-module/src/app.html 1ms
packages/kit format: test/build-errors/apps/server-only-module/src/lib/test.server.js 1ms
packages/kit format: test/build-errors/apps/server-only-module/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/server-only-module/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/server-only-module/vite.config.js 0ms
packages/kit format: test/build-errors/apps/syntax-error/package.json 0ms
packages/kit format: test/build-errors/apps/syntax-error/src/app.html 2ms
packages/kit format: test/build-errors/apps/syntax-error/src/lib/test.server.js 2ms
packages/kit format: test/build-errors/apps/syntax-error/svelte.config.js 1ms
packages/kit format: test/build-errors/apps/syntax-error/tsconfig.json 1ms
packages/kit format: test/build-errors/apps/syntax-error/vite.config.js 1ms
packages/kit format: test/build-errors/env.spec.js 3ms
packages/kit format: test/build-errors/package.json 1ms
packages/kit format: test/build-errors/prerender.spec.js 1ms
packages/kit format: test/build-errors/server-only.spec.js 2ms
packages/kit format: test/build-errors/syntax-error.js 1ms
packages/kit format: test/github-flaky-warning-reporter.js 3ms
packages/kit format: test/prerendering/basics/package.json 1ms
packages/kit format: test/prerendering/basics/src/app.d.ts 1ms
packages/kit format: test/prerendering/basics/src/app.html 2ms
packages/kit format: test/prerendering/basics/src/hooks.server.js 2ms
packages/kit format: test/prerendering/basics/src/routes/+layout.js 0ms
packages/kit format: test/prerendering/basics/src/routes/+page.server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/encoding/[path].json/+server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/encoding/path with spaces/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/encoding/redirect/+page.js 0ms
packages/kit format: test/prerendering/basics/src/routes/env/+page.server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/fetch-404/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/fetch-endpoint/also-not-buffered/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/fetch-endpoint/buffered.json/+server.js 0ms
packages/kit format: test/prerendering/basics/src/routes/fetch-endpoint/buffered/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/fetch-endpoint/not-buffered.json/+server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/fetch-endpoint/not-buffered/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/fetch-image/[...slug]/+server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/load-file-with-spaces/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/max-age/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/origin/+page.server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/origin/message.json/+server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/redirect-encoded/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/redirect-malicious/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/redirect-server/+page.server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/redirect/+page.js 1ms
packages/kit format: test/prerendering/basics/src/routes/shadowed-get/+page.server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/shadowed-post/+page.server.js 1ms
packages/kit format: test/prerendering/basics/src/routes/trailing-slash/+layout.js 1ms
packages/kit format: test/prerendering/basics/src/routes/trailing-slash/page/+page.server.js 0ms
packages/kit format: test/prerendering/basics/src/routes/trailing-slash/standalone-endpoint.json/+server.js 1ms
packages/kit format: test/prerendering/basics/src/service-worker.js 1ms
packages/kit format: test/prerendering/basics/static/file with spaces.json 1ms
packages/kit format: test/prerendering/basics/svelte.config.js 0ms
packages/kit format: test/prerendering/basics/test/test.js 9ms
packages/kit format: test/prerendering/basics/tsconfig.json 1ms
packages/kit format: test/prerendering/basics/vite.config.js 1ms
packages/kit format: test/prerendering/options/package.json 1ms
packages/kit format: test/prerendering/options/src/app.html 1ms
packages/kit format: test/prerendering/options/src/routes/+layout.js 0ms
packages/kit format: test/prerendering/options/src/routes/rss.xml/+server.js 1ms
packages/kit format: test/prerendering/options/svelte.config.js 1ms
packages/kit format: test/prerendering/options/test/test.js 2ms
packages/kit format: test/prerendering/options/tsconfig.json 1ms
packages/kit format: test/prerendering/options/vite.config.js 1ms
packages/kit format: test/prerendering/paths-base/package.json 1ms
packages/kit format: test/prerendering/paths-base/src/app.d.ts 1ms
packages/kit format: test/prerendering/paths-base/src/app.html 2ms
packages/kit format: test/prerendering/paths-base/src/hooks.server.js 1ms
packages/kit format: test/prerendering/paths-base/src/routes/+layout.js 1ms
packages/kit format: test/prerendering/paths-base/src/routes/redirect/+page.js 1ms
packages/kit format: test/prerendering/paths-base/svelte.config.js 1ms
packages/kit format: test/prerendering/paths-base/test/test.js 2ms
packages/kit format: test/prerendering/paths-base/tsconfig.json 1ms
packages/kit format: test/prerendering/paths-base/vite.config.js 2ms
packages/kit format: test/prerendering/ssr-false/package.json 1ms
packages/kit format: test/prerendering/ssr-false/src/app.d.ts 1ms
packages/kit format: test/prerendering/ssr-false/src/app.html 1ms
packages/kit format: test/prerendering/ssr-false/src/routes/+layout.js 1ms
packages/kit format: test/prerendering/ssr-false/src/routes/not-prerenderable/+page.server.js 1ms
packages/kit format: test/prerendering/ssr-false/src/routes/opt-out/+page.js 0ms
packages/kit format: test/prerendering/ssr-false/src/routes/prerenderable-2/+page.server.js 1ms
packages/kit format: test/prerendering/ssr-false/src/routes/prerenderable-3/+page.js 1ms
packages/kit format: test/prerendering/ssr-false/src/routes/prerenderable/+page.js 1ms
packages/kit format: test/prerendering/ssr-false/svelte.config.js 1ms
packages/kit format: test/prerendering/ssr-false/test/test.js 2ms
packages/kit format: test/prerendering/ssr-false/tsconfig.json 1ms
packages/kit format: test/prerendering/ssr-false/vite.config.js 1ms
packages/kit format: test/setup.js 1ms
packages/kit format: test/tsconfig.json 1ms
packages/kit format: test/types/actions.test.ts 4ms
packages/kit format: test/types/tsconfig.json 0ms
packages/kit format: test/utils.d.ts 6ms
packages/kit format: test/utils.js 23ms
packages/kit format: tsconfig.json 2ms
packages/kit format: types/ambient.d.ts 26ms
packages/kit format: types/index.d.ts 64ms
packages/kit format: types/internal.d.ts 29ms
packages/kit format: types/private.d.ts 15ms
packages/kit format: types/synthetic/$env+dynamic+private.md 5ms
packages/kit format: types/synthetic/$env+dynamic+public.md 4ms
packages/kit format: types/synthetic/$env+static+private.md 5ms
packages/kit format: types/synthetic/$env+static+public.md 3ms
packages/kit format: types/synthetic/$lib.md 2ms
packages/kit format: Done
packages/adapter-auto format$ pnpm lint --write
packages/adapter-netlify format$ pnpm lint --write
packages/adapter-node format$ pnpm lint --write
packages/adapter-static format$ pnpm lint --write
packages/adapter-netlify format: > @sveltejs/adapter-netlify@2.0.5 lint /home/aiden/WebstormProjects/kit/packages/adapter-netlify
packages/adapter-netlify format: > prettier --check . --config ../../.prettierrc --ignore-path .gitignore "--write"
packages/adapter-auto format: > @sveltejs/adapter-auto@2.0.0 lint /home/aiden/WebstormProjects/kit/packages/adapter-auto
packages/adapter-auto format: > prettier --check . --config ../../.prettierrc --ignore-path .gitignore "--write"
packages/adapter-static format: > @sveltejs/adapter-static@2.0.1 lint /home/aiden/WebstormProjects/kit/packages/adapter-static
packages/adapter-static format: > prettier --check . --config ../../.prettierrc --ignore-path .gitignore "--write"
packages/adapter-node format: > @sveltejs/adapter-node@1.2.0 lint /home/aiden/WebstormProjects/kit/packages/adapter-node
packages/adapter-node format: > prettier --check . --config ../../.prettierrc --ignore-path .gitignore "--write"
packages/adapter-netlify format: Checking formatting...
packages/adapter-auto format: Checking formatting...
packages/adapter-static format: Checking formatting...
packages/adapter-node format: Checking formatting...
packages/adapter-auto format: All matched files use Prettier code style!
packages/adapter-auto format: Done
packages/adapter-vercel format$ pnpm lint --write
packages/adapter-netlify format: All matched files use Prettier code style!
packages/adapter-netlify format: Done
packages/adapter-node format: All matched files use Prettier code style!
packages/adapter-node format: Done
packages/adapter-static format: All matched files use Prettier code style!
packages/adapter-static format: Done
packages/adapter-vercel format: > @sveltejs/adapter-vercel@2.0.4 lint /home/aiden/WebstormProjects/kit/packages/adapter-vercel
packages/adapter-vercel format: > prettier --check . --config ../../.prettierrc --ignore-path .gitignore "--write"
packages/adapter-vercel format: Checking formatting...
packages/adapter-vercel format: All matched files use Prettier code style!
packages/adapter-vercel format: Done
@ajgeiss0702
Copy link
Contributor Author

Ok, it's implemented. To be safe, I will do more testing tonight, but please feel free to review.

@Rich-Harris
Copy link
Member

Tweaked the logic a bit:

  • got rid of the 'always add /* if include is empty' — this is an error on the user's part and should be treated as such. Hiding errors never helps in the end
  • if include.length > 100, fail, because that will result in application errors
  • if include.length + exclude.length > 100, truncate exclude, because the application will still work then (it's just less efficient). Never truncate include

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants