Skip to content

Commit 7afadbc

Browse files
authored
Merge pull request #162 from Flagsmith/feat/v4
feat!: Custom fetch support, remove node-fetch, ESM+CJS dual build, migrate to vitest, TS fixes, test improvements
2 parents 2b5df9f + 6c348e8 commit 7afadbc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+4243
-6524
lines changed

.github/workflows/publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ jobs:
1414
- name: Cloning repo
1515
uses: actions/checkout@v3
1616

17-
- uses: actions/setup-node@v3
17+
- uses: actions/setup-node@v4
1818
with:
19-
node-version: '16.x'
19+
node-version: '18.x'
2020
registry-url: 'https://registry.npmjs.org'
2121

2222
- run: npm ci

.github/workflows/pull_request.yaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ jobs:
2323
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
2424
git submodule sync --recursive
2525
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
26-
- uses: actions/setup-node@v1
26+
- uses: actions/setup-node@v4
2727
with:
28-
node-version: "15.x"
28+
node-version: "18.x"
2929
- name: cache node modules
3030
uses: actions/cache@v1
3131
with:
@@ -34,8 +34,7 @@ jobs:
3434
restore-keys: |
3535
npm-${{ hashFiles('package-lock.json') }}
3636
npm-
37-
- run: npm i -g [email protected]
38-
- run: npm install
37+
- run: npm ci
3938
- run: npm test
4039
env:
4140
CI: true

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@
88

99
node_modules/
1010
build/
11+
coverage/
1112

1213
.tool-versions

flagsmith-engine/environments/models.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { FeatureStateModel } from '../features/models';
2-
import { IdentityModel } from '../identities/models';
3-
import { ProjectModel } from '../projects/models';
1+
import { FeatureStateModel } from '../features/models.js';
2+
import { IdentityModel } from '../identities/models.js';
3+
import { ProjectModel } from '../projects/models.js';
44

55
export class EnvironmentAPIKeyModel {
66
id: number;

flagsmith-engine/environments/util.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { buildFeatureStateModel } from '../features/util';
2-
import { buildIdentityModel } from '../identities/util';
3-
import { buildProjectModel } from '../projects/util';
4-
import { EnvironmentAPIKeyModel, EnvironmentModel } from './models';
1+
import { buildFeatureStateModel } from '../features/util.js';
2+
import { buildIdentityModel } from '../identities/util.js';
3+
import { buildProjectModel } from '../projects/util.js';
4+
import { EnvironmentAPIKeyModel, EnvironmentModel } from './models.js';
55

66
export function buildEnvironmentModel(environmentJSON: any) {
77
const project = buildProjectModel(environmentJSON.project);

flagsmith-engine/features/models.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { v4 as uuidv4 } from 'uuid';
2-
import { getHashedPercentateForObjIds } from '../utils/hashing';
2+
import { getHashedPercentateForObjIds } from '../utils/hashing/index.js';
33

44
export class FeatureModel {
55
id: number;

flagsmith-engine/features/util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
FeatureStateModel,
55
MultivariateFeatureOptionModel,
66
MultivariateFeatureStateValueModel
7-
} from './models';
7+
} from './models.js';
88

99
export function buildFeatureModel(featuresModelJSON: any): FeatureModel {
1010
return new FeatureModel(featuresModelJSON.id, featuresModelJSON.name, featuresModelJSON.type);

flagsmith-engine/identities/models.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import { FeatureStateModel } from '../features/models';
2-
import { IdentityFeaturesList } from '../utils/collections';
3-
import { TraitModel } from './traits/models';
1+
import { IdentityFeaturesList } from '../utils/collections.js';
2+
import { TraitModel } from './traits/models.js';
43

54
const { v4: uuidv4 } = require('uuid');
65

flagsmith-engine/identities/util.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { buildFeatureStateModel } from '../features/util';
2-
import { IdentityFeaturesList } from '../utils/collections';
3-
import { IdentityModel } from './models';
4-
import { TraitModel } from './traits/models';
1+
import { buildFeatureStateModel } from '../features/util.js';
2+
import { IdentityFeaturesList } from '../utils/collections.js';
3+
import { IdentityModel } from './models.js';
4+
import { TraitModel } from './traits/models.js';
55

66
export function buildTraitModel(traitJSON: any): TraitModel {
77
return new TraitModel(traitJSON.trait_key, traitJSON.trait_value);

flagsmith-engine/index.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import { EnvironmentModel } from './environments/models';
2-
import { FeatureStateModel } from './features/models';
3-
import { IdentityModel } from './identities/models';
4-
import { TraitModel } from './identities/traits/models';
5-
import { getIdentitySegments } from './segments/evaluators';
6-
import { SegmentModel } from './segments/models';
7-
import { FeatureStateNotFound } from './utils/errors';
1+
import { EnvironmentModel } from './environments/models.js';
2+
import { FeatureStateModel } from './features/models.js';
3+
import { IdentityModel } from './identities/models.js';
4+
import { TraitModel } from './identities/traits/models.js';
5+
import { getIdentitySegments } from './segments/evaluators.js';
6+
import { SegmentModel } from './segments/models.js';
7+
import { FeatureStateNotFound } from './utils/errors.js';
88

9-
export { EnvironmentModel } from './environments/models';
10-
export { FeatureStateModel } from './features/models';
11-
export { IdentityModel } from './identities/models';
12-
export { TraitModel } from './identities/traits/models';
13-
export { SegmentModel } from './segments/models';
14-
export { OrganisationModel } from './organisations/models';
9+
export { EnvironmentModel } from './environments/models.js';
10+
export { FeatureStateModel } from './features/models.js';
11+
export { IdentityModel } from './identities/models.js';
12+
export { TraitModel } from './identities/traits/models.js';
13+
export { SegmentModel } from './segments/models.js';
14+
export { OrganisationModel } from './organisations/models.js';
1515

1616
function getIdentityFeatureStatesDict(
1717
environment: EnvironmentModel,

0 commit comments

Comments
 (0)