express-ext 0.4.14 → 0.4.15
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/lib/access.js +34 -0
- package/lib/index.js +15 -34
- package/package.json +1 -1
- package/src/access.ts +44 -0
- package/src/index.ts +8 -41
package/lib/access.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict"
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
+
function allow(access) {
|
|
4
|
+
var ao = access.origin
|
|
5
|
+
if (typeof ao === "string") {
|
|
6
|
+
return function (req, res, next) {
|
|
7
|
+
res.header("Access-Control-Allow-Origin", access.origin)
|
|
8
|
+
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
9
|
+
res.header("Access-Control-Allow-Methods", access.methods)
|
|
10
|
+
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
11
|
+
next()
|
|
12
|
+
}
|
|
13
|
+
} else if (Array.isArray(ao) && ao.length > 0) {
|
|
14
|
+
return function (req, res, next) {
|
|
15
|
+
var origin = req.headers.origin
|
|
16
|
+
if (origin) {
|
|
17
|
+
if (ao.includes(origin)) {
|
|
18
|
+
res.setHeader("Access-Control-Allow-Origin", origin)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
22
|
+
res.header("Access-Control-Allow-Methods", access.methods)
|
|
23
|
+
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
24
|
+
next()
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return function (req, res, next) {
|
|
28
|
+
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
29
|
+
res.header("Access-Control-Allow-Methods", access.methods)
|
|
30
|
+
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
31
|
+
next()
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.allow = allow
|
package/lib/index.js
CHANGED
|
@@ -22,6 +22,7 @@ exports.Handler = LowCodeController_1.Controller
|
|
|
22
22
|
var resources_1 = require("./resources")
|
|
23
23
|
var SearchController_1 = require("./SearchController")
|
|
24
24
|
exports.SearchHandler = SearchController_1.SearchController
|
|
25
|
+
__export(require("./access"))
|
|
25
26
|
__export(require("./client"))
|
|
26
27
|
__export(require("./edit"))
|
|
27
28
|
__export(require("./GenericController"))
|
|
@@ -38,38 +39,6 @@ __export(require("./resources"))
|
|
|
38
39
|
__export(require("./search"))
|
|
39
40
|
__export(require("./SearchController"))
|
|
40
41
|
__export(require("./view"))
|
|
41
|
-
function allow(access) {
|
|
42
|
-
var ao = access.origin
|
|
43
|
-
if (typeof ao === "string") {
|
|
44
|
-
return function (req, res, next) {
|
|
45
|
-
res.header("Access-Control-Allow-Origin", access.origin)
|
|
46
|
-
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
47
|
-
res.header("Access-Control-Allow-Methods", access.methods)
|
|
48
|
-
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
49
|
-
next()
|
|
50
|
-
}
|
|
51
|
-
} else if (Array.isArray(ao) && ao.length > 0) {
|
|
52
|
-
return function (req, res, next) {
|
|
53
|
-
var origin = req.headers.origin
|
|
54
|
-
if (origin) {
|
|
55
|
-
if (ao.includes(origin)) {
|
|
56
|
-
res.setHeader("Access-Control-Allow-Origin", origin)
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
60
|
-
res.header("Access-Control-Allow-Methods", access.methods)
|
|
61
|
-
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
62
|
-
next()
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return function (req, res, next) {
|
|
66
|
-
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
67
|
-
res.header("Access-Control-Allow-Methods", access.methods)
|
|
68
|
-
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
69
|
-
next()
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
exports.allow = allow
|
|
73
42
|
var SavedController = (function () {
|
|
74
43
|
function SavedController(log, service, item, id) {
|
|
75
44
|
this.log = log
|
|
@@ -400,9 +369,10 @@ function escapeHTML(input) {
|
|
|
400
369
|
})
|
|
401
370
|
}
|
|
402
371
|
exports.escapeHTML = escapeHTML
|
|
403
|
-
function generateChip(value, text, noClose) {
|
|
372
|
+
function generateChip(value, text, noClose, hasStar) {
|
|
404
373
|
var s = noClose ? "" : '<span class="close" onclick="removeChip(event)"></span>'
|
|
405
|
-
|
|
374
|
+
var t = hasStar ? '<i className="star highlight"></i>' : ""
|
|
375
|
+
return '<div class="chip" data-value="' + escapeHTML(value) + '">' + escapeHTML(text) + t + s + "</div>"
|
|
406
376
|
}
|
|
407
377
|
exports.generateChip = generateChip
|
|
408
378
|
function generateTags(v, noClose) {
|
|
@@ -427,6 +397,17 @@ function generateChips(v, noClose) {
|
|
|
427
397
|
.join("")
|
|
428
398
|
}
|
|
429
399
|
exports.generateChips = generateChips
|
|
400
|
+
function generateStarChips(v, value, text, star, noClose) {
|
|
401
|
+
return !v
|
|
402
|
+
? ""
|
|
403
|
+
: "" +
|
|
404
|
+
v
|
|
405
|
+
.map(function (s) {
|
|
406
|
+
return generateChip(s[value], s[text], noClose, s[star] === true)
|
|
407
|
+
})
|
|
408
|
+
.join("")
|
|
409
|
+
}
|
|
410
|
+
exports.generateStarChips = generateStarChips
|
|
430
411
|
var s = "string"
|
|
431
412
|
var o = "object"
|
|
432
413
|
function escape(obj) {
|
package/package.json
CHANGED
package/src/access.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { NextFunction } from "express"
|
|
2
|
+
import { ParamsDictionary, Request, Response } from "express-serve-static-core"
|
|
3
|
+
import { ParsedQs } from "qs"
|
|
4
|
+
|
|
5
|
+
export interface AccessConfig {
|
|
6
|
+
origin?: string | string[]
|
|
7
|
+
credentials?: string | string[]
|
|
8
|
+
methods?: string | string[]
|
|
9
|
+
headers: number | string | ReadonlyArray<string>
|
|
10
|
+
}
|
|
11
|
+
export type AccessControlAllowConfig = AccessConfig
|
|
12
|
+
export function allow(
|
|
13
|
+
access: AccessConfig,
|
|
14
|
+
): (req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>, number>, next: NextFunction) => void {
|
|
15
|
+
const ao = access.origin
|
|
16
|
+
if (typeof ao === "string") {
|
|
17
|
+
return (req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>, number>, next: NextFunction) => {
|
|
18
|
+
res.header("Access-Control-Allow-Origin", access.origin)
|
|
19
|
+
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
20
|
+
res.header("Access-Control-Allow-Methods", access.methods)
|
|
21
|
+
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
22
|
+
next()
|
|
23
|
+
}
|
|
24
|
+
} else if (Array.isArray(ao) && ao.length > 0) {
|
|
25
|
+
return (req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>, number>, next: NextFunction) => {
|
|
26
|
+
const origin = req.headers.origin
|
|
27
|
+
if (origin) {
|
|
28
|
+
if (ao.includes(origin)) {
|
|
29
|
+
res.setHeader("Access-Control-Allow-Origin", origin)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
33
|
+
res.header("Access-Control-Allow-Methods", access.methods)
|
|
34
|
+
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
35
|
+
next()
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return (req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>, number>, next: NextFunction) => {
|
|
39
|
+
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
40
|
+
res.header("Access-Control-Allow-Methods", access.methods)
|
|
41
|
+
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
42
|
+
next()
|
|
43
|
+
}
|
|
44
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Request, Response } from "express"
|
|
2
2
|
import { GenericController } from "./GenericController"
|
|
3
3
|
import { GenericSearchController } from "./GenericSearchController"
|
|
4
4
|
import { HealthController } from "./HealthController"
|
|
@@ -23,6 +23,7 @@ export {
|
|
|
23
23
|
SearchController as SearchHandler,
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
export * from "./access"
|
|
26
27
|
export * from "./client"
|
|
27
28
|
export * from "./edit"
|
|
28
29
|
export * from "./GenericController"
|
|
@@ -41,44 +42,6 @@ export * from "./search"
|
|
|
41
42
|
export * from "./SearchController"
|
|
42
43
|
export * from "./view"
|
|
43
44
|
|
|
44
|
-
export interface AccessConfig {
|
|
45
|
-
origin?: string | string[]
|
|
46
|
-
credentials?: string | string[]
|
|
47
|
-
methods?: string | string[]
|
|
48
|
-
headers: number | string | ReadonlyArray<string>
|
|
49
|
-
}
|
|
50
|
-
export type AccessControlAllowConfig = AccessConfig
|
|
51
|
-
export function allow(access: AccessConfig): (req: Request, res: Response, next: NextFunction) => void {
|
|
52
|
-
const ao = access.origin
|
|
53
|
-
if (typeof ao === "string") {
|
|
54
|
-
return (req: Request, res: Response, next: NextFunction) => {
|
|
55
|
-
res.header("Access-Control-Allow-Origin", access.origin)
|
|
56
|
-
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
57
|
-
res.header("Access-Control-Allow-Methods", access.methods)
|
|
58
|
-
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
59
|
-
next()
|
|
60
|
-
}
|
|
61
|
-
} else if (Array.isArray(ao) && ao.length > 0) {
|
|
62
|
-
return (req: Request, res: Response, next: NextFunction) => {
|
|
63
|
-
const origin = req.headers.origin
|
|
64
|
-
if (origin) {
|
|
65
|
-
if (ao.includes(origin)) {
|
|
66
|
-
res.setHeader("Access-Control-Allow-Origin", origin)
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
70
|
-
res.header("Access-Control-Allow-Methods", access.methods)
|
|
71
|
-
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
72
|
-
next()
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return (req: Request, res: Response, next: NextFunction) => {
|
|
76
|
-
res.header("Access-Control-Allow-Credentials", access.credentials)
|
|
77
|
-
res.header("Access-Control-Allow-Methods", access.methods)
|
|
78
|
-
res.setHeader("Access-Control-Allow-Headers", access.headers)
|
|
79
|
-
next()
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
45
|
export interface SavedService<T> {
|
|
83
46
|
load(id: string): Promise<T[]>
|
|
84
47
|
save(id: string, itemId: string): Promise<number>
|
|
@@ -384,9 +347,10 @@ export function escapeHTML(input: string): string {
|
|
|
384
347
|
return map[char]
|
|
385
348
|
})
|
|
386
349
|
}
|
|
387
|
-
export function generateChip(value: string, text: string, noClose?: boolean): string {
|
|
350
|
+
export function generateChip(value: string, text: string, noClose?: boolean, hasStar?: boolean): string {
|
|
388
351
|
const s = noClose ? "" : `<span class="close" onclick="removeChip(event)"></span>`
|
|
389
|
-
|
|
352
|
+
const t = hasStar ? `<i className="star highlight"></i>` : ""
|
|
353
|
+
return `<div class="chip" data-value="${escapeHTML(value)}">${escapeHTML(text)}${t}${s}</div>`
|
|
390
354
|
}
|
|
391
355
|
export function generateTags(v?: string[] | null, noClose?: boolean): string {
|
|
392
356
|
return !v ? "" : `${v.map((s) => generateChip(s, s, noClose)).join("")}`
|
|
@@ -398,6 +362,9 @@ export interface Item {
|
|
|
398
362
|
export function generateChips(v?: Item[] | null, noClose?: boolean): string {
|
|
399
363
|
return !v ? "" : `${v.map((s) => generateChip(s.value, s.text, noClose)).join("")}`
|
|
400
364
|
}
|
|
365
|
+
export function generateStarChips(v: any[] | null | undefined, value: string, text: string, star: string, noClose?: boolean): string {
|
|
366
|
+
return !v ? "" : `${v.map((s) => generateChip(s[value], s[text], noClose, s[star] === true)).join("")}`
|
|
367
|
+
}
|
|
401
368
|
|
|
402
369
|
const s = "string"
|
|
403
370
|
const o = "object"
|