Skip to content

Commit b24861b

Browse files
feat: create a shared /lib folder for the extensions (#41)
* feat: add lib folder for extensions * test: fix tests * feat: update script * fix: npm i of the /lib
1 parent f4879ca commit b24861b

File tree

11 files changed

+62
-25
lines changed

11 files changed

+62
-25
lines changed

Dockerfile

+10-2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ RUN npm run build
6464

6565
# Build hooks/adopted-probe
6666
FROM node:18-alpine AS builder-09
67+
WORKDIR /builder/src/extensions/lib
68+
ADD ./src/extensions/lib/package.json ./src/extensions/lib/package-lock.json ./
69+
RUN npm ci
70+
COPY ./src/extensions/lib .
6771
WORKDIR /builder/src/extensions/hooks/adopted-probe
6872
ADD ./src/extensions/hooks/adopted-probe/package.json ./src/extensions/hooks/adopted-probe/package-lock.json ./
6973
RUN npm ci
@@ -134,16 +138,20 @@ RUN npm ci
134138
COPY ./src/extensions/hooks/gp-tokens .
135139
RUN npm run build
136140

137-
# Build hooks/gp-tokens
141+
# Build hooks/directus-users
138142
FROM node:18-alpine AS builder-18
139143
WORKDIR /builder/src/extensions/hooks/directus-users
140144
ADD ./src/extensions/hooks/directus-users/package.json ./src/extensions/hooks/directus-users/package-lock.json ./
141145
RUN npm ci
142146
COPY ./src/extensions/hooks/directus-users .
143147
RUN npm run build
144148

145-
# Build hooks/gp-tokens
149+
# Build hooks/location-verrides
146150
FROM node:18-alpine AS builder-19
151+
WORKDIR /builder/src/extensions/lib
152+
ADD ./src/extensions/lib/package.json ./src/extensions/lib/package-lock.json ./
153+
RUN npm ci
154+
COPY ./src/extensions/lib .
147155
WORKDIR /builder/src/extensions/hooks/location-overrides
148156
ADD ./src/extensions/hooks/location-overrides/package.json ./src/extensions/hooks/location-overrides/package-lock.json ./
149157
RUN npm ci

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Add tests to extension:
3535
# From the extension folder call:
3636
original_dir=$PWD
3737
npm i --save-dev chai @types/chai mocha @types/mocha sinon @types/sinon ts-node
38-
jq --tab '.compilerOptions.module = "ESNext"' tsconfig.json > temp.json && mv temp.json tsconfig.json
38+
jq 'del(.compilerOptions.rootDir) | .compilerOptions.module = "ESNext" | .include = ["./src/**/*.ts", "../../lib/*.ts"]' tsconfig.json > temp.json && mv temp.json tsconfig.json
3939
jq --tab '.scripts.test = "TS_NODE_TRANSPILE_ONLY=true mocha"' package.json > temp.json && mv temp.json package.json
4040
mkdir test
4141
while [[ $PWD != */extensions ]]; do cd ..; done

scripts/test.sh

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ directories=$(find ./src -type d -name "node_modules" -prune -o -type f -name "p
88
echo "Extensions directories:"
99
echo "$directories"
1010

11+
# /lib directory should be installed first
12+
directories="./src/extensions/lib $directories"
13+
1114
for dir in $directories; do
1215
(
1316
echo "Directory: $dir"

src/extensions/hooks/adopted-probe/src/validate-fields.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import axios from 'axios';
44
import { createError } from '@directus/errors';
55
import { Fields } from './index.js';
66
import { City, geonamesCache, getKey } from './geonames-cache.js';
7-
import { normalizeCityName } from './normalize-city.js';
7+
import { normalizeCityName } from '../../../lib/normalize-city.js';
88
import { EventContext } from '@directus/types';
99
import { getProbes, getUser } from './repositories/directus.js';
1010

src/extensions/hooks/adopted-probe/tsconfig.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626
"skipLibCheck": true,
2727
"forceConsistentCasingInFileNames": true,
2828
"allowSyntheticDefaultImports": true,
29-
"isolatedModules": true,
30-
"rootDir": "./src"
29+
"isolatedModules": true
3130
},
3231
"include": [
33-
"./src/**/*.ts"
32+
"./src/**/*.ts",
33+
"../../lib/*.ts"
3434
]
3535
}

src/extensions/hooks/location-overrides/src/normalize-city.ts

-15
This file was deleted.

src/extensions/hooks/location-overrides/src/validate-fields.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { createError } from '@directus/errors';
33
import axios from 'axios';
44
import ipaddr from 'ipaddr.js';
55
import type { Fields } from './index.js';
6-
import { normalizeCityName } from './normalize-city.js';
6+
import { normalizeCityName } from '../../../lib/normalize-city.js';
77

88
type City = {
99
lng: string;

src/extensions/hooks/location-overrides/tsconfig.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
"forceConsistentCasingInFileNames": true,
2626
"allowSyntheticDefaultImports": true,
2727
"isolatedModules": true,
28-
"rootDir": "./src",
2928
"module": "ESNext"
3029
},
3130
"include": [
32-
"./src/**/*.ts"
31+
"./src/**/*.ts",
32+
"../../lib/*.ts"
3333
]
3434
}

src/extensions/lib/package-lock.json

+24
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/extensions/lib/package.json

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "lib",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"type": "module",
7+
"scripts": {
8+
"test": "echo 'No tests for that folder'",
9+
"build": "echo 'No build step for that folder'"
10+
},
11+
"keywords": [],
12+
"author": "",
13+
"license": "ISC",
14+
"dependencies": {
15+
"any-ascii": "^0.3.2"
16+
}
17+
}

0 commit comments

Comments
 (0)