netlify / zip-it-and-ship-it

Intelligently prepare Node.js Lambda functions for deployment
https://www.npmjs.com/package/@netlify/zip-it-and-ship-it
MIT License
316 stars 35 forks source link

feat: support multiple paths in V2 functions #1586

Closed eduardoboucas closed 1 year ago

eduardoboucas commented 1 year ago

Summary

Allow an array of strings in the path in-source configuration property of V2 functions.

The types already allow this, as well as the rest of the infrastructure.

github-actions[bot] commented 1 year ago

⏱ Benchmark results

Comparing with d98dd20825b80d78c6ff0e5c4f2b51c7117d6af5

largeDepsEsbuild: 2.8s

⬆️ 7.85% increase vs. d98dd20825b80d78c6ff0e5c4f2b51c7117d6af5

^   3.1s                                             3s                                                   
│   ┌──┐                                            ┌──┐                                                  
│   |  |                            2.7s            |  |            2.8s    2.8s    2.8s            2.8s  
│ ──┼──┼────2.6s────────────────────┌──┐────2.6s────┼──┼────2.6s────┌──┐────┌──┐────┌──┐────2.6s────┌──┐──
│   |  |    ┌──┐    2.5s    2.5s    |  |    ┌──┐    |  |    ┌──┐    |  |    |  |    |  |    ┌──┐    |▒▒|  
│   |  |    |  |    ┌──┐    ┌──┐    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
└───┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴──>
    T-12    T-11    T-10    T-9     T-8     T-7     T-6     T-5     T-4     T-3     T-2     T-1      T    
Legend - T-28 (38cde6efec37b5d60593c15810f756da8b5177e6): 2.6s - T-27 (2211f39741e1088a7c9cde0af57c9bc27108c606): 2.7s - T-26 (54b79e3c973805ed06c5ec4bc0259a122a880913): 2.7s - T-25 (87886247aa8acabd74cf76f13c3465a22bf63078): 3.5s - T-24 (27155874fa16fb54d0c00f71d1e98e2e856642c4): 2.8s - T-23 (0c76ba5d3ebfd00ce70b3bfd382bed28a6885017): 2.6s - T-22 (3092484b754b25c3635f1fb36bae0eaf8f9db6f0): 2.6s - T-21 (b5b9b1a41e3c40b4d41e625131cd5e2c1d8e5dd1): 2.7s - T-20 (22967a315e6f619bcbb4d01eba839868fca47bed): 3.2s - T-19 (af1c7e0fb3c5f24139307a0c5a3f199ff9a11ccd): 2.5s - T-18 (909382c875d5162ca98ef0111dd8da877dba384e): 2.8s - T-17 (56767675a84e1625759a8ac74011288075046754): 2.6s - T-16 (364c92a78cd9bfc3d922a064c69a1d830ec23662): 2.4s - T-15 (c9978755768e1f7c2e8b3df00b64da3731190228): 3.1s - T-14 (8803f81ff71856192f9a1d523eb8e2f489ecc36d): 3.7s - T-13 (627fed0c14b94377ce05668ef711afdf0aae69b3): 2.6s - T-12 (a3e629996493877ab8fb5ea29b30eb12ae3ed83a): 3.1s - T-11 (6b6f02a3e5b95e15452e4d03023ba58f90a7c896): 2.6s - T-10 (11d452bd8c4ef7a25655a4d3f2c612c68f7625ba): 2.5s - T-9 (8d205cac41e94785f037d2885d0d9257e7ecd4d4): 2.5s - T-8 (0658e287efca9574ab585df4a96d744834935c41): 2.7s - T-7 (9fa3e37f25b1625fdcf7fd90efc0a6a5effd9818): 2.6s - T-6 (7aeed4d678636a4efd8d6e8f0f3314d242a585de): 3s - T-5 (028da3871932b3775006e6b637f6d81f98cfd905): 2.6s - T-4 (60d1ecb24a678806e75d329da23963c51f246d62): 2.8s - T-3 (4778ed749c03eaae2fb36b42db987364c7e0ecf3): 2.8s - T-2 (f5529d7f1e2008db4ef41392571733250e0b2d12): 2.8s - T-1 (d98dd20825b80d78c6ff0e5c4f2b51c7117d6af5): 2.6s - **T (current commit): 2.8s**

largeDepsNft: 9.3s

⬆️ 18.07% increase vs. d98dd20825b80d78c6ff0e5c4f2b51c7117d6af5

^   9.7s                                                                                                  
│   ┌──┐                                            9.4s                                            9.3s  
│   |  |                                            ┌──┐    8.7s                    8.7s            ┌──┐  
│   |  |                            8.2s    8.1s    |  |    ┌──┐    8.2s    8.3s    ┌──┐            |▒▒|  
│ ──┼──┼────7.9s────────────7.6s────┌──┐────┌──┐────┼──┼────┼──┼────┌──┐────┌──┐────┼──┼────7.6s────|▒▒|──
│   |  |    ┌──┐    7.5s    ┌──┐    |  |    |  |    |  |    |  |    |  |    |  |    |  |    ┌──┐    |▒▒|  
│   |  |    |  |    ┌──┐    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
└───┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴──>
    T-12    T-11    T-10    T-9     T-8     T-7     T-6     T-5     T-4     T-3     T-2     T-1      T    
Legend - T-28 (38cde6efec37b5d60593c15810f756da8b5177e6): 8.2s - T-27 (2211f39741e1088a7c9cde0af57c9bc27108c606): 8.4s - T-26 (54b79e3c973805ed06c5ec4bc0259a122a880913): 8.4s - T-25 (87886247aa8acabd74cf76f13c3465a22bf63078): 11.2s - T-24 (27155874fa16fb54d0c00f71d1e98e2e856642c4): 8.7s - T-23 (0c76ba5d3ebfd00ce70b3bfd382bed28a6885017): 8.2s - T-22 (3092484b754b25c3635f1fb36bae0eaf8f9db6f0): 8.3s - T-21 (b5b9b1a41e3c40b4d41e625131cd5e2c1d8e5dd1): 8.2s - T-20 (22967a315e6f619bcbb4d01eba839868fca47bed): 9.9s - T-19 (af1c7e0fb3c5f24139307a0c5a3f199ff9a11ccd): 7.5s - T-18 (909382c875d5162ca98ef0111dd8da877dba384e): 8.5s - T-17 (56767675a84e1625759a8ac74011288075046754): 7.8s - T-16 (364c92a78cd9bfc3d922a064c69a1d830ec23662): 7.5s - T-15 (c9978755768e1f7c2e8b3df00b64da3731190228): 9.8s - T-14 (8803f81ff71856192f9a1d523eb8e2f489ecc36d): 11.7s - T-13 (627fed0c14b94377ce05668ef711afdf0aae69b3): 8.2s - T-12 (a3e629996493877ab8fb5ea29b30eb12ae3ed83a): 9.7s - T-11 (6b6f02a3e5b95e15452e4d03023ba58f90a7c896): 7.9s - T-10 (11d452bd8c4ef7a25655a4d3f2c612c68f7625ba): 7.5s - T-9 (8d205cac41e94785f037d2885d0d9257e7ecd4d4): 7.6s - T-8 (0658e287efca9574ab585df4a96d744834935c41): 8.2s - T-7 (9fa3e37f25b1625fdcf7fd90efc0a6a5effd9818): 8.1s - T-6 (7aeed4d678636a4efd8d6e8f0f3314d242a585de): 9.4s - T-5 (028da3871932b3775006e6b637f6d81f98cfd905): 8.7s - T-4 (60d1ecb24a678806e75d329da23963c51f246d62): 8.2s - T-3 (4778ed749c03eaae2fb36b42db987364c7e0ecf3): 8.3s - T-2 (f5529d7f1e2008db4ef41392571733250e0b2d12): 8.7s - T-1 (d98dd20825b80d78c6ff0e5c4f2b51c7117d6af5): 7.6s - **T (current commit): 9.3s**

largeDepsZisi: 16s

⬆️ 7.41% increase vs. d98dd20825b80d78c6ff0e5c4f2b51c7117d6af5

^  18.3s                                            18s                                                   
│   ┌──┐                                            ┌──┐                                                  
│   |  |                            16s             |  |                   16.1s   16.4s                  
│   |  |   15.2s                    ┌──┐   15.3s    |  |   15.8s   15.8s    ┌──┐    ┌──┐            16s   
│ ──┼──┼────┌──┐───14.4s───14.9s────┼──┼────┌──┐────┼──┼────┌──┐────┌──┐────┼──┼────┼──┼───14.8s────┌──┐──
│   |  |    |  |    ┌──┐    ┌──┐    |  |    |  |    |  |    |  |    |  |    |  |    |  |    ┌──┐    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
└───┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴──>
    T-12    T-11    T-10    T-9     T-8     T-7     T-6     T-5     T-4     T-3     T-2     T-1      T    
Legend - T-28 (38cde6efec37b5d60593c15810f756da8b5177e6): 15.8s - T-27 (2211f39741e1088a7c9cde0af57c9bc27108c606): 15.6s - T-26 (54b79e3c973805ed06c5ec4bc0259a122a880913): 16.4s - T-25 (87886247aa8acabd74cf76f13c3465a22bf63078): 21s - T-24 (27155874fa16fb54d0c00f71d1e98e2e856642c4): 16.9s - T-23 (0c76ba5d3ebfd00ce70b3bfd382bed28a6885017): 16.2s - T-22 (3092484b754b25c3635f1fb36bae0eaf8f9db6f0): 16.1s - T-21 (b5b9b1a41e3c40b4d41e625131cd5e2c1d8e5dd1): 15.8s - T-20 (22967a315e6f619bcbb4d01eba839868fca47bed): 19.3s - T-19 (af1c7e0fb3c5f24139307a0c5a3f199ff9a11ccd): 15s - T-18 (909382c875d5162ca98ef0111dd8da877dba384e): 16.1s - T-17 (56767675a84e1625759a8ac74011288075046754): 14.6s - T-16 (364c92a78cd9bfc3d922a064c69a1d830ec23662): 14.9s - T-15 (c9978755768e1f7c2e8b3df00b64da3731190228): 19.3s - T-14 (8803f81ff71856192f9a1d523eb8e2f489ecc36d): 22.3s - T-13 (627fed0c14b94377ce05668ef711afdf0aae69b3): 15.4s - T-12 (a3e629996493877ab8fb5ea29b30eb12ae3ed83a): 18.3s - T-11 (6b6f02a3e5b95e15452e4d03023ba58f90a7c896): 15.2s - T-10 (11d452bd8c4ef7a25655a4d3f2c612c68f7625ba): 14.4s - T-9 (8d205cac41e94785f037d2885d0d9257e7ecd4d4): 14.9s - T-8 (0658e287efca9574ab585df4a96d744834935c41): 16s - T-7 (9fa3e37f25b1625fdcf7fd90efc0a6a5effd9818): 15.3s - T-6 (7aeed4d678636a4efd8d6e8f0f3314d242a585de): 18s - T-5 (028da3871932b3775006e6b637f6d81f98cfd905): 15.8s - T-4 (60d1ecb24a678806e75d329da23963c51f246d62): 15.8s - T-3 (4778ed749c03eaae2fb36b42db987364c7e0ecf3): 16.1s - T-2 (f5529d7f1e2008db4ef41392571733250e0b2d12): 16.4s - T-1 (d98dd20825b80d78c6ff0e5c4f2b51c7117d6af5): 14.8s - **T (current commit): 16s**
eduardoboucas commented 1 year ago

@lukasholzer I think I addressed all your feedback. I ended up having to make some changes in the AST parsing, because when processing arrays we were only looking for strings, so any other primitive values were ignored (so we couldn't throw a type error if people tried to use them).

This has now been addressed.