@wordpress/hooks 3.2.1

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.
Files changed (85) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/LICENSE.md +788 -0
  3. package/README.md +66 -0
  4. package/benchmark/index.js +56 -0
  5. package/build/createAddHook.js +114 -0
  6. package/build/createAddHook.js.map +1 -0
  7. package/build/createCurrentHook.js +29 -0
  8. package/build/createCurrentHook.js.map +1 -0
  9. package/build/createDidHook.js +49 -0
  10. package/build/createDidHook.js.map +1 -0
  11. package/build/createDoingHook.js +43 -0
  12. package/build/createDoingHook.js.map +1 -0
  13. package/build/createHasHook.js +44 -0
  14. package/build/createHasHook.js.map +1 -0
  15. package/build/createHooks.js +80 -0
  16. package/build/createHooks.js.map +1 -0
  17. package/build/createRemoveHook.js +99 -0
  18. package/build/createRemoveHook.js.map +1 -0
  19. package/build/createRunHook.js +73 -0
  20. package/build/createRunHook.js.map +1 -0
  21. package/build/index.js +94 -0
  22. package/build/index.js.map +1 -0
  23. package/build/validateHookName.js +41 -0
  24. package/build/validateHookName.js.map +1 -0
  25. package/build/validateNamespace.js +34 -0
  26. package/build/validateNamespace.js.map +1 -0
  27. package/build-module/createAddHook.js +102 -0
  28. package/build-module/createAddHook.js.map +1 -0
  29. package/build-module/createCurrentHook.js +21 -0
  30. package/build-module/createCurrentHook.js.map +1 -0
  31. package/build-module/createDidHook.js +38 -0
  32. package/build-module/createDidHook.js.map +1 -0
  33. package/build-module/createDoingHook.js +35 -0
  34. package/build-module/createDoingHook.js.map +1 -0
  35. package/build-module/createHasHook.js +36 -0
  36. package/build-module/createHasHook.js.map +1 -0
  37. package/build-module/createHooks.js +60 -0
  38. package/build-module/createHooks.js.map +1 -0
  39. package/build-module/createRemoveHook.js +87 -0
  40. package/build-module/createRemoveHook.js.map +1 -0
  41. package/build-module/createRunHook.js +65 -0
  42. package/build-module/createRunHook.js.map +1 -0
  43. package/build-module/index.js +60 -0
  44. package/build-module/index.js.map +1 -0
  45. package/build-module/validateHookName.js +33 -0
  46. package/build-module/validateHookName.js.map +1 -0
  47. package/build-module/validateNamespace.js +26 -0
  48. package/build-module/validateNamespace.js.map +1 -0
  49. package/build-types/createAddHook.d.ts +25 -0
  50. package/build-types/createAddHook.d.ts.map +1 -0
  51. package/build-types/createCurrentHook.d.ts +13 -0
  52. package/build-types/createCurrentHook.d.ts.map +1 -0
  53. package/build-types/createDidHook.d.ts +25 -0
  54. package/build-types/createDidHook.d.ts.map +1 -0
  55. package/build-types/createDoingHook.d.ts +26 -0
  56. package/build-types/createDoingHook.d.ts.map +1 -0
  57. package/build-types/createHasHook.d.ts +28 -0
  58. package/build-types/createHasHook.d.ts.map +1 -0
  59. package/build-types/createHooks.d.ts +39 -0
  60. package/build-types/createHooks.d.ts.map +1 -0
  61. package/build-types/createRemoveHook.d.ts +31 -0
  62. package/build-types/createRemoveHook.d.ts.map +1 -0
  63. package/build-types/createRunHook.d.ts +15 -0
  64. package/build-types/createRunHook.d.ts.map +1 -0
  65. package/build-types/index.d.ts +88 -0
  66. package/build-types/index.d.ts.map +1 -0
  67. package/build-types/validateHookName.d.ts +12 -0
  68. package/build-types/validateHookName.d.ts.map +1 -0
  69. package/build-types/validateNamespace.d.ts +11 -0
  70. package/build-types/validateNamespace.d.ts.map +1 -0
  71. package/package.json +35 -0
  72. package/src/createAddHook.js +107 -0
  73. package/src/createCurrentHook.js +22 -0
  74. package/src/createDidHook.js +39 -0
  75. package/src/createDoingHook.js +37 -0
  76. package/src/createHasHook.js +40 -0
  77. package/src/createHooks.js +59 -0
  78. package/src/createRemoveHook.js +88 -0
  79. package/src/createRunHook.js +66 -0
  80. package/src/index.js +82 -0
  81. package/src/test/index.test.js +945 -0
  82. package/src/validateHookName.js +34 -0
  83. package/src/validateNamespace.js +27 -0
  84. package/tsconfig.json +9 -0
  85. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Validate a hookName string.
3
+ *
4
+ * @param {string} hookName The hook name to validate. Should be a non empty string containing
5
+ * only numbers, letters, dashes, periods and underscores. Also,
6
+ * the hook name cannot begin with `__`.
7
+ *
8
+ * @return {boolean} Whether the hook name is valid.
9
+ */
10
+ function validateHookName( hookName ) {
11
+ if ( 'string' !== typeof hookName || '' === hookName ) {
12
+ // eslint-disable-next-line no-console
13
+ console.error( 'The hook name must be a non-empty string.' );
14
+ return false;
15
+ }
16
+
17
+ if ( /^__/.test( hookName ) ) {
18
+ // eslint-disable-next-line no-console
19
+ console.error( 'The hook name cannot begin with `__`.' );
20
+ return false;
21
+ }
22
+
23
+ if ( ! /^[a-zA-Z][a-zA-Z0-9_.-]*$/.test( hookName ) ) {
24
+ // eslint-disable-next-line no-console
25
+ console.error(
26
+ 'The hook name can only contain numbers, letters, dashes, periods and underscores.'
27
+ );
28
+ return false;
29
+ }
30
+
31
+ return true;
32
+ }
33
+
34
+ export default validateHookName;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Validate a namespace string.
3
+ *
4
+ * @param {string} namespace The namespace to validate - should take the form
5
+ * `vendor/plugin/function`.
6
+ *
7
+ * @return {boolean} Whether the namespace is valid.
8
+ */
9
+ function validateNamespace( namespace ) {
10
+ if ( 'string' !== typeof namespace || '' === namespace ) {
11
+ // eslint-disable-next-line no-console
12
+ console.error( 'The namespace must be a non-empty string.' );
13
+ return false;
14
+ }
15
+
16
+ if ( ! /^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test( namespace ) ) {
17
+ // eslint-disable-next-line no-console
18
+ console.error(
19
+ 'The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'
20
+ );
21
+ return false;
22
+ }
23
+
24
+ return true;
25
+ }
26
+
27
+ export default validateNamespace;
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "declarationDir": "build-types",
6
+ "types": [ "gutenberg-env" ]
7
+ },
8
+ "include": [ "src/**/*" ]
9
+ }
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./src/validatenamespace.js","./src/validatehookname.js","./src/createremovehook.js","./src/createhashook.js","./src/createrunhook.js","./src/createcurrenthook.js","./src/createdoinghook.js","./src/createdidhook.js","./src/createhooks.js","./src/index.js","./src/createaddhook.js","../../typings/gutenberg-env/index.d.ts"],"fileInfos":[{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"16fb2ca91cf5fe9e857e5214a31311487524ae87e69b23c7371040bb1a82eaa2","acf2c9ac7d645ac867c9c6cf8238b1bf9d592c21e9aff3253aecbc546b605858","1dcb3f1f42491479bca845bfa97b3280a877d37183a0e7e4c8bbed77a783cae8","5c268d6816af1e751d387a9e573e9376cce62aeef7c7f772aa0572f9aab31726","ce9f48cfce31518885fbaa80bbb937c21644d9a172ac927f06f7c5ac6f7978ad","26df58dcd89c4225b8d5fe7acd52c98237eb8420e259b6401a257f4f241628fe","90acf630245d1df8d3bc9ddadbb686ca41cbbafd03436b9b1a816d62be4beabc","062731f93b86ef4bdf0f4f26b28248169cc6beb751c6c20626655f9342e31b6a","8835293f95a59a22184bd02c10230993231124240e6da9f6844ee7902ea1ca3f","27aec6ca27a761f6f7de7f0481b1bf13e82b127e9f6de77c2fdae142c0be2ec7","60282105d2e5ca8103d56b34a8a4dd200f2565529638bf299ad4c31d6c696307",{"version":"f254c1abf6bb4c92633159831f924588908da902aa5e04ae45c39bd001f62e2e","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[45,46,54],[54],[46,54],[47,48,49,50,51,52,54,55],[53]],"referencedMap":[[55,1],[50,2],[52,3],[51,2],[48,2],[53,4],[47,1],[49,2],[54,5]],"exportedModulesMap":[[55,1],[50,2],[52,3],[51,2],[48,2],[53,4],[47,1],[49,2],[54,5]],"semanticDiagnosticsPerFile":[10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,41,42,43,1,9,44,55,50,52,51,48,53,47,49,54,46,45,56]},"version":"4.4.2"}