Skip to content

Commit 2282250

Browse files
committed
Switched to exported zod (fixes build issues) + added readMEs for testing
1 parent 99b144e commit 2282250

14 files changed

Lines changed: 229 additions & 66 deletions

File tree

package-lock.json

Lines changed: 6 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,15 @@
2626
"ajv": "^8.12.0",
2727
"ajv-formats": "^2.1.1",
2828
"chalk": "^5.3.0",
29-
"codify-plugin-lib": "1.0.182-beta31",
29+
"codify-plugin-lib": "1.0.182-beta53",
3030
"codify-schemas": "1.0.86-beta7",
3131
"debug": "^4.3.4",
3232
"lodash.isequal": "^4.5.0",
3333
"nanoid": "^5.0.9",
3434
"plist": "^3.1.0",
3535
"semver": "^7.6.0",
3636
"strip-ansi": "^7.1.0",
37-
"trash": "^10.0.0",
38-
"zod": "^4.2.1"
37+
"trash": "^10.0.0"
3938
},
4039
"devDependencies": {
4140
"@apidevtools/json-schema-ref-parser": "^11.7.2",

rollup.config.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@ export default {
88
input: 'src/index.ts',
99
output: {
1010
dir:'dist',
11-
format: 'cjs'
11+
format: 'cjs',
12+
inlineDynamicImports: true,
1213
},
1314
external: ['@homebridge/node-pty-prebuilt-multiarch'],
1415
plugins: [
1516
json(),
1617
nodeResolve({ exportConditions: ['node'] }),
17-
typescript(),
18+
typescript({
19+
exclude: ['**/*.test.ts', '**/*.d.ts', 'test']
20+
}),
1821
commonjs(),
1922
terser()
2023
]

scripts/build.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { JSONSchema } from '@apidevtools/json-schema-ref-parser';
22
import { Ajv } from 'ajv';
3+
import { VerbosityLevel } from 'codify-plugin-lib';
4+
import { SequentialPty } from 'codify-plugin-lib/dist/pty/seqeuntial-pty';
35
import { IpcMessage, IpcMessageSchema, MessageStatus, ResourceSchema } from 'codify-schemas';
46
import mergeJsonSchemas from 'merge-json-schemas';
57
import { ChildProcess, fork } from 'node:child_process';
68
import fs from 'node:fs';
79
import path from 'node:path';
810
import * as url from 'node:url';
911

10-
import { codifySpawn } from '../src/utils/codify-spawn.js';
11-
1212
const ajv = new Ajv({
1313
strict: true
1414
});
@@ -36,8 +36,11 @@ function sendMessageAndAwaitResponse(process: ChildProcess, message: IpcMessage)
3636
});
3737
}
3838

39-
await codifySpawn('rm -rf ./dist')
40-
await codifySpawn('npm run rollup -- -f es');
39+
VerbosityLevel.set(3);
40+
const $ = new SequentialPty();
41+
42+
await $.spawn('rm -rf ./dist')
43+
await $.spawn('npm run rollup -- -f es', { interactive: true });
4144

4245
const plugin = fork(
4346
'./dist/index.js',
@@ -89,8 +92,8 @@ const mergedSchemas = [...schemasMap.entries()].map(([type, schema]) => {
8992
});
9093

9194

92-
await codifySpawn('rm -rf ./dist')
93-
await codifySpawn('npm run rollup'); // re-run rollup without building for es
95+
await $.spawn('rm -rf ./dist')
96+
await $.spawn('npm run rollup', { interactive: true }); // re-run rollup without building for es
9497

9598
console.log('Generated JSON Schemas for all resources')
9699

@@ -100,8 +103,7 @@ fs.writeFileSync(schemaOutputPath, JSON.stringify(mergedSchemas, null, 2));
100103

101104
console.log('Successfully wrote schema to ./dist/schemas.json')
102105

103-
// eslint-disable-next-line n/no-process-exit,unicorn/no-process-exit
104-
process.exit(0)
105-
106106

107+
plugin.kill(9);
108+
process.exit(0);
107109

src/resources/android/README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
title: android-studio
3+
description: A reference page for the Android Studios resource
4+
sidebar:
5+
label: android-studio
6+
---
7+
8+
The Android Studio resource installs Android Studios. It supports the current and all previous versions.
9+
It also allows preview and beta versions to be installed.
10+
11+
## Parameters:
12+
13+
- **version**: *(string)* The version to install. This will default to the latest stable version if it isn't
14+
specified. For a list of all available versions please see: https://developer.android.com/studio/archive.
15+
16+
- **directory**: *(string)* A custom directory to install Android Studios to. This defaults to `/Applications`
17+
if left unspecified
18+
19+
## Example usage:
20+
21+
Stable version:
22+
```json title="codify.jsonc"
23+
[
24+
{
25+
"type": "Android Studio"
26+
}
27+
]
28+
```
29+
30+
Stable and previous version:
31+
```json title="codify.jsonc"
32+
[
33+
{
34+
"type": "Android Studio"
35+
},
36+
{
37+
"type": "Android Studio",
38+
"version": "2024.2.1.8"
39+
}
40+
]
41+
```
42+
43+
Custom directory:
44+
```json title="codify.jsonc"
45+
[
46+
{
47+
"type": "Android Studio",
48+
"version": "2024.2.1.7",
49+
"directory": "~/programs"
50+
}
51+
]
52+
```

src/resources/android/android-studio-schema.json

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/resources/android/android-studio.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
1-
import { CreatePlan, Resource, ResourceSettings, getPty } from 'codify-plugin-lib';
2-
import { OS, ResourceConfig } from 'codify-schemas';
1+
import { CreatePlan, Resource, ResourceSettings, getPty, z } from 'codify-plugin-lib';
2+
import { OS } from 'codify-schemas';
33
import * as fs from 'node:fs/promises';
44
import os from 'node:os';
55
import path from 'node:path';
66
import plist from 'plist';
77

88
import { Utils } from '../../utils/index.js';
9-
import Schema from './android-studio-schema.json';
109
import { AndroidStudioPlist, AndroidStudioVersionData } from './types.js';
1110

12-
export interface AndroidStudioConfig extends ResourceConfig {
13-
version?: string;
14-
directory?: string;
15-
}
11+
export const schema = z.object({
12+
version: z
13+
.string()
14+
.describe(
15+
'Android studios version. Visit: https://developer.android.com/studio/releases for version info'
16+
)
17+
.optional(),
18+
directory: z
19+
.string()
20+
.describe(
21+
'The directory to install Android Studios into. Defaults to /Applications'
22+
)
23+
.optional(),
24+
})
25+
export type AndroidStudioConfig = z.infer<typeof schema>;
1626

1727
export class AndroidStudioResource extends Resource<AndroidStudioConfig> {
1828

@@ -22,7 +32,7 @@ export class AndroidStudioResource extends Resource<AndroidStudioConfig> {
2232
return {
2333
id: 'android-studio',
2434
operatingSystems: [OS.Darwin],
25-
schema: Schema,
35+
schema,
2636
parameterSettings: {
2737
directory: { type: 'directory', default: '/Applications' },
2838
version: { type: 'version' }
@@ -125,7 +135,7 @@ export class AndroidStudioResource extends Resource<AndroidStudioConfig> {
125135
const plistData = plist.parse(file) as unknown as AndroidStudioPlist;
126136

127137
return { location, plist: plistData };
128-
} catch(error) {
138+
} catch (error) {
129139
console.log(error)
130140
return null;
131141
}

src/resources/asdf/asdf-install.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import {
55
ResourceSettings,
66
SpawnStatus,
77
getPty,
8+
z,
89
} from 'codify-plugin-lib';
910
import { OS } from 'codify-schemas';
1011
import * as fs from 'node:fs/promises';
1112
import path from 'node:path';
12-
import z from 'zod';
1313

1414
import { FileUtils } from '../../utils/file-utils.js';
1515

src/resources/asdf/asdf-plugin.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
import { CreatePlan, DestroyPlan, Resource, ResourceSettings, SpawnStatus, getPty, untildify } from 'codify-plugin-lib';
1+
import {
2+
CreatePlan,
3+
DestroyPlan,
4+
Resource,
5+
ResourceSettings,
6+
SpawnStatus,
7+
getPty,
8+
z
9+
} from 'codify-plugin-lib';
210
import { OS } from 'codify-schemas';
3-
import z from 'zod';
411

512
import { AsdfPluginVersionsParameter } from './version-parameter.js';
613

src/resources/asdf/asdf.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { CreatePlan, FileUtils, Resource, ResourceSettings, SpawnStatus, getPty } from 'codify-plugin-lib';
1+
import { CreatePlan, FileUtils, Resource, ResourceSettings, SpawnStatus, getPty, z } from 'codify-plugin-lib';
22
import { OS } from 'codify-schemas';
33
import fs from 'node:fs/promises';
44
import os from 'node:os';
55
import path from 'node:path';
6-
import z from 'zod';
76

87
import { Utils } from '../../utils/index.js';
98
import { AsdfPluginsParameter } from './plugins-parameter.js';

0 commit comments

Comments
 (0)