@sealcode/sealgen 0.8.44 → 0.8.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/index.d.ts +1 -0
- package/@types/page/stateful-page.d.ts +34 -0
- package/@types/templates/stateful-page.d.ts +1 -0
- package/@types/utils/base64.d.ts +2 -0
- package/@types/utils/utils.d.ts +3 -0
- package/lib/add-route.js +3 -0
- package/lib/generate-routes.js +2 -1
- package/lib/index.js +1 -0
- package/lib/make-env.js +1 -1
- package/lib/mount.js +1 -1
- package/lib/page/stateful-page.js +117 -0
- package/lib/templates/stateful-page.js +66 -0
- package/lib/utils/base64.js +12 -0
- package/lib/utils/utils.js +6 -1
- package/package.json +2 -1
- package/tsconfig.json +0 -1
- package/.arcconfig +0 -12
- package/.arclint +0 -18
- package/.eslintrc.js +0 -38
- package/.mocharc.js +0 -10
- package/.nyc_output/00b15432-2e8d-4b16-9dd6-7e23314363c9.json +0 -1
- package/.nyc_output/0190dc00-d309-48d0-a5db-e9484e3c7334.json +0 -1
- package/.nyc_output/04bfea78-9274-4d35-b7e4-d0bf42636911.json +0 -1
- package/.nyc_output/0d4efe84-14e0-4bf0-bf22-b95472fe2be4.json +0 -1
- package/.nyc_output/1faea508-9cb4-46f4-b7ad-94a816e1ee7d.json +0 -1
- package/.nyc_output/2b2df469-dc31-48c9-ab34-68a74266e2c2.json +0 -1
- package/.nyc_output/32b5e63b-c8f8-4d9d-a09b-d97656c0e3f6.json +0 -1
- package/.nyc_output/442ce939-4f43-496b-a8a9-2f1fb9cfa619.json +0 -1
- package/.nyc_output/4573bb03-90d4-4408-ba15-b6835c618b33.json +0 -1
- package/.nyc_output/468fbd9c-6a27-4e33-8423-dbaec01e62a9.json +0 -1
- package/.nyc_output/51894388-b88d-4f0b-8d5b-4a1dd71cf668.json +0 -1
- package/.nyc_output/56263b22-3ed5-4ce2-9bbb-f2c9575cdeee.json +0 -1
- package/.nyc_output/6934a9dd-6431-48aa-93f1-4eeef0095773.json +0 -1
- package/.nyc_output/70979008-f285-481b-bb09-ca48a1376f81.json +0 -1
- package/.nyc_output/817c9485-a0ef-486d-8dee-906456fe77fb.json +0 -1
- package/.nyc_output/9f725153-f783-4948-81d3-c4cc792738bf.json +0 -1
- package/.nyc_output/cd4d852c-f8fc-4cb1-807b-7d053a0ef8fc.json +0 -1
- package/.nyc_output/ec3011f0-8180-492e-8d85-4d92484ccb44.json +0 -1
- package/.nyc_output/f78b831a-65ca-497d-9f9e-001a3efa6f54.json +0 -1
- package/.nyc_output/processinfo/00b15432-2e8d-4b16-9dd6-7e23314363c9.json +0 -1
- package/.nyc_output/processinfo/0190dc00-d309-48d0-a5db-e9484e3c7334.json +0 -1
- package/.nyc_output/processinfo/04bfea78-9274-4d35-b7e4-d0bf42636911.json +0 -1
- package/.nyc_output/processinfo/0d4efe84-14e0-4bf0-bf22-b95472fe2be4.json +0 -1
- package/.nyc_output/processinfo/1faea508-9cb4-46f4-b7ad-94a816e1ee7d.json +0 -1
- package/.nyc_output/processinfo/2b2df469-dc31-48c9-ab34-68a74266e2c2.json +0 -1
- package/.nyc_output/processinfo/32b5e63b-c8f8-4d9d-a09b-d97656c0e3f6.json +0 -1
- package/.nyc_output/processinfo/442ce939-4f43-496b-a8a9-2f1fb9cfa619.json +0 -1
- package/.nyc_output/processinfo/4573bb03-90d4-4408-ba15-b6835c618b33.json +0 -1
- package/.nyc_output/processinfo/468fbd9c-6a27-4e33-8423-dbaec01e62a9.json +0 -1
- package/.nyc_output/processinfo/51894388-b88d-4f0b-8d5b-4a1dd71cf668.json +0 -1
- package/.nyc_output/processinfo/56263b22-3ed5-4ce2-9bbb-f2c9575cdeee.json +0 -1
- package/.nyc_output/processinfo/6934a9dd-6431-48aa-93f1-4eeef0095773.json +0 -1
- package/.nyc_output/processinfo/70979008-f285-481b-bb09-ca48a1376f81.json +0 -1
- package/.nyc_output/processinfo/817c9485-a0ef-486d-8dee-906456fe77fb.json +0 -1
- package/.nyc_output/processinfo/9f725153-f783-4948-81d3-c4cc792738bf.json +0 -1
- package/.nyc_output/processinfo/cd4d852c-f8fc-4cb1-807b-7d053a0ef8fc.json +0 -1
- package/.nyc_output/processinfo/ec3011f0-8180-492e-8d85-4d92484ccb44.json +0 -1
- package/.nyc_output/processinfo/f78b831a-65ca-497d-9f9e-001a3efa6f54.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/.nycrc +0 -6
- package/.prettierrc +0 -21
- package/.xunit +0 -47
- package/@types/forms/fields/files-multiple.d.ts +0 -12
- package/@types/sealgen-url.d.ts +0 -0
- package/@types/tests/manual/multiform.d.ts +0 -1
- package/coverage/clover.xml +0 -2240
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -79
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -231
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -170
- package/coverage/lcov-report/src/add-collection.ts.html +0 -173
- package/coverage/lcov-report/src/add-route.test.ts.html +0 -254
- package/coverage/lcov-report/src/add-route.ts.html +0 -338
- package/coverage/lcov-report/src/build.ts.html +0 -359
- package/coverage/lcov-report/src/cli.ts.html +0 -188
- package/coverage/lcov-report/src/components/components.ts.html +0 -86
- package/coverage/lcov-report/src/components/index.html +0 -141
- package/coverage/lcov-report/src/components/tabs.ts.html +0 -365
- package/coverage/lcov-report/src/components/toggle-modal.ts.html +0 -236
- package/coverage/lcov-report/src/example.test.ts.html +0 -89
- package/coverage/lcov-report/src/find-scss-includes.ts.html +0 -176
- package/coverage/lcov-report/src/forms/controls/array.ts.html +0 -758
- package/coverage/lcov-report/src/forms/controls/autocomplete.ts.html +0 -179
- package/coverage/lcov-report/src/forms/controls/big-radio-group.ts.html +0 -224
- package/coverage/lcov-report/src/forms/controls/checkbox-group.ts.html +0 -293
- package/coverage/lcov-report/src/forms/controls/checkbox.ts.html +0 -182
- package/coverage/lcov-report/src/forms/controls/checkboxed-list-input.ts.html +0 -230
- package/coverage/lcov-report/src/forms/controls/collapsible-checkbox-group.ts.html +0 -164
- package/coverage/lcov-report/src/forms/controls/collapsible-field-group.ts.html +0 -362
- package/coverage/lcov-report/src/forms/controls/controls.ts.html +0 -170
- package/coverage/lcov-report/src/forms/controls/derived-frame.ts.html +0 -353
- package/coverage/lcov-report/src/forms/controls/derived.ts.html +0 -404
- package/coverage/lcov-report/src/forms/controls/dropdown.ts.html +0 -341
- package/coverage/lcov-report/src/forms/controls/editable-collection-subset.ts.html +0 -371
- package/coverage/lcov-report/src/forms/controls/field-group.ts.html +0 -287
- package/coverage/lcov-report/src/forms/controls/file.ts.html +0 -221
- package/coverage/lcov-report/src/forms/controls/form-control.ts.html +0 -152
- package/coverage/lcov-report/src/forms/controls/form-field-control.ts.html +0 -146
- package/coverage/lcov-report/src/forms/controls/form-header.ts.html +0 -137
- package/coverage/lcov-report/src/forms/controls/form-paragraph.ts.html +0 -113
- package/coverage/lcov-report/src/forms/controls/frame.ts.html +0 -158
- package/coverage/lcov-report/src/forms/controls/hidden-input.ts.html +0 -146
- package/coverage/lcov-report/src/forms/controls/html.ts.html +0 -194
- package/coverage/lcov-report/src/forms/controls/index.html +0 -561
- package/coverage/lcov-report/src/forms/controls/multiple-files.ts.html +0 -848
- package/coverage/lcov-report/src/forms/controls/multiple-photos.ts.html +0 -212
- package/coverage/lcov-report/src/forms/controls/number.ts.html +0 -194
- package/coverage/lcov-report/src/forms/controls/photo.ts.html +0 -302
- package/coverage/lcov-report/src/forms/controls/radio.ts.html +0 -209
- package/coverage/lcov-report/src/forms/controls/reverse-single-reference.ts.html +0 -230
- package/coverage/lcov-report/src/forms/controls/simple-input.ts.html +0 -524
- package/coverage/lcov-report/src/forms/controls/textarea.ts.html +0 -260
- package/coverage/lcov-report/src/forms/controls/tickable.ts.html +0 -461
- package/coverage/lcov-report/src/forms/fields/boolean.test.ts.html +0 -188
- package/coverage/lcov-report/src/forms/fields/boolean.ts.html +0 -269
- package/coverage/lcov-report/src/forms/fields/checkboxed-list.ts.html +0 -278
- package/coverage/lcov-report/src/forms/fields/collection-field.ts.html +0 -266
- package/coverage/lcov-report/src/forms/fields/email.test.ts.html +0 -152
- package/coverage/lcov-report/src/forms/fields/email.ts.html +0 -140
- package/coverage/lcov-report/src/forms/fields/enum-multiple.test.ts.html +0 -173
- package/coverage/lcov-report/src/forms/fields/enum-multiple.ts.html +0 -266
- package/coverage/lcov-report/src/forms/fields/enum.test.ts.html +0 -155
- package/coverage/lcov-report/src/forms/fields/enum.ts.html +0 -248
- package/coverage/lcov-report/src/forms/fields/existing-sealious-value.ts.html +0 -146
- package/coverage/lcov-report/src/forms/fields/field.ts.html +0 -596
- package/coverage/lcov-report/src/forms/fields/file.ts.html +0 -347
- package/coverage/lcov-report/src/forms/fields/index.html +0 -456
- package/coverage/lcov-report/src/forms/fields/multiple-files.ts.html +0 -140
- package/coverage/lcov-report/src/forms/fields/number.test.ts.html +0 -182
- package/coverage/lcov-report/src/forms/fields/number.ts.html +0 -290
- package/coverage/lcov-report/src/forms/fields/pick-from-list.test.ts.html +0 -137
- package/coverage/lcov-report/src/forms/fields/pick-from-list.ts.html +0 -236
- package/coverage/lcov-report/src/forms/fields/proxy-field.ts.html +0 -152
- package/coverage/lcov-report/src/forms/fields/regexp.test.ts.html +0 -155
- package/coverage/lcov-report/src/forms/fields/regexp.ts.html +0 -239
- package/coverage/lcov-report/src/forms/fields/reverse-single-reference.ts.html +0 -140
- package/coverage/lcov-report/src/forms/fields/simple-form-field.ts.html +0 -170
- package/coverage/lcov-report/src/forms/fields/structured-array.ts.html +0 -161
- package/coverage/lcov-report/src/forms/form.test.ts.html +0 -1133
- package/coverage/lcov-report/src/forms/form.ts.html +0 -962
- package/coverage/lcov-report/src/forms/index.html +0 -156
- package/coverage/lcov-report/src/forms/multiform.test.ts.html +0 -1700
- package/coverage/lcov-report/src/forms/multiform.ts.html +0 -788
- package/coverage/lcov-report/src/generate-collections.ts.html +0 -311
- package/coverage/lcov-report/src/generate-routes.ts.html +0 -440
- package/coverage/lcov-report/src/index.html +0 -321
- package/coverage/lcov-report/src/index.ts.html +0 -152
- package/coverage/lcov-report/src/make-env.ts.html +0 -125
- package/coverage/lcov-report/src/make-hidden-inputs.ts.html +0 -152
- package/coverage/lcov-report/src/mount.ts.html +0 -335
- package/coverage/lcov-report/src/page/access-control.ts.html +0 -134
- package/coverage/lcov-report/src/page/index.html +0 -186
- package/coverage/lcov-report/src/page/list.ts.html +0 -800
- package/coverage/lcov-report/src/page/mountable-with-fields.ts.html +0 -554
- package/coverage/lcov-report/src/page/mountable.ts.html +0 -119
- package/coverage/lcov-report/src/page/page.ts.html +0 -218
- package/coverage/lcov-report/src/page/props-parser.ts.html +0 -194
- package/coverage/lcov-report/src/run.ts.html +0 -80
- package/coverage/lcov-report/src/sanitize.ts.html +0 -107
- package/coverage/lcov-report/src/templates/collection.ts.html +0 -113
- package/coverage/lcov-report/src/templates/form.ts.html +0 -260
- package/coverage/lcov-report/src/templates/index.html +0 -216
- package/coverage/lcov-report/src/templates/list.ts.html +0 -305
- package/coverage/lcov-report/src/templates/multiform.ts.html +0 -254
- package/coverage/lcov-report/src/templates/page.ts.html +0 -155
- package/coverage/lcov-report/src/templates/post.ts.html +0 -143
- package/coverage/lcov-report/src/templates/redirect.ts.html +0 -146
- package/coverage/lcov-report/src/templates/route-test.ts.html +0 -161
- package/coverage/lcov-report/src/test_utils/index.html +0 -111
- package/coverage/lcov-report/src/test_utils/locator_is_visible.ts.html +0 -131
- package/coverage/lcov-report/src/utils/assert-throws.ts.html +0 -134
- package/coverage/lcov-report/src/utils/browser-creator.js.html +0 -110
- package/coverage/lcov-report/src/utils/escape-url-params.ts.html +0 -122
- package/coverage/lcov-report/src/utils/exec.ts.html +0 -170
- package/coverage/lcov-report/src/utils/format-external-url.ts.html +0 -119
- package/coverage/lcov-report/src/utils/import-path.ts.html +0 -155
- package/coverage/lcov-report/src/utils/index.html +0 -366
- package/coverage/lcov-report/src/utils/input-wrapper.ts.html +0 -143
- package/coverage/lcov-report/src/utils/list-collections.ts.html +0 -128
- package/coverage/lcov-report/src/utils/make-slug.ts.html +0 -95
- package/coverage/lcov-report/src/utils/natural-numbers.ts.html +0 -95
- package/coverage/lcov-report/src/utils/prettier.ts.html +0 -119
- package/coverage/lcov-report/src/utils/question.ts.html +0 -149
- package/coverage/lcov-report/src/utils/render-attributes.ts.html +0 -131
- package/coverage/lcov-report/src/utils/sleep.ts.html +0 -89
- package/coverage/lcov-report/src/utils/translate.ts.html +0 -119
- package/coverage/lcov-report/src/utils/url-with-new-params.ts.html +0 -107
- package/coverage/lcov-report/src/utils/utils.ts.html +0 -122
- package/coverage/lcov-report/src/utils/walk.ts.html +0 -140
- package/coverage/lcov.info +0 -4697
- package/jenkins.sanity.sh +0 -3
- package/lib/add-collection.js.map +0 -1
- package/lib/add-route.js.map +0 -1
- package/lib/add-route.test.js.map +0 -1
- package/lib/build.js.map +0 -1
- package/lib/cli.js.map +0 -1
- package/lib/components/components.js.map +0 -1
- package/lib/components/tabs.js.map +0 -1
- package/lib/components/toggle-modal.js.map +0 -1
- package/lib/example.test.js.map +0 -1
- package/lib/find-scss-includes.js.map +0 -1
- package/lib/forms/controls/array.js.map +0 -1
- package/lib/forms/controls/autocomplete.js.map +0 -1
- package/lib/forms/controls/big-radio-group.js.map +0 -1
- package/lib/forms/controls/checkbox-group.js.map +0 -1
- package/lib/forms/controls/checkbox.js.map +0 -1
- package/lib/forms/controls/checkboxed-list-input.js.map +0 -1
- package/lib/forms/controls/collapsible-checkbox-group.js.map +0 -1
- package/lib/forms/controls/collapsible-field-group.js.map +0 -1
- package/lib/forms/controls/controls.js.map +0 -1
- package/lib/forms/controls/derived-frame.js.map +0 -1
- package/lib/forms/controls/derived.js.map +0 -1
- package/lib/forms/controls/dropdown.js.map +0 -1
- package/lib/forms/controls/editable-collection-subset.js.map +0 -1
- package/lib/forms/controls/field-group.js.map +0 -1
- package/lib/forms/controls/file.js.map +0 -1
- package/lib/forms/controls/form-control.js.map +0 -1
- package/lib/forms/controls/form-field-control.js.map +0 -1
- package/lib/forms/controls/form-header.js.map +0 -1
- package/lib/forms/controls/form-paragraph.js.map +0 -1
- package/lib/forms/controls/frame.js.map +0 -1
- package/lib/forms/controls/hidden-input.js.map +0 -1
- package/lib/forms/controls/html.js.map +0 -1
- package/lib/forms/controls/multiple-files.js.map +0 -1
- package/lib/forms/controls/multiple-photos.js.map +0 -1
- package/lib/forms/controls/number.js.map +0 -1
- package/lib/forms/controls/photo.js.map +0 -1
- package/lib/forms/controls/radio.js.map +0 -1
- package/lib/forms/controls/reverse-single-reference.js.map +0 -1
- package/lib/forms/controls/simple-input.js.map +0 -1
- package/lib/forms/controls/textarea.js.map +0 -1
- package/lib/forms/controls/tickable.js.map +0 -1
- package/lib/forms/fields/boolean.js.map +0 -1
- package/lib/forms/fields/boolean.test.js.map +0 -1
- package/lib/forms/fields/checkboxed-list.js.map +0 -1
- package/lib/forms/fields/collection-field.js.map +0 -1
- package/lib/forms/fields/email.js.map +0 -1
- package/lib/forms/fields/email.test.js.map +0 -1
- package/lib/forms/fields/enum-multiple.js.map +0 -1
- package/lib/forms/fields/enum-multiple.test.js.map +0 -1
- package/lib/forms/fields/enum.js.map +0 -1
- package/lib/forms/fields/enum.test.js.map +0 -1
- package/lib/forms/fields/existing-sealious-value.js.map +0 -1
- package/lib/forms/fields/field.js.map +0 -1
- package/lib/forms/fields/file.js.map +0 -1
- package/lib/forms/fields/files-multiple.js +0 -18
- package/lib/forms/fields/files-multiple.js.map +0 -1
- package/lib/forms/fields/multiple-files.js.map +0 -1
- package/lib/forms/fields/number.js.map +0 -1
- package/lib/forms/fields/number.test.js.map +0 -1
- package/lib/forms/fields/pick-from-list.js.map +0 -1
- package/lib/forms/fields/pick-from-list.test.js.map +0 -1
- package/lib/forms/fields/proxy-field.js.map +0 -1
- package/lib/forms/fields/regexp.js.map +0 -1
- package/lib/forms/fields/regexp.test.js.map +0 -1
- package/lib/forms/fields/reverse-single-reference.js.map +0 -1
- package/lib/forms/fields/simple-form-field.js.map +0 -1
- package/lib/forms/fields/structured-array.js.map +0 -1
- package/lib/forms/form.js.map +0 -1
- package/lib/forms/form.test.js.map +0 -1
- package/lib/forms/multiform.js.map +0 -1
- package/lib/forms/multiform.test.js.map +0 -1
- package/lib/generate-collections.js.map +0 -1
- package/lib/generate-routes.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/make-env.js.map +0 -1
- package/lib/make-hidden-inputs.js.map +0 -1
- package/lib/mount.js.map +0 -1
- package/lib/page/access-control.js.map +0 -1
- package/lib/page/list.js.map +0 -1
- package/lib/page/mountable-with-fields.js.map +0 -1
- package/lib/page/mountable.js.map +0 -1
- package/lib/page/page.js.map +0 -1
- package/lib/page/props-parser.js.map +0 -1
- package/lib/run.js.map +0 -1
- package/lib/sanitize.js.map +0 -1
- package/lib/sealgen-url.js +0 -1
- package/lib/sealgen-url.js.map +0 -1
- package/lib/templates/collection.js.map +0 -1
- package/lib/templates/form.js.map +0 -1
- package/lib/templates/list.js.map +0 -1
- package/lib/templates/multiform.js.map +0 -1
- package/lib/templates/page.js.map +0 -1
- package/lib/templates/post.js.map +0 -1
- package/lib/templates/redirect.js.map +0 -1
- package/lib/templates/route-test.js.map +0 -1
- package/lib/test_utils/locator_is_visible.js.map +0 -1
- package/lib/tests/manual/multiform.js +0 -95
- package/lib/tests/manual/multiform.js.map +0 -1
- package/lib/utils/assert-throws.js.map +0 -1
- package/lib/utils/browser-creator.js.map +0 -1
- package/lib/utils/escape-url-params.js.map +0 -1
- package/lib/utils/exec.js.map +0 -1
- package/lib/utils/format-external-url.js.map +0 -1
- package/lib/utils/import-path.js.map +0 -1
- package/lib/utils/input-wrapper.js.map +0 -1
- package/lib/utils/list-collections.js.map +0 -1
- package/lib/utils/make-slug.js.map +0 -1
- package/lib/utils/natural-numbers.js.map +0 -1
- package/lib/utils/prettier.js.map +0 -1
- package/lib/utils/question.js.map +0 -1
- package/lib/utils/render-attributes.js.map +0 -1
- package/lib/utils/sleep.js.map +0 -1
- package/lib/utils/translate.js.map +0 -1
- package/lib/utils/url-with-new-params.js.map +0 -1
- package/lib/utils/utils.js.map +0 -1
- package/lib/utils/walk.js.map +0 -1
- package/mocha_root_hooks.js +0 -6
- package/src/add-collection.ts +0 -31
- package/src/add-route.test.ts +0 -58
- package/src/add-route.ts +0 -86
- package/src/build.ts +0 -94
- package/src/cli.ts +0 -36
- package/src/components/components.ts +0 -2
- package/src/components/tabs.ts +0 -95
- package/src/components/toggle-modal.ts +0 -52
- package/src/example.test.ts +0 -3
- package/src/find-scss-includes.ts +0 -32
- package/src/forms/controls/array.ts +0 -226
- package/src/forms/controls/autocomplete.ts +0 -33
- package/src/forms/controls/big-radio-group.ts +0 -48
- package/src/forms/controls/checkbox-group.ts +0 -71
- package/src/forms/controls/checkbox.ts +0 -34
- package/src/forms/controls/checkboxed-list-input.ts +0 -50
- package/src/forms/controls/collapsible-checkbox-group.ts +0 -28
- package/src/forms/controls/collapsible-field-group.ts +0 -94
- package/src/forms/controls/controls.ts +0 -30
- package/src/forms/controls/derived-frame.ts +0 -91
- package/src/forms/controls/derived.ts +0 -108
- package/src/forms/controls/dropdown.ts +0 -87
- package/src/forms/controls/editable-collection-subset.ts +0 -97
- package/src/forms/controls/field-group.ts +0 -69
- package/src/forms/controls/file.ts +0 -47
- package/src/forms/controls/form-control.ts +0 -24
- package/src/forms/controls/form-field-control.ts +0 -22
- package/src/forms/controls/form-header.ts +0 -19
- package/src/forms/controls/form-paragraph.ts +0 -11
- package/src/forms/controls/frame.ts +0 -26
- package/src/forms/controls/hidden-input.ts +0 -22
- package/src/forms/controls/html.ts +0 -38
- package/src/forms/controls/multiple-files.ts +0 -256
- package/src/forms/controls/multiple-photos.ts +0 -44
- package/src/forms/controls/number.ts +0 -38
- package/src/forms/controls/photo.ts +0 -74
- package/src/forms/controls/radio.ts +0 -43
- package/src/forms/controls/reverse-single-reference.ts +0 -50
- package/src/forms/controls/simple-input.ts +0 -148
- package/src/forms/controls/textarea.ts +0 -60
- package/src/forms/controls/tickable.ts +0 -127
- package/src/forms/fields/boolean.test.ts +0 -36
- package/src/forms/fields/boolean.ts +0 -63
- package/src/forms/fields/checkboxed-list.ts +0 -66
- package/src/forms/fields/collection-field.ts +0 -62
- package/src/forms/fields/email.test.ts +0 -24
- package/src/forms/fields/email.ts +0 -20
- package/src/forms/fields/enum-multiple.test.ts +0 -31
- package/src/forms/fields/enum-multiple.ts +0 -62
- package/src/forms/fields/enum.test.ts +0 -25
- package/src/forms/fields/enum.ts +0 -56
- package/src/forms/fields/existing-sealious-value.ts +0 -22
- package/src/forms/fields/field.ts +0 -172
- package/src/forms/fields/file.ts +0 -89
- package/src/forms/fields/multiple-files.ts +0 -20
- package/src/forms/fields/number.test.ts +0 -34
- package/src/forms/fields/number.ts +0 -70
- package/src/forms/fields/pick-from-list.test.ts +0 -19
- package/src/forms/fields/pick-from-list.ts +0 -52
- package/src/forms/fields/proxy-field.ts +0 -24
- package/src/forms/fields/regexp.test.ts +0 -25
- package/src/forms/fields/regexp.ts +0 -53
- package/src/forms/fields/reverse-single-reference.ts +0 -20
- package/src/forms/fields/simple-form-field.ts +0 -30
- package/src/forms/fields/structured-array.ts +0 -27
- package/src/forms/form.test.ts +0 -351
- package/src/forms/form.ts +0 -294
- package/src/forms/forms.scss +0 -85
- package/src/forms/multiform.test.ts +0 -540
- package/src/forms/multiform.ts +0 -236
- package/src/generate-collections.ts +0 -77
- package/src/generate-routes.ts +0 -120
- package/src/index.ts +0 -24
- package/src/make-env.ts +0 -15
- package/src/make-hidden-inputs.ts +0 -24
- package/src/mount.ts +0 -85
- package/src/page/access-control.ts +0 -18
- package/src/page/list.ts +0 -240
- package/src/page/mountable-with-fields.ts +0 -158
- package/src/page/mountable.ts +0 -13
- package/src/page/page.ts +0 -46
- package/src/page/props-parser.ts +0 -38
- package/src/run.ts +0 -0
- package/src/sanitize.ts +0 -9
- package/src/templates/collection.ts +0 -11
- package/src/templates/form.ts +0 -60
- package/src/templates/list.ts +0 -75
- package/src/templates/multiform.ts +0 -58
- package/src/templates/page.ts +0 -25
- package/src/templates/post.ts +0 -21
- package/src/templates/redirect.ts +0 -22
- package/src/templates/route-test.ts +0 -27
- package/src/test_utils/locator_is_visible.ts +0 -17
- package/src/utils/assert-throws.ts +0 -18
- package/src/utils/browser-creator.js +0 -10
- package/src/utils/escape-url-params.ts +0 -14
- package/src/utils/exec.ts +0 -30
- package/src/utils/format-external-url.ts +0 -13
- package/src/utils/import-path.ts +0 -25
- package/src/utils/input-wrapper.ts +0 -21
- package/src/utils/list-collections.ts +0 -16
- package/src/utils/make-slug.ts +0 -5
- package/src/utils/natural-numbers.ts +0 -5
- package/src/utils/prettier.ts +0 -13
- package/src/utils/question.ts +0 -23
- package/src/utils/render-attributes.ts +0 -17
- package/src/utils/sleep.ts +0 -3
- package/src/utils/translate.ts +0 -13
- package/src/utils/url-with-new-params.ts +0 -9
- package/src/utils/utils.ts +0 -14
- package/src/utils/walk.ts +0 -20
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { curryImportPath } from "../utils/utils";
|
|
2
|
-
|
|
3
|
-
export async function multiformTemplate(
|
|
4
|
-
action_name: string,
|
|
5
|
-
newfilefullpath: string
|
|
6
|
-
): Promise<string> {
|
|
7
|
-
const rel = curryImportPath(newfilefullpath);
|
|
8
|
-
return `import { Context } from "koa";
|
|
9
|
-
import html from "${rel("src/back/html")}";
|
|
10
|
-
import { Controls, Fields, Form, FormMessage, Multiform } from "@sealcode/sealgen";
|
|
11
|
-
import { FlatTemplatable } from "tempstream";
|
|
12
|
-
|
|
13
|
-
export const actionName = "${action_name}";
|
|
14
|
-
|
|
15
|
-
const fields1 = {
|
|
16
|
-
email: new Fields.SimpleFormField(true),
|
|
17
|
-
password: new Fields.SimpleFormField(true),
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const form1 = new (class extends Form<typeof fields1> {
|
|
21
|
-
defaultSuccessMessage = "Form1 done!";
|
|
22
|
-
controls = [
|
|
23
|
-
new Controls.FormHeader("form1"),
|
|
24
|
-
new Controls.SimpleInput(fields1.email),
|
|
25
|
-
];
|
|
26
|
-
fields = fields1;
|
|
27
|
-
onSubmit() {
|
|
28
|
-
console.log("form1 submit");
|
|
29
|
-
}
|
|
30
|
-
})();
|
|
31
|
-
|
|
32
|
-
const fields2 = {
|
|
33
|
-
name: new Fields.SimpleFormField(true),
|
|
34
|
-
surname: new Fields.SimpleFormField(true),
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const form2 = new (class extends Form<Record<never, unknown>> {
|
|
38
|
-
defaultSuccessMessage = "Form2 done!";
|
|
39
|
-
controls = [new Controls.FormHeader("form2"), new Controls.SimpleInput(fields2.name)];
|
|
40
|
-
fields = fields2;
|
|
41
|
-
onSubmit() {
|
|
42
|
-
console.log("form2 submit");
|
|
43
|
-
}
|
|
44
|
-
})();
|
|
45
|
-
|
|
46
|
-
export default new (class extends Multiform {
|
|
47
|
-
name = "multiform_test";
|
|
48
|
-
forms = { form1, form2 };
|
|
49
|
-
async render(
|
|
50
|
-
ctx: Context,
|
|
51
|
-
messages: FormMessage[],
|
|
52
|
-
prerenderedForms?: Record<string, FlatTemplatable | undefined>
|
|
53
|
-
): Promise<FlatTemplatable> {
|
|
54
|
-
return html(ctx, "${action_name}", await super.render(ctx, messages, prerenderedForms));
|
|
55
|
-
}
|
|
56
|
-
})();
|
|
57
|
-
`;
|
|
58
|
-
}
|
package/src/templates/page.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { curryImportPath } from "../utils/import-path";
|
|
2
|
-
export async function pageTemplate(
|
|
3
|
-
action_name: string,
|
|
4
|
-
newfilefullpath: string
|
|
5
|
-
): Promise<string> {
|
|
6
|
-
const rel = curryImportPath(newfilefullpath);
|
|
7
|
-
return `import { Context } from "koa";
|
|
8
|
-
import { tempstream } from "tempstream";
|
|
9
|
-
import { Page } from "@sealcode/sealgen";
|
|
10
|
-
import html from "${rel("src/back/html")}";
|
|
11
|
-
|
|
12
|
-
export const actionName = "${action_name}";
|
|
13
|
-
|
|
14
|
-
export default new (class ${action_name}Page extends Page {
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
16
|
-
async canAccess(_: Context) {
|
|
17
|
-
return { canAccess: true, message: "" };
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
async render(ctx: Context) {
|
|
21
|
-
return html(ctx, "${action_name}", tempstream/* HTML */ \`<div></div>\`);
|
|
22
|
-
}
|
|
23
|
-
})();
|
|
24
|
-
`;
|
|
25
|
-
}
|
package/src/templates/post.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export async function postTemplate(action_name: string): Promise<string> {
|
|
2
|
-
return `import { Context } from "koa";
|
|
3
|
-
import { Mountable } from "@sealcode/sealgen";
|
|
4
|
-
import Router from "@koa/router";
|
|
5
|
-
|
|
6
|
-
export const actionName = "${action_name}";
|
|
7
|
-
|
|
8
|
-
export default new (class ${action_name}Redirect extends Mountable {
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10
|
-
async canAccess(_: Context) {
|
|
11
|
-
return { canAccess: true, message: "" };
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
mount(router: Router, path: string) {
|
|
15
|
-
router.post(path, async (ctx) => {
|
|
16
|
-
ctx.body = { message: "OK!" }
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
})();
|
|
20
|
-
`;
|
|
21
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export async function redirectTemplate(action_name: string): Promise<string> {
|
|
2
|
-
return `import { Context } from "koa";
|
|
3
|
-
import { Mountable } from "@sealcode/sealgen";
|
|
4
|
-
import Router from "@koa/router";
|
|
5
|
-
|
|
6
|
-
export const actionName = "${action_name}";
|
|
7
|
-
|
|
8
|
-
export default new (class ${action_name}Redirect extends Mountable {
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10
|
-
async canAccess(_: Context) {
|
|
11
|
-
return { canAccess: true, message: "" };
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
mount(router: Router, path: string) {
|
|
15
|
-
router.get(path, async (ctx) => {
|
|
16
|
-
ctx.status = 302;
|
|
17
|
-
ctx.redirect("/new_url");
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
})();
|
|
21
|
-
`;
|
|
22
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { curryImportPath } from "../utils/import-path";
|
|
2
|
-
|
|
3
|
-
export function testTemplate(action_name: string, new_file_fullpath: string) {
|
|
4
|
-
const rel = curryImportPath(new_file_fullpath);
|
|
5
|
-
return `import { withProdApp } from "${rel(
|
|
6
|
-
"src/back/test_utils/with-prod-app"
|
|
7
|
-
)}";
|
|
8
|
-
import { LONG_TEST_TIMEOUT, webhintURL } from "${rel(
|
|
9
|
-
"src/back/test_utils/webhint"
|
|
10
|
-
)}";
|
|
11
|
-
import { ${action_name}URL } from "${rel("src/back/routes/urls")}";
|
|
12
|
-
|
|
13
|
-
describe("${action_name}", () => {
|
|
14
|
-
it("doesn't crash", async function () {
|
|
15
|
-
this.timeout(LONG_TEST_TIMEOUT);
|
|
16
|
-
return withProdApp(async ({ base_url, rest_api }) => {
|
|
17
|
-
await rest_api.get(${action_name}URL);
|
|
18
|
-
await webhintURL(base_url + ${action_name}URL);
|
|
19
|
-
// alternatively you can use webhintHTML for faster but less precise scans
|
|
20
|
-
// or for scanning responses of requests that use some form of authorization:
|
|
21
|
-
// const response = await rest_api.get(${action_name}URL);
|
|
22
|
-
// await webhintHTML(response);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
`;
|
|
27
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-await-in-loop */
|
|
2
|
-
import { Locator } from "playwright";
|
|
3
|
-
import { sleep } from "../utils/sleep";
|
|
4
|
-
|
|
5
|
-
export async function locator_is_visible(
|
|
6
|
-
locator: Locator,
|
|
7
|
-
timeout = 500
|
|
8
|
-
): Promise<boolean> {
|
|
9
|
-
let exists = false;
|
|
10
|
-
while (timeout > 0 && !exists) {
|
|
11
|
-
await sleep(50);
|
|
12
|
-
timeout -= 50;
|
|
13
|
-
exists = await locator.isVisible();
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return exists;
|
|
17
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import assert from "assert";
|
|
2
|
-
|
|
3
|
-
export async function assertThrowsAsync(
|
|
4
|
-
fn: () => Promise<unknown>,
|
|
5
|
-
error_handler?: (e: unknown) => Promise<void> | void
|
|
6
|
-
): Promise<void> {
|
|
7
|
-
let error: unknown = null;
|
|
8
|
-
try {
|
|
9
|
-
await fn();
|
|
10
|
-
} catch (e: unknown) {
|
|
11
|
-
error = e;
|
|
12
|
-
} finally {
|
|
13
|
-
assert.notStrictEqual(error, null, "It didn't throw");
|
|
14
|
-
if (error_handler) {
|
|
15
|
-
await error_handler(error);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { firefox } from "playwright";
|
|
2
|
-
|
|
3
|
-
let browser_promise = null;
|
|
4
|
-
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
6
|
-
export async function getBrowser() {
|
|
7
|
-
if (!browser_promise) browser_promise = firefox.launch();
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
9
|
-
return browser_promise;
|
|
10
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export function escape_url_params(url: string): string {
|
|
2
|
-
return url
|
|
3
|
-
.split("/")
|
|
4
|
-
.map((e) => (e.startsWith(":") ? `[${e.slice(1)}]` : e))
|
|
5
|
-
.filter((e) => e != "")
|
|
6
|
-
.join("/");
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function unescape_url_params(url: string): string {
|
|
10
|
-
return url
|
|
11
|
-
.split("/")
|
|
12
|
-
.map((e) => (e.startsWith("[") ? `:${e.slice(1, e.length - 1)}` : e))
|
|
13
|
-
.join("/");
|
|
14
|
-
}
|
package/src/utils/exec.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import { spawn } from "child_process";
|
|
3
|
-
|
|
4
|
-
export async function exec(
|
|
5
|
-
program: string,
|
|
6
|
-
args: string[]
|
|
7
|
-
): Promise<{ stderr: string; stdout: string; exitCode: number }> {
|
|
8
|
-
return new Promise((resolve, reject) => {
|
|
9
|
-
let stdout = "";
|
|
10
|
-
let stderr = "";
|
|
11
|
-
const process = spawn(program, args);
|
|
12
|
-
process.stdout.on(
|
|
13
|
-
"data",
|
|
14
|
-
(data: Buffer) => (stdout += data.toString())
|
|
15
|
-
);
|
|
16
|
-
process.stderr.on(
|
|
17
|
-
"data",
|
|
18
|
-
(data: Buffer) => (stderr += data.toString())
|
|
19
|
-
);
|
|
20
|
-
process.on("close", (exitCode) => {
|
|
21
|
-
if (exitCode === 0) {
|
|
22
|
-
resolve({ stdout, stderr, exitCode });
|
|
23
|
-
} else {
|
|
24
|
-
console.error([program, ...args].join(" "));
|
|
25
|
-
console.error(stderr);
|
|
26
|
-
reject({ stdout, stderr, exitCode });
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// this is not an ultra-safe parser. It's meant to help parse urls that users
|
|
2
|
-
// have entered in a simple input file withour validation
|
|
3
|
-
|
|
4
|
-
export function formatExternalURL(url: string) {
|
|
5
|
-
const trimmed = url.trim();
|
|
6
|
-
if (
|
|
7
|
-
!trimmed.toLowerCase().startsWith("https://") ||
|
|
8
|
-
!trimmed.toLowerCase().startsWith("https://")
|
|
9
|
-
) {
|
|
10
|
-
return `http://${trimmed}`;
|
|
11
|
-
}
|
|
12
|
-
return trimmed;
|
|
13
|
-
}
|
package/src/utils/import-path.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { relative, dirname } from "path";
|
|
2
|
-
import _locreq from "locreq";
|
|
3
|
-
const target_locreq = _locreq(process.cwd());
|
|
4
|
-
|
|
5
|
-
export function importPath(
|
|
6
|
-
project_module_path: string,
|
|
7
|
-
project_target_path: string
|
|
8
|
-
): string {
|
|
9
|
-
let result = relative(
|
|
10
|
-
dirname(target_locreq.resolve(project_module_path)),
|
|
11
|
-
target_locreq.resolve(project_target_path).replace(/.ts$/, "")
|
|
12
|
-
);
|
|
13
|
-
if (result[0] != ".") {
|
|
14
|
-
result = "./" + result;
|
|
15
|
-
}
|
|
16
|
-
return result;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function curryImportPath(
|
|
20
|
-
project_module_path: string
|
|
21
|
-
): (project_target_path: string) => string {
|
|
22
|
-
return function (project_target_path: string) {
|
|
23
|
-
return importPath(project_module_path, project_target_path);
|
|
24
|
-
};
|
|
25
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Readable } from "stream";
|
|
2
|
-
import { FlatTemplatable, tempstream } from "tempstream";
|
|
3
|
-
|
|
4
|
-
export function getRequiredClass(isRequired: boolean): string {
|
|
5
|
-
return isRequired ? "required" : "";
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
function getModifierClasses(modifiers: string[]) {
|
|
9
|
-
return modifiers.map((m) => "form-input__wrapper--" + m).join(" ");
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export function inputWrapper(
|
|
13
|
-
modifiers: string[],
|
|
14
|
-
input: FlatTemplatable
|
|
15
|
-
): Readable {
|
|
16
|
-
return tempstream/* HTML */ `<div
|
|
17
|
-
class="form-input form-input__wrapper ${getModifierClasses(modifiers)}"
|
|
18
|
-
>
|
|
19
|
-
${input}
|
|
20
|
-
</div>`;
|
|
21
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import _locreq from "locreq";
|
|
2
|
-
import { walkDir } from "./walk";
|
|
3
|
-
const target_locreq = _locreq(process.cwd());
|
|
4
|
-
|
|
5
|
-
export async function listCollections(): Promise<string[]> {
|
|
6
|
-
const files = await walkDir(target_locreq.resolve("src/back/collections"));
|
|
7
|
-
return files
|
|
8
|
-
.filter(
|
|
9
|
-
(f) =>
|
|
10
|
-
f.endsWith(".ts") &&
|
|
11
|
-
!f.endsWith(".test.ts") &&
|
|
12
|
-
!f.endsWith("collections.ts")
|
|
13
|
-
)
|
|
14
|
-
.map((f) => f.replace(/.ts$/, "").split("/").at(-1) || "")
|
|
15
|
-
.filter((e) => e !== "");
|
|
16
|
-
}
|
package/src/utils/make-slug.ts
DELETED
package/src/utils/prettier.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as prettier from "prettier";
|
|
2
|
-
import { Options } from "prettier";
|
|
3
|
-
import _locreq from "locreq";
|
|
4
|
-
const target_locreq = _locreq(process.cwd());
|
|
5
|
-
|
|
6
|
-
export async function getPrettierConfig(): Promise<Options> {
|
|
7
|
-
return {
|
|
8
|
-
...(await prettier.resolveConfig(
|
|
9
|
-
target_locreq.resolve("src/back/routes")
|
|
10
|
-
)),
|
|
11
|
-
parser: "typescript",
|
|
12
|
-
};
|
|
13
|
-
}
|
package/src/utils/question.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { createInterface } from "readline";
|
|
2
|
-
|
|
3
|
-
export async function question(
|
|
4
|
-
text: string,
|
|
5
|
-
validator: (answer: string) => boolean
|
|
6
|
-
) {
|
|
7
|
-
const rl = createInterface({
|
|
8
|
-
input: process.stdin,
|
|
9
|
-
output: process.stdout,
|
|
10
|
-
});
|
|
11
|
-
let answer = "";
|
|
12
|
-
while (answer == "" || !validator(answer)) {
|
|
13
|
-
// eslint-disable-next-line no-await-in-loop
|
|
14
|
-
answer = await new Promise((resolve) => rl.question(text, resolve));
|
|
15
|
-
if (!validator(answer)) {
|
|
16
|
-
// eslint-disable-next-line no-console
|
|
17
|
-
console.log("Try again");
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
rl.close();
|
|
22
|
-
return answer;
|
|
23
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { attribute } from "../sanitize";
|
|
2
|
-
|
|
3
|
-
export function renderAttributes(attrs: Record<string, string | boolean>) {
|
|
4
|
-
return Object.entries(attrs)
|
|
5
|
-
.map(([key, value]) => {
|
|
6
|
-
if (typeof value === "boolean") {
|
|
7
|
-
if (value) {
|
|
8
|
-
return key;
|
|
9
|
-
} else {
|
|
10
|
-
return "";
|
|
11
|
-
}
|
|
12
|
-
} else {
|
|
13
|
-
return `${key}="${attribute(value)}"`;
|
|
14
|
-
}
|
|
15
|
-
})
|
|
16
|
-
.join(" ");
|
|
17
|
-
}
|
package/src/utils/sleep.ts
DELETED
package/src/utils/translate.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Context } from "koa";
|
|
2
|
-
import { Translation } from "sealious";
|
|
3
|
-
|
|
4
|
-
export function t(
|
|
5
|
-
ctx: Context,
|
|
6
|
-
key: string,
|
|
7
|
-
props: any[],
|
|
8
|
-
default_translation: Translation
|
|
9
|
-
) {
|
|
10
|
-
return /* HTML */ `<span translation-key="${key.replace('"', '\\"')}"
|
|
11
|
-
>${ctx.$app.getString(key, props, default_translation)}</span
|
|
12
|
-
>`;
|
|
13
|
-
}
|
package/src/utils/utils.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export type Awaited<T> = T extends Promise<infer U> ? U : T;
|
|
2
|
-
export type UnwrapArray<T> = T extends Array<infer U> ? U : T;
|
|
3
|
-
|
|
4
|
-
export { sleep } from "./sleep";
|
|
5
|
-
export { naturalNumbers } from "./natural-numbers";
|
|
6
|
-
export { UrlWithNewParams } from "./url-with-new-params";
|
|
7
|
-
export { exec } from "./exec";
|
|
8
|
-
export { importPath, curryImportPath } from "./import-path";
|
|
9
|
-
export { listCollections } from "./list-collections";
|
|
10
|
-
export { walkDir } from "./walk";
|
|
11
|
-
export { assertThrowsAsync } from "./assert-throws";
|
|
12
|
-
export * from "./make-slug";
|
|
13
|
-
export * from "./render-attributes";
|
|
14
|
-
export * from "./format-external-url";
|
package/src/utils/walk.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { promises as fs } from "fs";
|
|
2
|
-
import { resolve } from "path";
|
|
3
|
-
|
|
4
|
-
export async function walkDir(dir: string): Promise<string[]> {
|
|
5
|
-
const entries = await fs.readdir(dir);
|
|
6
|
-
let ret: string[] = [];
|
|
7
|
-
for (const entry of entries) {
|
|
8
|
-
const fullpath = resolve(dir, entry);
|
|
9
|
-
// eslint-disable-next-line no-await-in-loop
|
|
10
|
-
const info = await fs.stat(fullpath);
|
|
11
|
-
|
|
12
|
-
if (info.isDirectory()) {
|
|
13
|
-
// eslint-disable-next-line no-await-in-loop
|
|
14
|
-
ret = [...ret, ...(await walkDir(fullpath))];
|
|
15
|
-
} else {
|
|
16
|
-
ret = [...ret, fullpath];
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return ret;
|
|
20
|
-
}
|