Skip to content

Commit ef40bbf

Browse files
committed
feat: updates import resolution
Updates import resolution to use ES6-style imports and Typescript import/export helpers. Signed-off-by: Rifa Achrinza <[email protected]>
1 parent d4737ff commit ef40bbf

18 files changed

+41
-64
lines changed

functions/src/config.example.ts

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import FunctionConfig from "./opentrace/types/FunctionConfig";
2-
import Authenticator from "./opentrace/utils/Authenticator";
3-
import PinGenerator from "./opentrace/utils/PinGenerator";
1+
import {FunctionConfig} from "./opentrace/types/FunctionConfig";
2+
import {Authenticator} from "./opentrace/utils/Authenticator";
3+
import {PinGenerator} from "./opentrace/utils/PinGenerator";
44

5-
const config: FunctionConfig = {
5+
export const config: FunctionConfig = {
66
projectId: "",
77
regions: [],
88
utcOffset: 0,
@@ -26,5 +26,3 @@ const config: FunctionConfig = {
2626
bucketForArchive: "archive-bucket",
2727
},
2828
};
29-
30-
export default config;

functions/src/firebaseFunctions.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as functions from "firebase-functions";
1+
import functions from "firebase-functions";
22

33
import config from "./config";
44

functions/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as admin from "firebase-admin";
1+
import admin from "firebase-admin";
22
admin.initializeApp();
33

44
import * as firebaseFunctions from "./firebaseFunctions";

functions/src/opentrace/getHandshakePin.ts

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import * as functions from "firebase-functions";
2-
1+
import functions from "firebase-functions";
32
import config from "../config";
43

54
/**
65
* Get the handshake pin for a user.
76
*/
8-
const getHandshakePin = async (uid: string) => {
7+
export const getHandshakePin = async (uid: string) => {
98
console.log('getHandshakePin:', 'uid', uid);
109

1110
try {
@@ -20,5 +19,3 @@ const getHandshakePin = async (uid: string) => {
2019
};
2120

2221
export const getUserHandshakePin = config.upload.pinGenerator.generatePin;
23-
24-
export default getHandshakePin;

functions/src/opentrace/getTempIDs.ts

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import * as moment from "moment";
1+
import moment from "moment";
22

33
import config from "../config";
4-
import CustomEncrypter from "./utils/CustomEncrypter";
5-
import getEncryptionKey from "./utils/getEncryptionKey";
4+
import {CustomEncrypter} from "./utils/CustomEncrypter";
5+
import {getEncryptionKey} from "./utils/getEncryptionKey";
66

77
const UID_SIZE = 21;
88
const TIME_SIZE = 4;
@@ -11,7 +11,7 @@ const TEMPID_SIZE = UID_SIZE + TIME_SIZE * 2;
1111
const IV_SIZE = 16;
1212
const AUTHTAG_SIZE = 16;
1313

14-
const getTempIDs = async (uid: string) => {
14+
export const getTempIDs = async (uid: string) => {
1515
console.log('getTempIDs:', 'uid', uid);
1616

1717
const encryptionKey = await getEncryptionKey();
@@ -76,5 +76,3 @@ export function decryptTempID(tempID: string, encryptionKey: Buffer): { uid: str
7676
expiryTime: expiryTime
7777
};
7878
}
79-
80-
export default getTempIDs;

functions/src/opentrace/getUploadToken.ts

+6-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import * as functions from "firebase-functions";
2-
import * as admin from "firebase-admin";
1+
import functions from "firebase-functions";
2+
import admin from "firebase-admin";
33

44
import config from "../config";
5-
import getEncryptionKey from "./utils/getEncryptionKey";
6-
import CustomEncrypter from "./utils/CustomEncrypter";
7-
import formatTimestamp from "./utils/formatTimestamp";
5+
import {getEncryptionKey} from "./utils/getEncryptionKey";
6+
import {CustomEncrypter} from "./utils/CustomEncrypter";
7+
import {formatTimestamp} from "./utils/formatTimestamp";
88

99
/**
1010
* Get upload token by passing in a secret string as `data`
1111
*/
12-
const getUploadToken = async (uid: string, data: any, context: functions.https.CallableContext) => {
12+
export const getUploadToken = async (uid: string, data: any, context: functions.https.CallableContext) => {
1313
console.log('getUploadToken:', 'uid', uid, 'data', data, 'ip', context.rawRequest.ip);
1414

1515
let valid = false;
@@ -109,5 +109,3 @@ export function validateToken(token: string, encryptionKey: Buffer, validateToke
109109

110110
return {uid: uid, uploadCode: upload};
111111
}
112-
113-
export default getUploadToken;
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import * as functions from "firebase-functions";
1+
import functions from "firebase-functions";
22
import {ObjectMetadata} from "firebase-functions/lib/providers/storage";
33

4-
const processUploadedData = async (object: ObjectMetadata) => {
4+
export const processUploadedData = async (object: ObjectMetadata) => {
55
throw new functions.https.HttpsError('unimplemented', 'Not implemented yet');
66
};
7-
8-
export default processUploadedData;

functions/src/opentrace/types/FunctionConfig.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import PinGenerator from "../utils/PinGenerator";
44
// SUPPORTED_REGIONS from function-configuration.d.ts
55
declare type SUPPORTED_REGIONS = "us-central1" | "us-east1" | "us-east4" | "europe-west1" | "europe-west2" | "asia-east2" | "asia-northeast1";
66

7-
interface FunctionConfig {
7+
export interface FunctionConfig {
88
projectId: string // Firebase Project ID
99
regions: SUPPORTED_REGIONS[]
1010
utcOffset: number | string
@@ -28,5 +28,3 @@ interface FunctionConfig {
2828
bucketForArchive: string
2929
}
3030
}
31-
32-
export default FunctionConfig;
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
interface HeartBeatEvent {
1+
export interface HeartBeatEvent {
22
timestamp: number,
33
msg?: string,
44
// enhanced fields:
55
timestampString?: string,
66
}
7-
8-
export default HeartBeatEvent;

functions/src/opentrace/types/StreetPassRecord.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* Transmission Power txPower
99
* Organization org
1010
*/
11-
interface StreetPassRecord {
11+
export interface StreetPassRecord {
1212
timestamp: number,
1313
msg?: string,
1414
modelC: string,
@@ -24,5 +24,3 @@ interface StreetPassRecord {
2424
contactIdValidFrom?: number,
2525
contactIdValidTo?: number,
2626
}
27-
28-
export default StreetPassRecord;

functions/src/opentrace/utils/Authenticator.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import * as functions from "firebase-functions";
1+
import functions from "firebase-functions";
22
import {CallableContext} from "firebase-functions/lib/providers/https";
33

4-
export default class Authenticator {
4+
export class Authenticator {
55
async authenticate(data: any, context: CallableContext): Promise<string> {
66
if (!context.auth) {
77
throw new functions.https.HttpsError('unauthenticated', 'The function must be called while authenticated.');

functions/src/opentrace/utils/CustomEncrypter.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import * as crypto from "crypto";
1+
import crypto from "crypto";
22
import config from "../../config";
33

4-
class CustomEncrypter {
4+
export class CustomEncrypter {
55

66
algorithm: string;
77
key: Buffer;
@@ -71,5 +71,3 @@ class CustomEncrypter {
7171
return this.decrypt(decodedCipherTextB64, decodedIvB64, decodedAuthTagB64);
7272
}
7373
}
74-
75-
export default CustomEncrypter;

functions/src/opentrace/utils/PinGenerator.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* This class uses a plain substring to generate a pin from user uid.
33
* It should be subclassed with a secure implementation.
44
*/
5-
export default class PinGenerator {
5+
export class PinGenerator {
66
async generatePin(uid: string): Promise<string> {
77
return uid.substring(0, 6).toUpperCase();
88
}

functions/src/opentrace/utils/formatTimestamp.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@
22
* Convert timestamp (expressed in seconds since the Epoch) to "DD-MMM-YYYY HH:mm:ss Z" format
33
* @param timestamp
44
*/
5-
import * as moment from "moment";
5+
import moment from "moment";
66

77
import config from "../../config";
88

99
const TIMESTAMP_FORMAT = "DD-MMM-YYYY HH:mm:ss Z";
1010

11-
function formatTimestamp(timestamp: number) {
11+
export function formatTimestamp(timestamp: number) {
1212
return moment.unix(timestamp).utcOffset(config.utcOffset).format(TIMESTAMP_FORMAT);
1313
}
14-
15-
export default formatTimestamp;

functions/src/opentrace/utils/getEncryptionKey.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import config from "../../config";
55
const SECRET_KEY = `projects/${config.projectId}/secrets/${config.encryption.keyPath}`;
66
const SECRET_KEY_DEFAULT_VERSION = `${SECRET_KEY}/versions/${config.encryption.defaultVersion}`;
77

8-
const getEncryptionKey = async (): Promise<Buffer> => getEncryptionSecret(SECRET_KEY_DEFAULT_VERSION);
8+
export const getEncryptionKey = async (): Promise<Buffer> => getEncryptionSecret(SECRET_KEY_DEFAULT_VERSION);
99

1010
export const getAllEncryptionKeys = async (): Promise<Buffer[]> => {
1111
const secretManagerClient = new SecretManagerServiceClient();
@@ -25,7 +25,7 @@ export const getAllEncryptionKeys = async (): Promise<Buffer[]> => {
2525

2626
const isDefaultKey = (_: string) => SECRET_KEY_DEFAULT_VERSION.substring(SECRET_KEY_DEFAULT_VERSION.length - 2) === _.substring(_.length - 2);
2727

28-
async function getEncryptionSecret(keyPathIncludingVersion: string): Promise<Buffer> {
28+
export async function getEncryptionSecret(keyPathIncludingVersion: string): Promise<Buffer> {
2929
const secretManagerClient = new SecretManagerServiceClient();
3030

3131
console.log("getEncryptionSecret:", `Getting encryption key: ${keyPathIncludingVersion}`);
@@ -36,5 +36,3 @@ async function getEncryptionSecret(keyPathIncludingVersion: string): Promise<Buf
3636
// @ts-ignore
3737
return Buffer.from(secret.payload.data.toString(), 'base64');
3838
}
39-
40-
export default getEncryptionKey;

functions/test/index.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as admin from "firebase-admin";
1+
import admin from "firebase-admin";
22
import config from "../src/config";
33

44
if (!process.env.GOOGLE_APPLICATION_CREDENTIALS) {

functions/test/opentrace/config.test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import * as admin from "firebase-admin";
2-
import * as functions from "firebase-functions";
3-
import * as chai from "chai";
4-
import * as crypto from "crypto";
1+
import admin from "firebase-admin";
2+
import functions from "firebase-functions";
3+
import chai from "chai";
4+
import crypto from "crypto";
55

66
import config from "../../src/config";
77
import {FunctionsTestWrapper} from "../index.test";

functions/tsconfig.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
"skipLibCheck": true,
88
"sourceMap": true,
99
"strict": true,
10-
"target": "es2017"
10+
"target": "es2017",
11+
"allowSyntheticDefaultImports": true,
12+
"esModuleInterop": true,
13+
"importHelpers": true
1114
},
1215
"compileOnSave": true,
13-
"include": [
14-
"src"
15-
]
1616
}

0 commit comments

Comments
 (0)