@fjall/util 0.1.10
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/dist/index.d.ts +1 -0
- package/dist/index.js +18 -0
- package/dist/src/Config.d.ts +67 -0
- package/dist/src/Config.js +120 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +18 -0
- package/package.json +23 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './src';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./src"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMnOyJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
type Provider = "aws";
|
|
2
|
+
type ServiceConfig = {
|
|
3
|
+
id: string;
|
|
4
|
+
type?: string;
|
|
5
|
+
version?: number;
|
|
6
|
+
options?: object;
|
|
7
|
+
};
|
|
8
|
+
type ProviderAccount = {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
};
|
|
12
|
+
type RootConfig = {
|
|
13
|
+
version?: number;
|
|
14
|
+
development?: boolean;
|
|
15
|
+
services?: {
|
|
16
|
+
[key: string]: ServiceConfig;
|
|
17
|
+
};
|
|
18
|
+
provider?: Provider;
|
|
19
|
+
providerAccounts?: ProviderAccount[];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Config class for loading and saving .fjall-config.json file
|
|
23
|
+
*/
|
|
24
|
+
export declare class Config {
|
|
25
|
+
config: RootConfig;
|
|
26
|
+
constructor(config?: object);
|
|
27
|
+
isDevelopment(): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Load config file into memory as a raw JSON string
|
|
30
|
+
* @returns Config as JSON string or NULL if no config file accessible
|
|
31
|
+
*/
|
|
32
|
+
private static loadConfigFile;
|
|
33
|
+
/**
|
|
34
|
+
* Load configuration from file
|
|
35
|
+
*
|
|
36
|
+
* @returns Loaded configuration
|
|
37
|
+
*/
|
|
38
|
+
static loadConfig(): Config;
|
|
39
|
+
/**
|
|
40
|
+
* Save configuration to file
|
|
41
|
+
*/
|
|
42
|
+
saveConfig(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Set the schema version used for this config file
|
|
45
|
+
*
|
|
46
|
+
* @param version Schema Version
|
|
47
|
+
*/
|
|
48
|
+
setVersion(version: number): void;
|
|
49
|
+
/**
|
|
50
|
+
* Add a new service to the config file
|
|
51
|
+
* @param serviceKey Name/key of the service
|
|
52
|
+
* @param config Service configuration properties
|
|
53
|
+
*/
|
|
54
|
+
addService(serviceKey: string, config: ServiceConfig): void;
|
|
55
|
+
/**
|
|
56
|
+
* Set config options on a previously defined service
|
|
57
|
+
*
|
|
58
|
+
* @param serviceKey Name/key of the service
|
|
59
|
+
* @param config Service configuration properties to set
|
|
60
|
+
*/
|
|
61
|
+
setServiceOption(serviceKey: string, config: ServiceConfig): void;
|
|
62
|
+
getServiceConfig(serviceKey: string): ServiceConfig | null;
|
|
63
|
+
setProvider(provider: Provider): void;
|
|
64
|
+
addProviderAccount(account: ProviderAccount): void;
|
|
65
|
+
getProviderAccount(accountName: string): ProviderAccount | null | undefined;
|
|
66
|
+
}
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Config = void 0;
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
/**
|
|
6
|
+
* The current base-version of any newly created config file
|
|
7
|
+
*/
|
|
8
|
+
const BASE_CONFIG_VERSION = 0.1;
|
|
9
|
+
/**
|
|
10
|
+
* Config class for loading and saving .fjall-config.json file
|
|
11
|
+
*/
|
|
12
|
+
class Config {
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.config = config
|
|
15
|
+
? config
|
|
16
|
+
: {
|
|
17
|
+
version: BASE_CONFIG_VERSION,
|
|
18
|
+
services: {},
|
|
19
|
+
providerAccounts: [],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
isDevelopment() {
|
|
23
|
+
return !!this.config?.development;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Load config file into memory as a raw JSON string
|
|
27
|
+
* @returns Config as JSON string or NULL if no config file accessible
|
|
28
|
+
*/
|
|
29
|
+
static loadConfigFile() {
|
|
30
|
+
try {
|
|
31
|
+
fs.accessSync(".fjall/.fjall-config.json", fs.constants.R_OK | fs.constants.W_OK);
|
|
32
|
+
return fs.readFileSync(".fjall/.fjall-config.json", {
|
|
33
|
+
encoding: "utf8",
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
console.log("Expected config file does not exist or cannot be read.");
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Load configuration from file
|
|
43
|
+
*
|
|
44
|
+
* @returns Loaded configuration
|
|
45
|
+
*/
|
|
46
|
+
static loadConfig() {
|
|
47
|
+
try {
|
|
48
|
+
const configJson = this.loadConfigFile();
|
|
49
|
+
return configJson ? new Config(JSON.parse(configJson)) : new Config();
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
console.log("Unable to parse config file. Aborting.");
|
|
53
|
+
process.exit();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Save configuration to file
|
|
58
|
+
*/
|
|
59
|
+
saveConfig() {
|
|
60
|
+
// Ensure .fjall directory exists
|
|
61
|
+
fs.mkdirSync(".fjall", { recursive: true }); // recursive: true prevents error if directory already exists
|
|
62
|
+
// JSON-ify config and write to file
|
|
63
|
+
const jsonString = JSON.stringify(this.config, null, 2);
|
|
64
|
+
fs.writeFileSync(".fjall/.fjall-config.json", jsonString);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Set the schema version used for this config file
|
|
68
|
+
*
|
|
69
|
+
* @param version Schema Version
|
|
70
|
+
*/
|
|
71
|
+
setVersion(version) {
|
|
72
|
+
this.config.version = version;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Add a new service to the config file
|
|
76
|
+
* @param serviceKey Name/key of the service
|
|
77
|
+
* @param config Service configuration properties
|
|
78
|
+
*/
|
|
79
|
+
addService(serviceKey, config) {
|
|
80
|
+
if (!this.config.services)
|
|
81
|
+
this.config.services = {};
|
|
82
|
+
this.config.services[serviceKey] = config;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Set config options on a previously defined service
|
|
86
|
+
*
|
|
87
|
+
* @param serviceKey Name/key of the service
|
|
88
|
+
* @param config Service configuration properties to set
|
|
89
|
+
*/
|
|
90
|
+
setServiceOption(serviceKey, config) {
|
|
91
|
+
if (!this.config.services)
|
|
92
|
+
this.config.services = {};
|
|
93
|
+
const service = this.config.services[serviceKey];
|
|
94
|
+
if (!service)
|
|
95
|
+
return;
|
|
96
|
+
this.config.services[serviceKey] = { ...service, ...config };
|
|
97
|
+
}
|
|
98
|
+
getServiceConfig(serviceKey) {
|
|
99
|
+
if (!this.config.services)
|
|
100
|
+
return null;
|
|
101
|
+
return this.config.services[serviceKey] || null;
|
|
102
|
+
}
|
|
103
|
+
setProvider(provider) {
|
|
104
|
+
this.config.provider = provider;
|
|
105
|
+
}
|
|
106
|
+
addProviderAccount(account) {
|
|
107
|
+
if (!this.config.providerAccounts)
|
|
108
|
+
this.config.providerAccounts = [];
|
|
109
|
+
// ensure account name is always lowercase
|
|
110
|
+
account.name = account.name.toLocaleLowerCase();
|
|
111
|
+
this.config.providerAccounts.push(account);
|
|
112
|
+
}
|
|
113
|
+
getProviderAccount(accountName) {
|
|
114
|
+
if (!this.config.providerAccounts)
|
|
115
|
+
return null;
|
|
116
|
+
return this.config.providerAccounts.find((account) => account.name.toLocaleLowerCase() === accountName.toLocaleLowerCase());
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.Config = Config;
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUF3QnpCOztHQUVHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFaEM7O0dBRUc7QUFDSCxNQUFhLE1BQU07SUFHakIsWUFBWSxNQUFlO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTTtZQUNsQixDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQztnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsRUFBRTtnQkFDWixnQkFBZ0IsRUFBRSxFQUFFO2FBQ3JCLENBQUM7SUFDUixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsY0FBYztRQUMzQixJQUFJO1lBQ0YsRUFBRSxDQUFDLFVBQVUsQ0FDWCwyQkFBMkIsRUFDM0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3RDLENBQUM7WUFFRixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsMkJBQTJCLEVBQUU7Z0JBQ2xELFFBQVEsRUFBRSxNQUFNO2FBQ2pCLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDdEUsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJO1lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJ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QUMsaUJBQWlCLEVBQUUsQ0FDdkUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTNIRCx3QkEySEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcblxudHlwZSBQcm92aWRlciA9IFwiYXdzXCI7XG5cbnR5cGUgU2VydmljZUNvbmZpZyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgdmVyc2lvbj86IG51bWJlcjtcbiAgb3B0aW9ucz86IG9iamVjdDtcbn07XG5cbnR5cGUgUHJvdmlkZXJBY2NvdW50ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59O1xuXG50eXBlIFJvb3RDb25maWcgPSB7XG4gIHZlcnNpb24/OiBudW1iZXI7XG4gIGRldmVsb3BtZW50PzogYm9vbGVhbjtcbiAgc2VydmljZXM/OiB7IFtrZXk6IHN0cmluZ106IFNlcnZpY2VDb25maWcgfTtcbiAgcHJvdmlkZXI/OiBQcm92aWRlcjtcbiAgcHJvdmlkZXJBY2NvdW50cz86IFByb3ZpZGVyQWNjb3VudFtdO1xufTtcblxuLyoqXG4gKiBUaGUgY3VycmVudCBiYXNlLXZlcnNpb24gb2YgYW55IG5ld2x5IGNyZWF0ZWQgY29uZmlnIGZpbGVcbiAqL1xuY29uc3QgQkFTRV9DT05GSUdfVkVSU0lPTiA9IDAuMTtcblxuLyoqXG4gKiBDb25maWcgY2xhc3MgZm9yIGxvYWRpbmcgYW5kIHNhdmluZyAuZmphbGwtY29uZmlnLmpzb24gZmlsZVxuICovXG5leHBvcnQgY2xhc3MgQ29uZmlnIHtcbiAgY29uZmlnOiBSb290Q29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IG9iamVjdCkge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnXG4gICAgICA/IGNvbmZpZ1xuICAgICAgOiB7XG4gICAgICAgICAgdmVyc2lvbjogQkFTRV9DT05GSUdfVkVSU0lPTixcbiAgICAgICAgICBzZXJ2aWNlczoge30sXG4gICAgICAgICAgcHJvdmlkZXJBY2NvdW50czogW10sXG4gICAgICAgIH07XG4gIH1cblxuICBpc0RldmVsb3BtZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY29uZmlnPy5kZXZlbG9wbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGNvbmZpZyBmaWxlIGludG8gbWVtb3J5IGFzIGEgcmF3IEpTT04gc3RyaW5nXG4gICAqIEByZXR1cm5zIENvbmZpZyBhcyBKU09OIHN0cmluZyBvciBOVUxMIGlmIG5vIGNvbmZpZyBmaWxlIGFjY2Vzc2libGVcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGxvYWRDb25maWdGaWxlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICBmcy5hY2Nlc3NTeW5jKFxuICAgICAgICBcIi5mamFsbC8uZmphbGwtY29uZmlnLmpzb25cIixcbiAgICAgICAgZnMuY29uc3RhbnRzLlJfT0sgfCBmcy5jb25zdGFudHMuV19PS1xuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhcIi5mamFsbC8uZmphbGwtY29uZmlnLmpzb25cIiwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRXhwZWN0ZWQgY29uZmlnIGZpbGUgZG9lcyBub3QgZXhpc3Qgb3IgY2Fubm90IGJlIHJlYWQuXCIpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgY29uZmlndXJhdGlvbiBmcm9tIGZpbGVcbiAgICpcbiAgICogQHJldHVybnMgTG9hZGVkIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHN0YXRpYyBsb2FkQ29uZmlnKCk6IENvbmZpZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbmZpZ0pzb24gPSB0aGlzLmxvYWRDb25maWdGaWxlKCk7XG4gICAgICByZXR1cm4gY29uZmlnSnNvbiA/IG5ldyBDb25maWcoSlNPTi5wYXJzZShjb25maWdKc29uKSkgOiBuZXcgQ29uZmlnKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIlVuYWJsZSB0byBwYXJzZSBjb25maWcgZmlsZS4gQWJvcnRpbmcuXCIpO1xuICAgICAgcHJvY2Vzcy5leGl0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgY29uZmlndXJhdGlvbiB0byBmaWxlXG4gICAqL1xuICBzYXZlQ29uZmlnKCkge1xuICAgIC8vIEVuc3VyZSAuZmphbGwgZGlyZWN0b3J5IGV4aXN0c1xuICAgIGZzLm1rZGlyU3luYyhcIi5mamFsbFwiLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsgLy8gcmVjdXJzaXZlOiB0cnVlIHByZXZlbnRzIGVycm9yIGlmIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0c1xuXG4gICAgLy8gSlNPTi1pZnkgY29uZmlnIGFuZCB3cml0ZSB0byBmaWxlXG4gICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnLCBudWxsLCAyKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKFwiLmZqYWxsLy5mamFsbC1jb25maWcuanNvblwiLCBqc29uU3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHNjaGVtYSB2ZXJzaW9uIHVzZWQgZm9yIHRoaXMgY29uZmlnIGZpbGVcbiAgICpcbiAgICogQHBhcmFtIHZlcnNpb24gU2NoZW1hIFZlcnNpb25cbiAgICovXG4gIHNldFZlcnNpb24odmVyc2lvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5jb25maWcudmVyc2lvbiA9IHZlcnNpb247XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IHNlcnZpY2UgdG8gdGhlIGNvbmZpZyBmaWxlXG4gICAqIEBwYXJhbSBzZXJ2aWNlS2V5IE5hbWUva2V5IG9mIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSBjb25maWcgU2VydmljZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICovXG4gIGFkZFNlcnZpY2Uoc2VydmljZUtleTogc3RyaW5nLCBjb25maWc6IFNlcnZpY2VDb25maWcpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnNlcnZpY2VzKSB0aGlzLmNvbmZpZy5zZXJ2aWNlcyA9IHt9O1xuICAgIHRoaXMuY29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldID0gY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWcgb3B0aW9ucyBvbiBhIHByZXZpb3VzbHkgZGVmaW5lZCBzZXJ2aWNlXG4gICAqXG4gICAqIEBwYXJhbSBzZXJ2aWNlS2V5IE5hbWUva2V5IG9mIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSBjb25maWcgU2VydmljZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdG8gc2V0XG4gICAqL1xuICBzZXRTZXJ2aWNlT3B0aW9uKHNlcnZpY2VLZXk6IHN0cmluZywgY29uZmlnOiBTZXJ2aWNlQ29uZmlnKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5zZXJ2aWNlcykgdGhpcy5jb25maWcuc2VydmljZXMgPSB7fTtcblxuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLmNvbmZpZy5zZXJ2aWNlc1tzZXJ2aWNlS2V5XTtcbiAgICBpZiAoIXNlcnZpY2UpIHJldHVybjtcblxuICAgIHRoaXMuY29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldID0geyAuLi5zZXJ2aWNlLCAuLi5jb25maWcgfTtcbiAgfVxuXG4gIGdldFNlcnZpY2VDb25maWcoc2VydmljZUtleTogc3RyaW5nKTogU2VydmljZUNvbmZpZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5jb25maWcuc2VydmljZXMpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5zZXJ2aWNlc1tzZXJ2aWNlS2V5XSB8fCBudWxsO1xuICB9XG5cbiAgc2V0UHJvdmlkZXIocHJvdmlkZXI6IFByb3ZpZGVyKSB7XG4gICAgdGhpcy5jb25maWcucHJvdmlkZXIgPSBwcm92aWRlcjtcbiAgfVxuXG4gIGFkZFByb3ZpZGVyQWNjb3VudChhY2NvdW50OiBQcm92aWRlckFjY291bnQpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnByb3ZpZGVyQWNjb3VudHMpIHRoaXMuY29uZmlnLnByb3ZpZGVyQWNjb3VudHMgPSBbXTtcblxuICAgIC8vIGVuc3VyZSBhY2NvdW50IG5hbWUgaXMgYWx3YXlzIGxvd2VyY2FzZVxuICAgIGFjY291bnQubmFtZSA9IGFjY291bnQubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXG4gICAgdGhpcy5jb25maWcucHJvdmlkZXJBY2NvdW50cy5wdXNoKGFjY291bnQpO1xuICB9XG5cbiAgZ2V0UHJvdmlkZXJBY2NvdW50KGFjY291bnROYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnByb3ZpZGVyQWNjb3VudHMpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5wcm92aWRlckFjY291bnRzLmZpbmQoXG4gICAgICAoYWNjb3VudCkgPT5cbiAgICAgICAgYWNjb3VudC5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IGFjY291bnROYW1lLnRvTG9jYWxlTG93ZXJDYXNlKClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Config';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Config"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQ29uZmlnJzsiXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fjall/util",
|
|
3
|
+
"version": "0.1.10",
|
|
4
|
+
"description": "Common utility methods",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist/"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"clean": "rm -rf ./dist",
|
|
12
|
+
"build": "npm run clean && npx tsc",
|
|
13
|
+
"watch": "npm run build && npx tsc-watch",
|
|
14
|
+
"publish": "npm run build && npm publish --access restricted"
|
|
15
|
+
},
|
|
16
|
+
"author": "",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@types/node": "^18.19.34",
|
|
20
|
+
"tsc-watch": "^6.0.0",
|
|
21
|
+
"typescript": "^4.9.4"
|
|
22
|
+
}
|
|
23
|
+
}
|