From 5c2cca5a8a7356dcdcba23e07eb6240cb720335f Mon Sep 17 00:00:00 2001 From: Maycon Sousa Date: Thu, 15 Dec 2022 11:21:02 -0300 Subject: [PATCH 1/9] fix import export types --- tests/src/TypeScript.nts | 3 +-- types/ClientContext.d.ts | 16 ++++++++-------- types/JSX.d.ts | 2 +- types/Plugin.d.ts | 4 ++-- types/ServerContext.d.ts | 12 ++++++------ types/index.d.ts | 36 ++++++++++++++++++------------------ 6 files changed, 36 insertions(+), 37 deletions(-) diff --git a/tests/src/TypeScript.nts b/tests/src/TypeScript.nts index f57b65a4..3761dba8 100644 --- a/tests/src/TypeScript.nts +++ b/tests/src/TypeScript.nts @@ -1,5 +1,4 @@ -import Nullstack from 'nullstack' -import { NullstackClientContext } from 'nullstack/types/index.d.ts' +import Nullstack, { NullstackClientContext } from 'nullstack' interface TypeScriptClientContext extends NullstackClientContext { value: number; diff --git a/types/ClientContext.d.ts b/types/ClientContext.d.ts index 4c416cf7..f780bb89 100644 --- a/types/ClientContext.d.ts +++ b/types/ClientContext.d.ts @@ -1,11 +1,11 @@ -import { NullstackEnvironment } from './Environment.d.ts' -import { NullstackNode } from './JSX.d.ts' -import { NullstackPage } from './Page.d.ts' -import { NullstackParams } from './Params.d.ts' -import { NullstackProject } from './Project.d.ts' -import { NullstackRouter } from './Router.d.ts' -import { NullstackSettings } from './Settings.d.ts' -import { NullstackWorker } from './Worker.d.ts' +import { NullstackEnvironment } from './Environment' +import { NullstackNode } from './JSX' +import { NullstackPage } from './Page' +import { NullstackParams } from './Params' +import { NullstackProject } from './Project' +import { NullstackRouter } from './Router' +import { NullstackSettings } from './Settings' +import { NullstackWorker } from './Worker' /** * @see https://nullstack.app/context diff --git a/types/JSX.d.ts b/types/JSX.d.ts index 0a0a9442..00e0a51a 100644 --- a/types/JSX.d.ts +++ b/types/JSX.d.ts @@ -29,7 +29,7 @@ // Guilherme Correia // TypeScript Version: 2.8 -import { NullstackClientContext } from './ClientContext.d.ts' +import { NullstackClientContext } from './ClientContext' type NativeDragEvent = globalThis.DragEvent type NativeFocusEvent = globalThis.FocusEvent diff --git a/types/Plugin.d.ts b/types/Plugin.d.ts index a40b8534..bf680ac2 100644 --- a/types/Plugin.d.ts +++ b/types/Plugin.d.ts @@ -1,5 +1,5 @@ -import { NullstackClientContext } from './ClientContext.d.ts' -import { AllHTMLAttributes, NullstackAttributes } from './JSX.d.ts' +import { NullstackClientContext } from './ClientContext' +import { AllHTMLAttributes, NullstackAttributes } from './JSX' type NullstackPluginNode = { type: string | boolean diff --git a/types/ServerContext.d.ts b/types/ServerContext.d.ts index 3184da6b..8ec90589 100644 --- a/types/ServerContext.d.ts +++ b/types/ServerContext.d.ts @@ -1,9 +1,9 @@ -import { NullstackEnvironment } from './Environment.d.ts' -import { NullstackProject } from './Project.d.ts' -import { NullstackSecrets } from './Secrets.d.ts' -import { NullstackServer } from './Server.d.ts' -import { NullstackSettings } from './Settings.d.ts' -import { NullstackWorker } from './Worker.d.ts' +import { NullstackEnvironment } from './Environment' +import { NullstackProject } from './Project' +import { NullstackSecrets } from './Secrets' +import { NullstackServer } from './Server' +import { NullstackSettings } from './Settings' +import { NullstackWorker } from './Worker' /** * @see https://nullstack.app/context diff --git a/types/index.d.ts b/types/index.d.ts index 98488ac2..1a46f414 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -1,21 +1,21 @@ -import { NullstackClientContext } from './ClientContext.d.ts' -import { NullstackNode } from './JSX.d.ts' -import { NullstackPlugin } from './Plugin.d.ts' -import { NullstackServerContext } from './ServerContext.d.ts' - -export * from './ClientContext.d.ts' -export * from './Environment.d.ts' -export * from './Page.d.ts' -export * from './Params.d.ts' -export * from './Plugin.d.ts' -export * from './Project.d.ts' -export * from './Router.d.ts' -export * from './Secrets.d.ts' -export * from './Server.d.ts' -export * from './ServerContext.d.ts' -export * from './Settings.d.ts' -export * from './Worker.d.ts' -export * from './JSX.d.ts' +import { NullstackClientContext } from './ClientContext' +import { NullstackNode } from './JSX' +import { NullstackPlugin } from './Plugin' +import { NullstackServerContext } from './ServerContext' + +export * from './ClientContext' +export * from './Environment' +export * from './Page' +export * from './Params' +export * from './Plugin' +export * from './Project' +export * from './Router' +export * from './Secrets' +export * from './Server' +export * from './ServerContext' +export * from './Settings' +export * from './Worker' +export * from './JSX' /** * Functional component From cfb159ab7fd76ea0812cac37a3dd9c0a6efbf673 Mon Sep 17 00:00:00 2001 From: Maycon Sousa Date: Fri, 16 Dec 2022 11:17:43 -0300 Subject: [PATCH 2/9] upgrade eslint-plugin-nullstack version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 067de67c..2e229810 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "css-loader": "6.7.1", "dotenv": "8.6.0", "eslint-plugin-jest": "^27.1.6", - "eslint-plugin-nullstack": "^0.0.10", + "eslint-plugin-nullstack": "^0.0.11", "express": "4.18.1", "fs-extra": "10.1.0", "mini-css-extract-plugin": "2.6.0", From 372cbb723af53be75a848db79e60beab9eda99ea Mon Sep 17 00:00:00 2001 From: flaviokicis Date: Tue, 20 Dec 2022 01:19:54 -0300 Subject: [PATCH 3/9] Fix: Warn about incorrect file --- webpack.config.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index 99930167..a0126c73 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -221,8 +221,12 @@ function server(env, argv) { const babel = argv.loader === 'babel' for (const file of publicFiles) { if (file.startsWith('icon-')) { - const size = file.split('x')[1].split('.')[0] - icons[size] = `/${file}` + try { + const size = file.split('x')[1].split('.')[0] + icons[size] = `/${file}` + } catch (error) { + console.warn(` ⚠️ You have an incorrectly named icon file inside your 'public' folder: ${file}`); + } } } const isDev = argv.environment === 'development' From 196e51f211d22bb4c35cbcc2fca7c82786f80a9c Mon Sep 17 00:00:00 2001 From: flaviokicis Date: Wed, 21 Dec 2022 16:14:30 -0300 Subject: [PATCH 4/9] Fix: Regex is cool again --- webpack.config.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index a0126c73..c75f165b 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -220,12 +220,10 @@ function server(env, argv) { const publicFiles = readdirSync(path.join(dir, 'public')) const babel = argv.loader === 'babel' for (const file of publicFiles) { - if (file.startsWith('icon-')) { - try { - const size = file.split('x')[1].split('.')[0] - icons[size] = `/${file}` - } catch (error) { - console.warn(` ⚠️ You have an incorrectly named icon file inside your 'public' folder: ${file}`); + for (const file of publicFiles) { + if (iconFileRegex.test(file)) { + const size = file.split('x')[1].split('.')[0]; + icons[size] = `/${file}`; } } } From a400c150c1f8382ff3e928b7fcabb8ab474463c6 Mon Sep 17 00:00:00 2001 From: flaviokicis Date: Wed, 21 Dec 2022 16:15:42 -0300 Subject: [PATCH 5/9] Fix: Oopsie --- webpack.config.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index c75f165b..79a6f009 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -219,13 +219,12 @@ function server(env, argv) { const icons = {} const publicFiles = readdirSync(path.join(dir, 'public')) const babel = argv.loader === 'babel' + const iconFileRegex = /icon-(\d+)x\1\.[a-zA-Z]+/; for (const file of publicFiles) { - for (const file of publicFiles) { if (iconFileRegex.test(file)) { const size = file.split('x')[1].split('.')[0]; icons[size] = `/${file}`; } - } } const isDev = argv.environment === 'development' const folder = isDev ? '.development' : '.production' From 860dfccdf87a52e1d6acb9d15da21a16fe46d084 Mon Sep 17 00:00:00 2001 From: flaviokicis Date: Wed, 21 Dec 2022 16:16:55 -0300 Subject: [PATCH 6/9] Fix: Extra spaces --- webpack.config.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index 79a6f009..e4bc229a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -221,10 +221,10 @@ function server(env, argv) { const babel = argv.loader === 'babel' const iconFileRegex = /icon-(\d+)x\1\.[a-zA-Z]+/; for (const file of publicFiles) { - if (iconFileRegex.test(file)) { - const size = file.split('x')[1].split('.')[0]; - icons[size] = `/${file}`; - } + if (iconFileRegex.test(file)) { + const size = file.split('x')[1].split('.')[0]; + icons[size] = `/${file}`; + } } const isDev = argv.environment === 'development' const folder = isDev ? '.development' : '.production' From 63a6d8c8b7306d789125fdfb85c5146307e3df3d Mon Sep 17 00:00:00 2001 From: flaviokicis Date: Wed, 21 Dec 2022 16:18:06 -0300 Subject: [PATCH 7/9] Refactor: No need for semicolons --- webpack.config.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index e4bc229a..105e390c 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -219,11 +219,11 @@ function server(env, argv) { const icons = {} const publicFiles = readdirSync(path.join(dir, 'public')) const babel = argv.loader === 'babel' - const iconFileRegex = /icon-(\d+)x\1\.[a-zA-Z]+/; + const iconFileRegex = /icon-(\d+)x\1\.[a-zA-Z]+/ for (const file of publicFiles) { if (iconFileRegex.test(file)) { - const size = file.split('x')[1].split('.')[0]; - icons[size] = `/${file}`; + const size = file.split('x')[1].split('.')[0] + icons[size] = `/${file}` } } const isDev = argv.environment === 'development' From 56bb60e8441c1eddf06338f36366131bc0720546 Mon Sep 17 00:00:00 2001 From: Christian Mortaro Date: Wed, 21 Dec 2022 19:30:16 -0300 Subject: [PATCH 8/9] :white_check_mark: tests for icons pattern --- tests/public/icon-144x000.png | Bin 0 -> 3751 bytes tests/src/ContextProject.njs | 3 +++ tests/src/ContextProject.test.js | 5 +++++ 3 files changed, 8 insertions(+) create mode 100644 tests/public/icon-144x000.png diff --git a/tests/public/icon-144x000.png b/tests/public/icon-144x000.png new file mode 100644 index 0000000000000000000000000000000000000000..a87f2a70cfd71d78c0e551337d91cd8a49bbd52d GIT binary patch literal 3751 zcmb7HX*3iLv>&oeGsuvMP#8O-L1{{3-(?RoqGs$nLm`xrDa(*u6cQmj8HOYolawV( z3}cHdg|TEU+@P}{006*kY@}y>>{I?zAnUR9 zl)SqJ0Py%5>uKKz%UyBmO%^c}sHs`StX0!*jn|2KxYXnkv_O1DsYt?U7EYvuQZs&* zc0{11@;f5gdE$-;fuGsqfq1dh6fyKe0y9a|C4%V`(dPcPr97<0J7nehu76v6X=#Pp zVY=T~e*Wsz-|dL)CHu8jyW9H}16?-Om_s3_fhQV4 z?osdR518$d8ccE9totdet-%MWTm*QCE6@~vWRkDsQ&x&94_q)T?C&W@EbJF)W#bMq zQcDx%n;Ig^6ESxl)6*5%JbprGHk%I-J^8~+O%N^mov&Orvr3mk-5}=u5EM=W8EGr? zy``l04FAN`nQ&dt_Gct58Qm@7Jx4{p#F-Lv!5(Scx?ps}h)RMtna-FR_o8q%R_i8wI2uI~dAjN2~Bqje=SXMxJ=MvN@I7fd+tcHt3D{cd^eNOwI&$@t3W|zQTtQcL0}wV!l(L z*#xs7@WzY{?qLFQ^h^SxV^65aT-eJyi36U}0a7e|BvVg26NiXH-hzKq{ubx+g!q-) zKxFLts*eg;E!M5)q0h6wLq1LuuT9)%bpLhhgDgC&=DH@Uzrb_A*VGijKG6urYnYwZ zcB)D0_4{pB4mmpEVJ(I!Y$Q?f3aN;?($wEFa~ zZzoL^BRudY-c4uc&q;j(UmalM`B1z1#rgSjfJ`D37;_~G(=7!HJvp=Os%7t9Q^s=oOS4AkP_{=D{G4S~h{2Kko*2f~};VAI@k z@bC9}@)0~Pp`EY8n{hgX4OiXfkb|DUs;Bt$^b|X{jcatCtRgEV z>p@Hp>?G*WI#rq+ryJZ-Qj)KA?b0z!M3wPq z&hgU=(UpO2*a-WC8yKq>P%K6{5y|RC>Ybwg3{S>!+15;+RY)kaNHla z)4z>l)Ol5^l1{qM}t4&ir6!>%zB8%Gx6Nvnhh8O5lWnaoh{GpP? z?0b5&R}y_(pc%e}IY!2-f2eeyPZq3Ex5P`?U8}dm`ype71r$yQtDeYWgG4Wi7vB|0 zd4*poWtTk0?qk}#TqAwwgM8wZ#XYOrG{{>Qro~dPHbWhAI-^9>pq3{D<057>gSclaT)xP@JqKr>{~*U6_z?>jKNs0!avv{)_lWk;+PxUNkH*)=495N zTV9`i9W63!^Q;G1zo#6wk_%)IP-z^m#=F9F{nMG=Psl~w&T1OFfMrBP9_&pY6O|K? znNbCRNZ{5}V%%iENSCJj1lWa@ zP(%Zc&CG>j(FMh)+=xb_$}l?+BQ3{;R)-lbGeC|UZ!wE`GFVvuZ+|a|-6*?emP(e_ zd7K_->ll-!AY9CzlGQVzlk%rFqm^I!VT&=M(wwjCpOzpBR^_{h~U1!^Sgqo?pbEq zB;nmtjdV8kZvO>947301&_FPDp3Xiy(ScOV&%cqWVMO`@jlWBWY?yzDk8=T%5Vt?- zXZpZfq*@*Kh4#nDX85GD zz!{g!pehS+7)GJ6lSS?9jZ+H_M4jxXJ{S1s8H-nkGbrt^y;w%piUndUNpJ-S2-j20 zUOD*8C5EEz88bS(n!5D$-JAKHL1!IVV*9%G#VD&%z0`koisur7A~;__`(Y(7-k$5h zG?y860b>#GedjP{nLcY=^9+2{D2$@VnU&8If%rtU1P-A;W-2-uPm7I2PUN)fHF>g? zu=hLs)!_S>l^wqO%KfyR=NRG9 zlidxJii)1`_QuLmM1Z5W1|6xNo6+wPDAZ(HprQV?ga8BoR11UE;Fo!@xs|GVlrr+8d7 zgVEh!aQg0>ny+QIg7dt2WVcGqjRRj&8Mb- z^pwX+(L=H8+{>MEy-syoGgB7<0h+K``VvgH!E2E zXp*YemP>!IC3jt(;%MSoGz0K|k+4*(KLm_M1O?k4^ae=&(cZkqb^FEhwjSnpi(yx` zSU*ZL=Ba=wsboL}r!gCrlnYG>wi$!qiNuZFh?es*Cw51+N|3=Nj&=91o*-MG6B;7E z$t%&z7HYYj_ppXPr5{sFLmPB+PgkbAKZ%+ zqZEVrH=}wz5$GM=-U8efKiwh|Z zk`DxwJ=jw~UlT%AwxVOjTP~1-7MsQjoWLDqg1~>zOQP_B<&wpXP57N;q|GX5v*ynF zSMsT&p>ib7)DP-#98>hzt$L4Ob5JSyYTZl*0(f8uKkMQ?a)Pv*ot{?|F@ElB9?4;v#tQ+T;T7CFUx+@Ct_a` zKd-EL9cg~XP9>;1oEx9E-y*lhUD#afJb?9O7`96_R^3_AmGIjsI(`hIj*4jkuEEEm zaPRE H?8E;7E#?kZ literal 0 HcmV?d00001 diff --git a/tests/src/ContextProject.njs b/tests/src/ContextProject.njs index 1e5c9acc..558841ed 100644 --- a/tests/src/ContextProject.njs +++ b/tests/src/ContextProject.njs @@ -10,6 +10,7 @@ class ContextProject extends Nullstack { project.orientation = 'portrait' project.scope = '/' project.root = '/' + project.folderIcons = project.icons project.icons = { 72: '/icon-72x72.png', 144: '/icon-144x144.png', @@ -21,6 +22,7 @@ class ContextProject extends Nullstack { } render({ project }) { + const ignoredUnmatchedIcon = !Object.keys(project.folderIcons).find((key) => /icon-(\d+)x\1\.[a-zA-Z]+/.test(key)) return (
@@ -41,6 +43,7 @@ class ContextProject extends Nullstack {
+
) } diff --git a/tests/src/ContextProject.test.js b/tests/src/ContextProject.test.js index 5f048221..d6b116d1 100644 --- a/tests/src/ContextProject.test.js +++ b/tests/src/ContextProject.test.js @@ -72,6 +72,11 @@ describe('ContextProject', () => { expect(element).toBeTruthy() }) + test('icons that do not match the pattern are not loaded into icon key', async () => { + const element = await page.$('[data-ignored-unmatched-icon]') + expect(element).toBeTruthy() + }) + test('icons accepts an object with sizes', async () => { const element = await page.$('[data-icon-72="/icon-72x72.png"]') expect(element).toBeTruthy() From 01175319d3c8b0261fed5ff180b43b556bbc1985 Mon Sep 17 00:00:00 2001 From: Christian Mortaro Date: Wed, 21 Dec 2022 19:40:13 -0300 Subject: [PATCH 9/9] :bookmark: version 0.17.2 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2e229810..ea232fdf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "nullstack", - "version": "0.17.1", - "description": "Full-stack Javascript Components for one-dev armies", + "version": "0.17.2", + "description": "Full Stack Javascript Components for one-dev armies", "main": "nullstack.js", "author": "Mortaro", "repository": "github:nullstack/nullstack",