spooder 6.1.93 → 6.1.95
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/README.md +12 -1
- package/package.json +1 -1
- package/src/api.ts +13 -5
package/README.md
CHANGED
|
@@ -599,6 +599,7 @@ log_list(input: any[], delimiter = ', ');
|
|
|
599
599
|
|
|
600
600
|
// http
|
|
601
601
|
http_serve(port: number, hostname?: string): Server;
|
|
602
|
+
server.port: number;
|
|
602
603
|
server.stop(immediate: boolean): Promise<void>;
|
|
603
604
|
|
|
604
605
|
// cookies
|
|
@@ -840,13 +841,14 @@ IPC_TARGET.BROADCAST; // broadcast to all other instances
|
|
|
840
841
|
## API > HTTP
|
|
841
842
|
|
|
842
843
|
### `http_serve(port: number, hostname?: string): Server`
|
|
843
|
-
Bootstrap a server on the specified port (and optional hostname).
|
|
844
|
+
Bootstrap a server on the specified port (and optional hostname). Pass `0` for the port to assign a random available port, which can then be retrieved via `server.port`.
|
|
844
845
|
|
|
845
846
|
```ts
|
|
846
847
|
import { serve } from 'spooder';
|
|
847
848
|
|
|
848
849
|
const server = http_serve(8080); // port only
|
|
849
850
|
const server = http_serve(3000, '0.0.0.0'); // optional hostname
|
|
851
|
+
const server = http_serve(0); // random port, retrieve via server.port
|
|
850
852
|
```
|
|
851
853
|
|
|
852
854
|
By default, the server responds with:
|
|
@@ -879,6 +881,15 @@ await server.stop(false);
|
|
|
879
881
|
// do something now all connections are done
|
|
880
882
|
```
|
|
881
883
|
|
|
884
|
+
### 📖 `server.port`
|
|
885
|
+
|
|
886
|
+
Returns the port the server is listening on. Useful when `0` is passed to `http_serve()` for a random port assignment.
|
|
887
|
+
|
|
888
|
+
```ts
|
|
889
|
+
const server = http_serve(0);
|
|
890
|
+
console.log(`Server listening on port ${server.port}`);
|
|
891
|
+
```
|
|
892
|
+
|
|
882
893
|
### Routing
|
|
883
894
|
|
|
884
895
|
### 🔧 `server.route(path: string, handler: RequestHandler)`
|
package/package.json
CHANGED
package/src/api.ts
CHANGED
|
@@ -978,13 +978,16 @@ export async function parse_template(template: string, replacements: Replacement
|
|
|
978
978
|
const if_regex = /<t-if\s+test="([^"]+)"\s*>(.*?)<\/t-if>/gs;
|
|
979
979
|
result = await replace_async(result, if_regex, async (match, condition_key, if_content) => {
|
|
980
980
|
const condition_value = is_replacer_fn ? await replacements(condition_key) : replacements[condition_key];
|
|
981
|
-
|
|
982
|
-
|
|
981
|
+
const key_exists = is_replacer_fn || (condition_key in replacements);
|
|
982
|
+
|
|
983
|
+
// preserve block for later pass if key doesn't exist and drop_missing is false
|
|
984
|
+
if (!key_exists && !drop_missing)
|
|
983
985
|
return match;
|
|
984
|
-
|
|
986
|
+
|
|
987
|
+
// render content if condition is truthy, otherwise remove block
|
|
985
988
|
if (condition_value)
|
|
986
989
|
return await parse_template(if_content, replacements, drop_missing);
|
|
987
|
-
|
|
990
|
+
|
|
988
991
|
return '';
|
|
989
992
|
});
|
|
990
993
|
|
|
@@ -1817,7 +1820,7 @@ export function http_serve(port: number, hostname?: string) {
|
|
|
1817
1820
|
}
|
|
1818
1821
|
});
|
|
1819
1822
|
|
|
1820
|
-
log_spooder(`server started on port {${port}} (host: {${hostname ?? 'unspecified'}})`);
|
|
1823
|
+
log_spooder(`server started on port {${server.port}} (host: {${hostname ?? 'unspecified'}})`);
|
|
1821
1824
|
|
|
1822
1825
|
type ThrottleHandler = {
|
|
1823
1826
|
(delta: number, handler: JSONRequestHandler): JSONRequestHandler;
|
|
@@ -2179,6 +2182,11 @@ export function http_serve(port: number, hostname?: string) {
|
|
|
2179
2182
|
return http_apply_range(file, request);
|
|
2180
2183
|
});
|
|
2181
2184
|
}
|
|
2185
|
+
},
|
|
2186
|
+
|
|
2187
|
+
/** The port the server is listening on. Useful when port 0 is passed to assign a random port. */
|
|
2188
|
+
get port(): number {
|
|
2189
|
+
return server.port!;
|
|
2182
2190
|
}
|
|
2183
2191
|
};
|
|
2184
2192
|
}
|