free-framework 4.6.5 → 4.6.6

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/compiler/lexer.js CHANGED
@@ -23,7 +23,8 @@ const KEYWORDS = new Set([
23
23
  'route', 'model', 'component', 'page', 'view', 'link', 'state', 'on', 'style',
24
24
  'middleware', 'auth', 'login', 'register', 'upload', 'path', 'maxSize', 'error',
25
25
  'text', 'action', 'validate', 'store', 'onMount', 'onDestroy', 'queue', 'mail',
26
- 'loop', 'condition', 'script', 'if', 'for'
26
+ 'loop', 'condition', 'script', 'if', 'for',
27
+ 'get', 'post', 'put', 'delete', 'patch', 'head', 'options'
27
28
  ]);
28
29
 
29
30
  function tokenize(code, filename = 'unknown.free') {
@@ -21,6 +21,9 @@ function parse(tokens, filename = 'unknown.free', source = '') {
21
21
  if (token.type === 'KEYWORD') {
22
22
  if (token.value === 'route') {
23
23
  ast.push(parseRoute(tokens, filename, source));
24
+ } else if (['get', 'post', 'put', 'delete', 'patch', 'head', 'options'].includes(token.value)) {
25
+ tokens.unshift(token); // put back the method
26
+ ast.push(parseRoute(tokens, filename, source));
24
27
  } else if (token.value === 'model') {
25
28
  ast.push(parseModel(tokens));
26
29
  } else if (token.value === 'component') {
@@ -66,6 +69,10 @@ function parseRoute(tokens, filename, source) {
66
69
  }
67
70
  }
68
71
  if (tokens[0] && tokens[0].value === '}') tokens.shift();
72
+ } else if (tokens[0] && tokens[0].value === '-' && tokens[1] && tokens[1].value === '>') {
73
+ tokens.shift(); // consume -
74
+ tokens.shift(); // consume >
75
+ view = tokens.shift().value;
69
76
  }
70
77
  return { type: 'route', method, path, view, middleware, handler, line: methodToken.line };
71
78
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-framework",
3
- "version": "4.6.5",
3
+ "version": "4.6.6",
4
4
  "description": "Professional Node.js engine for the .free language. Blazing-fast SSR, Islands Architecture, and built-in ORM.",
5
5
  "main": "index.js",
6
6
  "bin": {